From 8ee490297be24e11c3e07c811ed2016d502f23c7 Mon Sep 17 00:00:00 2001 From: David Young Date: Tue, 30 May 2023 11:55:11 -0600 Subject: [PATCH] initial --- .hugo_build.lock | 0 assets/scss/_variables_project.scss | 6 + config.toml | 218 + content/en/_index.html | 81 + content/en/about/_index.html | 38 + content/en/about/featured-background.jpg | Bin 0 -> 428203 bytes content/en/blog/_index.md | 13 + content/en/blog/core/_index.md | 8 + .../core/in-depth-monoliths-detailed-spec.md | 26 + content/en/blog/news/_index.md | 8 + content/en/blog/news/first-post/index.md | 28 + content/en/community/_index.md | 8 + content/en/docs/Concepts/_index.md | 17 + .../en/docs/Contribution guidelines/_index.md | 81 + content/en/docs/Examples/_index.md | 17 + content/en/docs/Getting started/_index.md | 37 + .../en/docs/Getting started/example-page.md | 241 + content/en/docs/Overview/_index.md | 38 + content/en/docs/Reference/_index.md | 14 + .../en/docs/Reference/parameter-reference.md | 212 + content/en/docs/Tasks/Ponycopters/_index.md | 16 + .../Ponycopters/configuring-ponycopters.md | 239 + .../Ponycopters/launching-ponycopters.md | 239 + content/en/docs/Tasks/_index.md | 25 + content/en/docs/Tasks/beds.md | 239 + content/en/docs/Tasks/porridge.md | 239 + content/en/docs/Tasks/task.md | 239 + content/en/docs/Tutorials/_index.md | 16 + content/en/docs/Tutorials/multi-bear.md | 238 + content/en/docs/Tutorials/tutorial2.md | 238 + content/en/docs/_index.md | 24 + content/en/featured-background.jpg | Bin 0 -> 428203 bytes content/en/search.md | 6 + go.mod | 9 + go.sum | 7 + layouts/404.html | 10 + node_modules/.bin/autoprefixer | 1 + node_modules/.bin/browserslist | 1 + node_modules/.bin/nanoid | 1 + node_modules/.bin/postcss | 1 + node_modules/.bin/update-browserslist-db | 1 + node_modules/.package-lock.json | 973 + node_modules/@nodelib/fs.scandir/LICENSE | 21 + node_modules/@nodelib/fs.scandir/README.md | 171 + .../@nodelib/fs.scandir/out/adapters/fs.d.ts | 20 + .../@nodelib/fs.scandir/out/adapters/fs.js | 19 + .../@nodelib/fs.scandir/out/constants.d.ts | 4 + .../@nodelib/fs.scandir/out/constants.js | 17 + .../@nodelib/fs.scandir/out/index.d.ts | 12 + node_modules/@nodelib/fs.scandir/out/index.js | 26 + .../fs.scandir/out/providers/async.d.ts | 7 + .../fs.scandir/out/providers/async.js | 104 + .../fs.scandir/out/providers/common.d.ts | 1 + .../fs.scandir/out/providers/common.js | 13 + .../fs.scandir/out/providers/sync.d.ts | 5 + .../@nodelib/fs.scandir/out/providers/sync.js | 54 + .../@nodelib/fs.scandir/out/settings.d.ts | 20 + .../@nodelib/fs.scandir/out/settings.js | 24 + .../@nodelib/fs.scandir/out/types/index.d.ts | 20 + .../@nodelib/fs.scandir/out/types/index.js | 2 + .../@nodelib/fs.scandir/out/utils/fs.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/fs.js | 19 + .../@nodelib/fs.scandir/out/utils/index.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/index.js | 5 + node_modules/@nodelib/fs.scandir/package.json | 44 + node_modules/@nodelib/fs.stat/LICENSE | 21 + node_modules/@nodelib/fs.stat/README.md | 126 + .../@nodelib/fs.stat/out/adapters/fs.d.ts | 13 + .../@nodelib/fs.stat/out/adapters/fs.js | 17 + node_modules/@nodelib/fs.stat/out/index.d.ts | 12 + node_modules/@nodelib/fs.stat/out/index.js | 26 + .../@nodelib/fs.stat/out/providers/async.d.ts | 4 + .../@nodelib/fs.stat/out/providers/async.js | 36 + .../@nodelib/fs.stat/out/providers/sync.d.ts | 3 + .../@nodelib/fs.stat/out/providers/sync.js | 23 + .../@nodelib/fs.stat/out/settings.d.ts | 16 + node_modules/@nodelib/fs.stat/out/settings.js | 16 + .../@nodelib/fs.stat/out/types/index.d.ts | 4 + .../@nodelib/fs.stat/out/types/index.js | 2 + node_modules/@nodelib/fs.stat/package.json | 37 + node_modules/@nodelib/fs.walk/LICENSE | 21 + node_modules/@nodelib/fs.walk/README.md | 215 + node_modules/@nodelib/fs.walk/out/index.d.ts | 14 + node_modules/@nodelib/fs.walk/out/index.js | 34 + .../@nodelib/fs.walk/out/providers/async.d.ts | 12 + .../@nodelib/fs.walk/out/providers/async.js | 30 + .../@nodelib/fs.walk/out/providers/index.d.ts | 4 + .../@nodelib/fs.walk/out/providers/index.js | 9 + .../fs.walk/out/providers/stream.d.ts | 12 + .../@nodelib/fs.walk/out/providers/stream.js | 34 + .../@nodelib/fs.walk/out/providers/sync.d.ts | 10 + .../@nodelib/fs.walk/out/providers/sync.js | 14 + .../@nodelib/fs.walk/out/readers/async.d.ts | 30 + .../@nodelib/fs.walk/out/readers/async.js | 97 + .../@nodelib/fs.walk/out/readers/common.d.ts | 7 + .../@nodelib/fs.walk/out/readers/common.js | 31 + .../@nodelib/fs.walk/out/readers/reader.d.ts | 6 + .../@nodelib/fs.walk/out/readers/reader.js | 11 + .../@nodelib/fs.walk/out/readers/sync.d.ts | 15 + .../@nodelib/fs.walk/out/readers/sync.js | 59 + .../@nodelib/fs.walk/out/settings.d.ts | 30 + node_modules/@nodelib/fs.walk/out/settings.js | 26 + .../@nodelib/fs.walk/out/types/index.d.ts | 8 + .../@nodelib/fs.walk/out/types/index.js | 2 + node_modules/@nodelib/fs.walk/package.json | 44 + node_modules/ansi-regex/index.d.ts | 37 + node_modules/ansi-regex/index.js | 10 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 55 + node_modules/ansi-regex/readme.md | 78 + node_modules/ansi-styles/index.d.ts | 345 + node_modules/ansi-styles/index.js | 163 + node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 56 + node_modules/ansi-styles/readme.md | 152 + node_modules/anymatch/LICENSE | 15 + node_modules/anymatch/README.md | 87 + node_modules/anymatch/index.d.ts | 20 + node_modules/anymatch/index.js | 104 + node_modules/anymatch/package.json | 48 + node_modules/array-union/index.d.ts | 25 + node_modules/array-union/index.js | 3 + node_modules/array-union/license | 9 + node_modules/array-union/package.json | 46 + node_modules/array-union/readme.md | 39 + node_modules/autoprefixer/LICENSE | 20 + node_modules/autoprefixer/README.md | 66 + node_modules/autoprefixer/bin/autoprefixer | 22 + node_modules/autoprefixer/data/prefixes.js | 1124 + node_modules/autoprefixer/lib/at-rule.js | 35 + .../autoprefixer/lib/autoprefixer.d.ts | 95 + node_modules/autoprefixer/lib/autoprefixer.js | 164 + node_modules/autoprefixer/lib/brackets.js | 51 + node_modules/autoprefixer/lib/browsers.js | 79 + node_modules/autoprefixer/lib/declaration.js | 187 + .../autoprefixer/lib/hacks/align-content.js | 49 + .../autoprefixer/lib/hacks/align-items.js | 46 + .../autoprefixer/lib/hacks/align-self.js | 56 + .../autoprefixer/lib/hacks/animation.js | 17 + .../autoprefixer/lib/hacks/appearance.js | 23 + .../autoprefixer/lib/hacks/autofill.js | 26 + .../autoprefixer/lib/hacks/backdrop-filter.js | 20 + .../autoprefixer/lib/hacks/background-clip.js | 24 + .../autoprefixer/lib/hacks/background-size.js | 23 + .../autoprefixer/lib/hacks/block-logical.js | 40 + .../autoprefixer/lib/hacks/border-image.js | 15 + .../autoprefixer/lib/hacks/border-radius.js | 40 + .../autoprefixer/lib/hacks/break-props.js | 63 + .../autoprefixer/lib/hacks/cross-fade.js | 35 + .../autoprefixer/lib/hacks/display-flex.js | 65 + .../autoprefixer/lib/hacks/display-grid.js | 21 + .../lib/hacks/file-selector-button.js | 26 + .../autoprefixer/lib/hacks/filter-value.js | 14 + node_modules/autoprefixer/lib/hacks/filter.js | 19 + .../autoprefixer/lib/hacks/flex-basis.js | 39 + .../autoprefixer/lib/hacks/flex-direction.js | 72 + .../autoprefixer/lib/hacks/flex-flow.js | 53 + .../autoprefixer/lib/hacks/flex-grow.js | 30 + .../autoprefixer/lib/hacks/flex-shrink.js | 39 + .../autoprefixer/lib/hacks/flex-spec.js | 19 + .../autoprefixer/lib/hacks/flex-wrap.js | 19 + node_modules/autoprefixer/lib/hacks/flex.js | 54 + .../autoprefixer/lib/hacks/fullscreen.js | 20 + .../autoprefixer/lib/hacks/gradient.js | 448 + .../autoprefixer/lib/hacks/grid-area.js | 34 + .../lib/hacks/grid-column-align.js | 28 + .../autoprefixer/lib/hacks/grid-end.js | 52 + .../autoprefixer/lib/hacks/grid-row-align.js | 28 + .../autoprefixer/lib/hacks/grid-row-column.js | 33 + .../lib/hacks/grid-rows-columns.js | 125 + .../autoprefixer/lib/hacks/grid-start.js | 33 + .../lib/hacks/grid-template-areas.js | 84 + .../autoprefixer/lib/hacks/grid-template.js | 69 + .../autoprefixer/lib/hacks/grid-utils.js | 1113 + .../autoprefixer/lib/hacks/image-rendering.js | 48 + .../autoprefixer/lib/hacks/image-set.js | 18 + .../autoprefixer/lib/hacks/inline-logical.js | 34 + .../autoprefixer/lib/hacks/intrinsic.js | 61 + .../autoprefixer/lib/hacks/justify-content.js | 54 + .../autoprefixer/lib/hacks/mask-border.js | 38 + .../autoprefixer/lib/hacks/mask-composite.js | 88 + node_modules/autoprefixer/lib/hacks/order.js | 42 + .../lib/hacks/overscroll-behavior.js | 33 + .../autoprefixer/lib/hacks/pixelated.js | 34 + .../autoprefixer/lib/hacks/place-self.js | 32 + .../lib/hacks/placeholder-shown.js | 17 + .../autoprefixer/lib/hacks/placeholder.js | 33 + .../lib/hacks/print-color-adjust.js | 25 + .../lib/hacks/text-decoration-skip-ink.js | 23 + .../autoprefixer/lib/hacks/text-decoration.js | 25 + .../lib/hacks/text-emphasis-position.js | 14 + .../autoprefixer/lib/hacks/transform-decl.js | 79 + .../autoprefixer/lib/hacks/user-select.js | 28 + .../autoprefixer/lib/hacks/writing-mode.js | 42 + node_modules/autoprefixer/lib/info.js | 123 + node_modules/autoprefixer/lib/old-selector.js | 67 + node_modules/autoprefixer/lib/old-value.js | 22 + node_modules/autoprefixer/lib/prefixer.js | 144 + node_modules/autoprefixer/lib/prefixes.js | 428 + node_modules/autoprefixer/lib/processor.js | 718 + node_modules/autoprefixer/lib/resolution.js | 97 + node_modules/autoprefixer/lib/selector.js | 150 + node_modules/autoprefixer/lib/supports.js | 302 + node_modules/autoprefixer/lib/transition.js | 329 + node_modules/autoprefixer/lib/utils.js | 93 + node_modules/autoprefixer/lib/value.js | 125 + node_modules/autoprefixer/lib/vendor.js | 14 + node_modules/autoprefixer/package.json | 45 + .../binary-extensions/binary-extensions.json | 260 + .../binary-extensions.json.d.ts | 3 + node_modules/binary-extensions/index.d.ts | 14 + node_modules/binary-extensions/index.js | 1 + node_modules/binary-extensions/license | 9 + node_modules/binary-extensions/package.json | 38 + node_modules/binary-extensions/readme.md | 41 + node_modules/braces/CHANGELOG.md | 184 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 593 + node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 57 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 333 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 112 + node_modules/braces/package.json | 77 + node_modules/browserslist/LICENSE | 20 + node_modules/browserslist/README.md | 73 + node_modules/browserslist/browser.js | 52 + node_modules/browserslist/cli.js | 151 + node_modules/browserslist/error.d.ts | 7 + node_modules/browserslist/error.js | 12 + node_modules/browserslist/index.d.ts | 198 + node_modules/browserslist/index.js | 1191 + node_modules/browserslist/node.js | 409 + node_modules/browserslist/package.json | 44 + node_modules/browserslist/parse.js | 78 + node_modules/caniuse-lite/LICENSE | 395 + node_modules/caniuse-lite/README.md | 6 + node_modules/caniuse-lite/data/agents.js | 1 + .../caniuse-lite/data/browserVersions.js | 1 + node_modules/caniuse-lite/data/browsers.js | 1 + node_modules/caniuse-lite/data/features.js | 1 + .../caniuse-lite/data/features/aac.js | 1 + .../data/features/abortcontroller.js | 1 + .../caniuse-lite/data/features/ac3-ec3.js | 1 + .../data/features/accelerometer.js | 1 + .../data/features/addeventlistener.js | 1 + .../data/features/alternate-stylesheet.js | 1 + .../data/features/ambient-light.js | 1 + .../caniuse-lite/data/features/apng.js | 1 + .../data/features/array-find-index.js | 1 + .../caniuse-lite/data/features/array-find.js | 1 + .../caniuse-lite/data/features/array-flat.js | 1 + .../data/features/array-includes.js | 1 + .../data/features/arrow-functions.js | 1 + .../caniuse-lite/data/features/asmjs.js | 1 + .../data/features/async-clipboard.js | 1 + .../data/features/async-functions.js | 1 + .../caniuse-lite/data/features/atob-btoa.js | 1 + .../caniuse-lite/data/features/audio-api.js | 1 + .../caniuse-lite/data/features/audio.js | 1 + .../caniuse-lite/data/features/audiotracks.js | 1 + .../caniuse-lite/data/features/autofocus.js | 1 + .../caniuse-lite/data/features/auxclick.js | 1 + .../caniuse-lite/data/features/av1.js | 1 + .../caniuse-lite/data/features/avif.js | 1 + .../data/features/background-attachment.js | 1 + .../data/features/background-clip-text.js | 1 + .../data/features/background-img-opts.js | 1 + .../data/features/background-position-x-y.js | 1 + .../features/background-repeat-round-space.js | 1 + .../data/features/background-sync.js | 1 + .../data/features/battery-status.js | 1 + .../caniuse-lite/data/features/beacon.js | 1 + .../data/features/beforeafterprint.js | 1 + .../caniuse-lite/data/features/bigint.js | 1 + .../caniuse-lite/data/features/blobbuilder.js | 1 + .../caniuse-lite/data/features/bloburls.js | 1 + .../data/features/border-image.js | 1 + .../data/features/border-radius.js | 1 + .../data/features/broadcastchannel.js | 1 + .../caniuse-lite/data/features/brotli.js | 1 + .../caniuse-lite/data/features/calc.js | 1 + .../data/features/canvas-blending.js | 1 + .../caniuse-lite/data/features/canvas-text.js | 1 + .../caniuse-lite/data/features/canvas.js | 1 + .../caniuse-lite/data/features/ch-unit.js | 1 + .../data/features/chacha20-poly1305.js | 1 + .../data/features/channel-messaging.js | 1 + .../data/features/childnode-remove.js | 1 + .../caniuse-lite/data/features/classlist.js | 1 + .../client-hints-dpr-width-viewport.js | 1 + .../caniuse-lite/data/features/clipboard.js | 1 + .../caniuse-lite/data/features/colr-v1.js | 1 + .../caniuse-lite/data/features/colr.js | 1 + .../data/features/comparedocumentposition.js | 1 + .../data/features/console-basic.js | 1 + .../data/features/console-time.js | 1 + .../caniuse-lite/data/features/const.js | 1 + .../data/features/constraint-validation.js | 1 + .../data/features/contenteditable.js | 1 + .../data/features/contentsecuritypolicy.js | 1 + .../data/features/contentsecuritypolicy2.js | 1 + .../data/features/cookie-store-api.js | 1 + .../caniuse-lite/data/features/cors.js | 1 + .../data/features/createimagebitmap.js | 1 + .../data/features/credential-management.js | 1 + .../data/features/cryptography.js | 1 + .../caniuse-lite/data/features/css-all.js | 1 + .../data/features/css-animation.js | 1 + .../data/features/css-any-link.js | 1 + .../data/features/css-appearance.js | 1 + .../data/features/css-at-counter-style.js | 1 + .../data/features/css-autofill.js | 1 + .../data/features/css-backdrop-filter.js | 1 + .../data/features/css-background-offsets.js | 1 + .../data/features/css-backgroundblendmode.js | 1 + .../data/features/css-boxdecorationbreak.js | 1 + .../data/features/css-boxshadow.js | 1 + .../caniuse-lite/data/features/css-canvas.js | 1 + .../data/features/css-caret-color.js | 1 + .../data/features/css-cascade-layers.js | 1 + .../data/features/css-case-insensitive.js | 1 + .../data/features/css-clip-path.js | 1 + .../data/features/css-color-adjust.js | 1 + .../data/features/css-color-function.js | 1 + .../data/features/css-conic-gradients.js | 1 + .../features/css-container-queries-style.js | 1 + .../data/features/css-container-queries.js | 1 + .../features/css-container-query-units.js | 1 + .../data/features/css-containment.js | 1 + .../data/features/css-content-visibility.js | 1 + .../data/features/css-counters.js | 1 + .../data/features/css-crisp-edges.js | 1 + .../data/features/css-cross-fade.js | 1 + .../data/features/css-default-pseudo.js | 1 + .../data/features/css-descendant-gtgt.js | 1 + .../data/features/css-deviceadaptation.js | 1 + .../data/features/css-dir-pseudo.js | 1 + .../data/features/css-display-contents.js | 1 + .../data/features/css-element-function.js | 1 + .../data/features/css-env-function.js | 1 + .../data/features/css-exclusions.js | 1 + .../data/features/css-featurequeries.js | 1 + .../data/features/css-file-selector-button.js | 1 + .../data/features/css-filter-function.js | 1 + .../caniuse-lite/data/features/css-filters.js | 1 + .../data/features/css-first-letter.js | 1 + .../data/features/css-first-line.js | 1 + .../caniuse-lite/data/features/css-fixed.js | 1 + .../data/features/css-focus-visible.js | 1 + .../data/features/css-focus-within.js | 1 + .../data/features/css-font-palette.js | 1 + .../features/css-font-rendering-controls.js | 1 + .../data/features/css-font-stretch.js | 1 + .../data/features/css-gencontent.js | 1 + .../data/features/css-gradients.js | 1 + .../data/features/css-grid-animation.js | 1 + .../caniuse-lite/data/features/css-grid.js | 1 + .../data/features/css-hanging-punctuation.js | 1 + .../caniuse-lite/data/features/css-has.js | 1 + .../caniuse-lite/data/features/css-hyphens.js | 1 + .../data/features/css-image-orientation.js | 1 + .../data/features/css-image-set.js | 1 + .../data/features/css-in-out-of-range.js | 1 + .../data/features/css-indeterminate-pseudo.js | 1 + .../data/features/css-initial-letter.js | 1 + .../data/features/css-initial-value.js | 1 + .../caniuse-lite/data/features/css-lch-lab.js | 1 + .../data/features/css-letter-spacing.js | 1 + .../data/features/css-line-clamp.js | 1 + .../data/features/css-logical-props.js | 1 + .../data/features/css-marker-pseudo.js | 1 + .../caniuse-lite/data/features/css-masks.js | 1 + .../data/features/css-matches-pseudo.js | 1 + .../data/features/css-math-functions.js | 1 + .../data/features/css-media-interaction.js | 1 + .../data/features/css-media-range-syntax.js | 1 + .../data/features/css-media-resolution.js | 1 + .../data/features/css-media-scripting.js | 1 + .../data/features/css-mediaqueries.js | 1 + .../data/features/css-mixblendmode.js | 1 + .../data/features/css-motion-paths.js | 1 + .../data/features/css-namespaces.js | 1 + .../caniuse-lite/data/features/css-nesting.js | 1 + .../data/features/css-not-sel-list.js | 1 + .../data/features/css-nth-child-of.js | 1 + .../caniuse-lite/data/features/css-opacity.js | 1 + .../data/features/css-optional-pseudo.js | 1 + .../data/features/css-overflow-anchor.js | 1 + .../data/features/css-overflow-overlay.js | 1 + .../data/features/css-overflow.js | 1 + .../data/features/css-overscroll-behavior.js | 1 + .../data/features/css-page-break.js | 1 + .../data/features/css-paged-media.js | 1 + .../data/features/css-paint-api.js | 1 + .../data/features/css-placeholder-shown.js | 1 + .../data/features/css-placeholder.js | 1 + .../data/features/css-print-color-adjust.js | 1 + .../data/features/css-read-only-write.js | 1 + .../data/features/css-rebeccapurple.js | 1 + .../data/features/css-reflections.js | 1 + .../caniuse-lite/data/features/css-regions.js | 1 + .../data/features/css-relative-colors.js | 1 + .../data/features/css-repeating-gradients.js | 1 + .../caniuse-lite/data/features/css-resize.js | 1 + .../data/features/css-revert-value.js | 1 + .../data/features/css-rrggbbaa.js | 1 + .../data/features/css-scroll-behavior.js | 1 + .../data/features/css-scroll-timeline.js | 1 + .../data/features/css-scrollbar.js | 1 + .../caniuse-lite/data/features/css-sel2.js | 1 + .../caniuse-lite/data/features/css-sel3.js | 1 + .../data/features/css-selection.js | 1 + .../caniuse-lite/data/features/css-shapes.js | 1 + .../data/features/css-snappoints.js | 1 + .../caniuse-lite/data/features/css-sticky.js | 1 + .../caniuse-lite/data/features/css-subgrid.js | 1 + .../data/features/css-supports-api.js | 1 + .../caniuse-lite/data/features/css-table.js | 1 + .../data/features/css-text-align-last.js | 1 + .../data/features/css-text-box-trim.js | 1 + .../data/features/css-text-indent.js | 1 + .../data/features/css-text-justify.js | 1 + .../data/features/css-text-orientation.js | 1 + .../data/features/css-text-spacing.js | 1 + .../data/features/css-textshadow.js | 1 + .../data/features/css-touch-action.js | 1 + .../data/features/css-transitions.js | 1 + .../data/features/css-unicode-bidi.js | 1 + .../data/features/css-unset-value.js | 1 + .../data/features/css-variables.js | 1 + .../data/features/css-when-else.js | 1 + .../data/features/css-widows-orphans.js | 1 + .../data/features/css-width-stretch.js | 1 + .../data/features/css-writing-mode.js | 1 + .../caniuse-lite/data/features/css-zoom.js | 1 + .../caniuse-lite/data/features/css3-attr.js | 1 + .../data/features/css3-boxsizing.js | 1 + .../caniuse-lite/data/features/css3-colors.js | 1 + .../data/features/css3-cursors-grab.js | 1 + .../data/features/css3-cursors-newer.js | 1 + .../data/features/css3-cursors.js | 1 + .../data/features/css3-tabsize.js | 1 + .../data/features/currentcolor.js | 1 + .../data/features/custom-elements.js | 1 + .../data/features/custom-elementsv1.js | 1 + .../caniuse-lite/data/features/customevent.js | 1 + .../caniuse-lite/data/features/datalist.js | 1 + .../caniuse-lite/data/features/dataset.js | 1 + .../caniuse-lite/data/features/datauri.js | 1 + .../data/features/date-tolocaledatestring.js | 1 + .../data/features/declarative-shadow-dom.js | 1 + .../caniuse-lite/data/features/decorators.js | 1 + .../caniuse-lite/data/features/details.js | 1 + .../data/features/deviceorientation.js | 1 + .../data/features/devicepixelratio.js | 1 + .../caniuse-lite/data/features/dialog.js | 1 + .../data/features/dispatchevent.js | 1 + .../caniuse-lite/data/features/dnssec.js | 1 + .../data/features/do-not-track.js | 1 + .../data/features/document-currentscript.js | 1 + .../data/features/document-evaluate-xpath.js | 1 + .../data/features/document-execcommand.js | 1 + .../data/features/document-policy.js | 1 + .../features/document-scrollingelement.js | 1 + .../data/features/documenthead.js | 1 + .../data/features/dom-manip-convenience.js | 1 + .../caniuse-lite/data/features/dom-range.js | 1 + .../data/features/domcontentloaded.js | 1 + .../caniuse-lite/data/features/dommatrix.js | 1 + .../caniuse-lite/data/features/download.js | 1 + .../caniuse-lite/data/features/dragndrop.js | 1 + .../data/features/element-closest.js | 1 + .../data/features/element-from-point.js | 1 + .../data/features/element-scroll-methods.js | 1 + .../caniuse-lite/data/features/eme.js | 1 + .../caniuse-lite/data/features/eot.js | 1 + .../caniuse-lite/data/features/es5.js | 1 + .../caniuse-lite/data/features/es6-class.js | 1 + .../data/features/es6-generators.js | 1 + .../features/es6-module-dynamic-import.js | 1 + .../caniuse-lite/data/features/es6-module.js | 1 + .../caniuse-lite/data/features/es6-number.js | 1 + .../data/features/es6-string-includes.js | 1 + .../caniuse-lite/data/features/es6.js | 1 + .../caniuse-lite/data/features/eventsource.js | 1 + .../data/features/extended-system-fonts.js | 1 + .../data/features/feature-policy.js | 1 + .../caniuse-lite/data/features/fetch.js | 1 + .../data/features/fieldset-disabled.js | 1 + .../caniuse-lite/data/features/fileapi.js | 1 + .../caniuse-lite/data/features/filereader.js | 1 + .../data/features/filereadersync.js | 1 + .../caniuse-lite/data/features/filesystem.js | 1 + .../caniuse-lite/data/features/flac.js | 1 + .../caniuse-lite/data/features/flexbox-gap.js | 1 + .../caniuse-lite/data/features/flexbox.js | 1 + .../caniuse-lite/data/features/flow-root.js | 1 + .../data/features/focusin-focusout-events.js | 1 + .../data/features/font-family-system-ui.js | 1 + .../data/features/font-feature.js | 1 + .../data/features/font-kerning.js | 1 + .../data/features/font-loading.js | 1 + .../data/features/font-size-adjust.js | 1 + .../caniuse-lite/data/features/font-smooth.js | 1 + .../data/features/font-unicode-range.js | 1 + .../data/features/font-variant-alternates.js | 1 + .../data/features/font-variant-numeric.js | 1 + .../caniuse-lite/data/features/fontface.js | 1 + .../data/features/form-attribute.js | 1 + .../data/features/form-submit-attributes.js | 1 + .../data/features/form-validation.js | 1 + .../caniuse-lite/data/features/forms.js | 1 + .../caniuse-lite/data/features/fullscreen.js | 1 + .../caniuse-lite/data/features/gamepad.js | 1 + .../caniuse-lite/data/features/geolocation.js | 1 + .../data/features/getboundingclientrect.js | 1 + .../data/features/getcomputedstyle.js | 1 + .../data/features/getelementsbyclassname.js | 1 + .../data/features/getrandomvalues.js | 1 + .../caniuse-lite/data/features/gyroscope.js | 1 + .../data/features/hardwareconcurrency.js | 1 + .../caniuse-lite/data/features/hashchange.js | 1 + .../caniuse-lite/data/features/heif.js | 1 + .../caniuse-lite/data/features/hevc.js | 1 + .../caniuse-lite/data/features/hidden.js | 1 + .../data/features/high-resolution-time.js | 1 + .../caniuse-lite/data/features/history.js | 1 + .../data/features/html-media-capture.js | 1 + .../data/features/html5semantic.js | 1 + .../data/features/http-live-streaming.js | 1 + .../caniuse-lite/data/features/http2.js | 1 + .../caniuse-lite/data/features/http3.js | 1 + .../data/features/iframe-sandbox.js | 1 + .../data/features/iframe-seamless.js | 1 + .../data/features/iframe-srcdoc.js | 1 + .../data/features/imagecapture.js | 1 + .../caniuse-lite/data/features/ime.js | 1 + .../img-naturalwidth-naturalheight.js | 1 + .../caniuse-lite/data/features/import-maps.js | 1 + .../caniuse-lite/data/features/imports.js | 1 + .../data/features/indeterminate-checkbox.js | 1 + .../caniuse-lite/data/features/indexeddb.js | 1 + .../caniuse-lite/data/features/indexeddb2.js | 1 + .../data/features/inline-block.js | 1 + .../caniuse-lite/data/features/innertext.js | 1 + .../data/features/input-autocomplete-onoff.js | 1 + .../caniuse-lite/data/features/input-color.js | 1 + .../data/features/input-datetime.js | 1 + .../data/features/input-email-tel-url.js | 1 + .../caniuse-lite/data/features/input-event.js | 1 + .../data/features/input-file-accept.js | 1 + .../data/features/input-file-directory.js | 1 + .../data/features/input-file-multiple.js | 1 + .../data/features/input-inputmode.js | 1 + .../data/features/input-minlength.js | 1 + .../data/features/input-number.js | 1 + .../data/features/input-pattern.js | 1 + .../data/features/input-placeholder.js | 1 + .../caniuse-lite/data/features/input-range.js | 1 + .../data/features/input-search.js | 1 + .../data/features/input-selection.js | 1 + .../data/features/insert-adjacent.js | 1 + .../data/features/insertadjacenthtml.js | 1 + .../data/features/internationalization.js | 1 + .../data/features/intersectionobserver-v2.js | 1 + .../data/features/intersectionobserver.js | 1 + .../data/features/intl-pluralrules.js | 1 + .../data/features/intrinsic-width.js | 1 + .../caniuse-lite/data/features/jpeg2000.js | 1 + .../caniuse-lite/data/features/jpegxl.js | 1 + .../caniuse-lite/data/features/jpegxr.js | 1 + .../data/features/js-regexp-lookbehind.js | 1 + .../caniuse-lite/data/features/json.js | 1 + .../features/justify-content-space-evenly.js | 1 + .../data/features/kerning-pairs-ligatures.js | 1 + .../data/features/keyboardevent-charcode.js | 1 + .../data/features/keyboardevent-code.js | 1 + .../keyboardevent-getmodifierstate.js | 1 + .../data/features/keyboardevent-key.js | 1 + .../data/features/keyboardevent-location.js | 1 + .../data/features/keyboardevent-which.js | 1 + .../caniuse-lite/data/features/lazyload.js | 1 + .../caniuse-lite/data/features/let.js | 1 + .../data/features/link-icon-png.js | 1 + .../data/features/link-icon-svg.js | 1 + .../data/features/link-rel-dns-prefetch.js | 1 + .../data/features/link-rel-modulepreload.js | 1 + .../data/features/link-rel-preconnect.js | 1 + .../data/features/link-rel-prefetch.js | 1 + .../data/features/link-rel-preload.js | 1 + .../data/features/link-rel-prerender.js | 1 + .../data/features/loading-lazy-attr.js | 1 + .../data/features/localecompare.js | 1 + .../data/features/magnetometer.js | 1 + .../data/features/matchesselector.js | 1 + .../caniuse-lite/data/features/matchmedia.js | 1 + .../caniuse-lite/data/features/mathml.js | 1 + .../caniuse-lite/data/features/maxlength.js | 1 + .../mdn-css-unicode-bidi-isolate-override.js | 1 + .../features/mdn-css-unicode-bidi-isolate.js | 1 + .../mdn-css-unicode-bidi-plaintext.js | 1 + .../features/mdn-text-decoration-color.js | 1 + .../data/features/mdn-text-decoration-line.js | 1 + .../features/mdn-text-decoration-shorthand.js | 1 + .../features/mdn-text-decoration-style.js | 1 + .../data/features/media-fragments.js | 1 + .../data/features/mediacapture-fromelement.js | 1 + .../data/features/mediarecorder.js | 1 + .../caniuse-lite/data/features/mediasource.js | 1 + .../caniuse-lite/data/features/menu.js | 1 + .../data/features/meta-theme-color.js | 1 + .../caniuse-lite/data/features/meter.js | 1 + .../caniuse-lite/data/features/midi.js | 1 + .../caniuse-lite/data/features/minmaxwh.js | 1 + .../caniuse-lite/data/features/mp3.js | 1 + .../caniuse-lite/data/features/mpeg-dash.js | 1 + .../caniuse-lite/data/features/mpeg4.js | 1 + .../data/features/multibackgrounds.js | 1 + .../caniuse-lite/data/features/multicolumn.js | 1 + .../data/features/mutation-events.js | 1 + .../data/features/mutationobserver.js | 1 + .../data/features/namevalue-storage.js | 1 + .../data/features/native-filesystem-api.js | 1 + .../caniuse-lite/data/features/nav-timing.js | 1 + .../caniuse-lite/data/features/netinfo.js | 1 + .../data/features/notifications.js | 1 + .../data/features/object-entries.js | 1 + .../caniuse-lite/data/features/object-fit.js | 1 + .../data/features/object-observe.js | 1 + .../data/features/object-values.js | 1 + .../caniuse-lite/data/features/objectrtc.js | 1 + .../data/features/offline-apps.js | 1 + .../data/features/offscreencanvas.js | 1 + .../caniuse-lite/data/features/ogg-vorbis.js | 1 + .../caniuse-lite/data/features/ogv.js | 1 + .../caniuse-lite/data/features/ol-reversed.js | 1 + .../data/features/once-event-listener.js | 1 + .../data/features/online-status.js | 1 + .../caniuse-lite/data/features/opus.js | 1 + .../data/features/orientation-sensor.js | 1 + .../caniuse-lite/data/features/outline.js | 1 + .../data/features/pad-start-end.js | 1 + .../data/features/page-transition-events.js | 1 + .../data/features/pagevisibility.js | 1 + .../data/features/passive-event-listener.js | 1 + .../data/features/passwordrules.js | 1 + .../caniuse-lite/data/features/path2d.js | 1 + .../data/features/payment-request.js | 1 + .../caniuse-lite/data/features/pdf-viewer.js | 1 + .../data/features/permissions-api.js | 1 + .../data/features/permissions-policy.js | 1 + .../data/features/picture-in-picture.js | 1 + .../caniuse-lite/data/features/picture.js | 1 + .../caniuse-lite/data/features/ping.js | 1 + .../caniuse-lite/data/features/png-alpha.js | 1 + .../data/features/pointer-events.js | 1 + .../caniuse-lite/data/features/pointer.js | 1 + .../caniuse-lite/data/features/pointerlock.js | 1 + .../caniuse-lite/data/features/portals.js | 1 + .../data/features/prefers-color-scheme.js | 1 + .../data/features/prefers-reduced-motion.js | 1 + .../caniuse-lite/data/features/progress.js | 1 + .../data/features/promise-finally.js | 1 + .../caniuse-lite/data/features/promises.js | 1 + .../caniuse-lite/data/features/proximity.js | 1 + .../caniuse-lite/data/features/proxy.js | 1 + .../data/features/publickeypinning.js | 1 + .../caniuse-lite/data/features/push-api.js | 1 + .../data/features/queryselector.js | 1 + .../data/features/readonly-attr.js | 1 + .../data/features/referrer-policy.js | 1 + .../data/features/registerprotocolhandler.js | 1 + .../data/features/rel-noopener.js | 1 + .../data/features/rel-noreferrer.js | 1 + .../caniuse-lite/data/features/rellist.js | 1 + .../caniuse-lite/data/features/rem.js | 1 + .../data/features/requestanimationframe.js | 1 + .../data/features/requestidlecallback.js | 1 + .../data/features/resizeobserver.js | 1 + .../data/features/resource-timing.js | 1 + .../data/features/rest-parameters.js | 1 + .../data/features/rtcpeerconnection.js | 1 + .../caniuse-lite/data/features/ruby.js | 1 + .../caniuse-lite/data/features/run-in.js | 1 + .../features/same-site-cookie-attribute.js | 1 + .../data/features/screen-orientation.js | 1 + .../data/features/script-async.js | 1 + .../data/features/script-defer.js | 1 + .../data/features/scrollintoview.js | 1 + .../data/features/scrollintoviewifneeded.js | 1 + .../caniuse-lite/data/features/sdch.js | 1 + .../data/features/selection-api.js | 1 + .../data/features/server-timing.js | 1 + .../data/features/serviceworkers.js | 1 + .../data/features/setimmediate.js | 1 + .../caniuse-lite/data/features/shadowdom.js | 1 + .../caniuse-lite/data/features/shadowdomv1.js | 1 + .../data/features/sharedarraybuffer.js | 1 + .../data/features/sharedworkers.js | 1 + .../caniuse-lite/data/features/sni.js | 1 + .../caniuse-lite/data/features/spdy.js | 1 + .../data/features/speech-recognition.js | 1 + .../data/features/speech-synthesis.js | 1 + .../data/features/spellcheck-attribute.js | 1 + .../caniuse-lite/data/features/sql-storage.js | 1 + .../caniuse-lite/data/features/srcset.js | 1 + .../caniuse-lite/data/features/stream.js | 1 + .../caniuse-lite/data/features/streams.js | 1 + .../data/features/stricttransportsecurity.js | 1 + .../data/features/style-scoped.js | 1 + .../data/features/subresource-bundling.js | 1 + .../data/features/subresource-integrity.js | 1 + .../caniuse-lite/data/features/svg-css.js | 1 + .../caniuse-lite/data/features/svg-filters.js | 1 + .../caniuse-lite/data/features/svg-fonts.js | 1 + .../data/features/svg-fragment.js | 1 + .../caniuse-lite/data/features/svg-html.js | 1 + .../caniuse-lite/data/features/svg-html5.js | 1 + .../caniuse-lite/data/features/svg-img.js | 1 + .../caniuse-lite/data/features/svg-smil.js | 1 + .../caniuse-lite/data/features/svg.js | 1 + .../caniuse-lite/data/features/sxg.js | 1 + .../data/features/tabindex-attr.js | 1 + .../data/features/template-literals.js | 1 + .../caniuse-lite/data/features/template.js | 1 + .../caniuse-lite/data/features/temporal.js | 1 + .../caniuse-lite/data/features/testfeat.js | 1 + .../data/features/text-decoration.js | 1 + .../data/features/text-emphasis.js | 1 + .../data/features/text-overflow.js | 1 + .../data/features/text-size-adjust.js | 1 + .../caniuse-lite/data/features/text-stroke.js | 1 + .../caniuse-lite/data/features/textcontent.js | 1 + .../caniuse-lite/data/features/textencoder.js | 1 + .../caniuse-lite/data/features/tls1-1.js | 1 + .../caniuse-lite/data/features/tls1-2.js | 1 + .../caniuse-lite/data/features/tls1-3.js | 1 + .../caniuse-lite/data/features/touch.js | 1 + .../data/features/transforms2d.js | 1 + .../data/features/transforms3d.js | 1 + .../data/features/trusted-types.js | 1 + .../caniuse-lite/data/features/ttf.js | 1 + .../caniuse-lite/data/features/typedarrays.js | 1 + .../caniuse-lite/data/features/u2f.js | 1 + .../data/features/unhandledrejection.js | 1 + .../data/features/upgradeinsecurerequests.js | 1 + .../features/url-scroll-to-text-fragment.js | 1 + .../caniuse-lite/data/features/url.js | 1 + .../data/features/urlsearchparams.js | 1 + .../caniuse-lite/data/features/use-strict.js | 1 + .../data/features/user-select-none.js | 1 + .../caniuse-lite/data/features/user-timing.js | 1 + .../data/features/variable-fonts.js | 1 + .../data/features/vector-effect.js | 1 + .../caniuse-lite/data/features/vibration.js | 1 + .../caniuse-lite/data/features/video.js | 1 + .../caniuse-lite/data/features/videotracks.js | 1 + .../data/features/viewport-unit-variants.js | 1 + .../data/features/viewport-units.js | 1 + .../caniuse-lite/data/features/wai-aria.js | 1 + .../caniuse-lite/data/features/wake-lock.js | 1 + .../caniuse-lite/data/features/wasm.js | 1 + .../caniuse-lite/data/features/wav.js | 1 + .../caniuse-lite/data/features/wbr-element.js | 1 + .../data/features/web-animation.js | 1 + .../data/features/web-app-manifest.js | 1 + .../data/features/web-bluetooth.js | 1 + .../caniuse-lite/data/features/web-serial.js | 1 + .../caniuse-lite/data/features/web-share.js | 1 + .../caniuse-lite/data/features/webauthn.js | 1 + .../caniuse-lite/data/features/webcodecs.js | 1 + .../caniuse-lite/data/features/webgl.js | 1 + .../caniuse-lite/data/features/webgl2.js | 1 + .../caniuse-lite/data/features/webgpu.js | 1 + .../caniuse-lite/data/features/webhid.js | 1 + .../data/features/webkit-user-drag.js | 1 + .../caniuse-lite/data/features/webm.js | 1 + .../caniuse-lite/data/features/webnfc.js | 1 + .../caniuse-lite/data/features/webp.js | 1 + .../caniuse-lite/data/features/websockets.js | 1 + .../data/features/webtransport.js | 1 + .../caniuse-lite/data/features/webusb.js | 1 + .../caniuse-lite/data/features/webvr.js | 1 + .../caniuse-lite/data/features/webvtt.js | 1 + .../caniuse-lite/data/features/webworkers.js | 1 + .../caniuse-lite/data/features/webxr.js | 1 + .../caniuse-lite/data/features/will-change.js | 1 + .../caniuse-lite/data/features/woff.js | 1 + .../caniuse-lite/data/features/woff2.js | 1 + .../caniuse-lite/data/features/word-break.js | 1 + .../caniuse-lite/data/features/wordwrap.js | 1 + .../data/features/x-doc-messaging.js | 1 + .../data/features/x-frame-options.js | 1 + .../caniuse-lite/data/features/xhr2.js | 1 + .../caniuse-lite/data/features/xhtml.js | 1 + .../caniuse-lite/data/features/xhtmlsmil.js | 1 + .../data/features/xml-serializer.js | 1 + node_modules/caniuse-lite/data/regions/AD.js | 1 + node_modules/caniuse-lite/data/regions/AE.js | 1 + node_modules/caniuse-lite/data/regions/AF.js | 1 + node_modules/caniuse-lite/data/regions/AG.js | 1 + node_modules/caniuse-lite/data/regions/AI.js | 1 + node_modules/caniuse-lite/data/regions/AL.js | 1 + node_modules/caniuse-lite/data/regions/AM.js | 1 + node_modules/caniuse-lite/data/regions/AO.js | 1 + node_modules/caniuse-lite/data/regions/AR.js | 1 + node_modules/caniuse-lite/data/regions/AS.js | 1 + node_modules/caniuse-lite/data/regions/AT.js | 1 + node_modules/caniuse-lite/data/regions/AU.js | 1 + node_modules/caniuse-lite/data/regions/AW.js | 1 + node_modules/caniuse-lite/data/regions/AX.js | 1 + node_modules/caniuse-lite/data/regions/AZ.js | 1 + node_modules/caniuse-lite/data/regions/BA.js | 1 + node_modules/caniuse-lite/data/regions/BB.js | 1 + node_modules/caniuse-lite/data/regions/BD.js | 1 + node_modules/caniuse-lite/data/regions/BE.js | 1 + node_modules/caniuse-lite/data/regions/BF.js | 1 + node_modules/caniuse-lite/data/regions/BG.js | 1 + node_modules/caniuse-lite/data/regions/BH.js | 1 + node_modules/caniuse-lite/data/regions/BI.js | 1 + node_modules/caniuse-lite/data/regions/BJ.js | 1 + node_modules/caniuse-lite/data/regions/BM.js | 1 + node_modules/caniuse-lite/data/regions/BN.js | 1 + node_modules/caniuse-lite/data/regions/BO.js | 1 + node_modules/caniuse-lite/data/regions/BR.js | 1 + node_modules/caniuse-lite/data/regions/BS.js | 1 + node_modules/caniuse-lite/data/regions/BT.js | 1 + node_modules/caniuse-lite/data/regions/BW.js | 1 + node_modules/caniuse-lite/data/regions/BY.js | 1 + node_modules/caniuse-lite/data/regions/BZ.js | 1 + node_modules/caniuse-lite/data/regions/CA.js | 1 + node_modules/caniuse-lite/data/regions/CD.js | 1 + node_modules/caniuse-lite/data/regions/CF.js | 1 + node_modules/caniuse-lite/data/regions/CG.js | 1 + node_modules/caniuse-lite/data/regions/CH.js | 1 + node_modules/caniuse-lite/data/regions/CI.js | 1 + node_modules/caniuse-lite/data/regions/CK.js | 1 + node_modules/caniuse-lite/data/regions/CL.js | 1 + node_modules/caniuse-lite/data/regions/CM.js | 1 + node_modules/caniuse-lite/data/regions/CN.js | 1 + node_modules/caniuse-lite/data/regions/CO.js | 1 + node_modules/caniuse-lite/data/regions/CR.js | 1 + node_modules/caniuse-lite/data/regions/CU.js | 1 + node_modules/caniuse-lite/data/regions/CV.js | 1 + node_modules/caniuse-lite/data/regions/CX.js | 1 + node_modules/caniuse-lite/data/regions/CY.js | 1 + node_modules/caniuse-lite/data/regions/CZ.js | 1 + node_modules/caniuse-lite/data/regions/DE.js | 1 + node_modules/caniuse-lite/data/regions/DJ.js | 1 + node_modules/caniuse-lite/data/regions/DK.js | 1 + node_modules/caniuse-lite/data/regions/DM.js | 1 + node_modules/caniuse-lite/data/regions/DO.js | 1 + node_modules/caniuse-lite/data/regions/DZ.js | 1 + node_modules/caniuse-lite/data/regions/EC.js | 1 + node_modules/caniuse-lite/data/regions/EE.js | 1 + node_modules/caniuse-lite/data/regions/EG.js | 1 + node_modules/caniuse-lite/data/regions/ER.js | 1 + node_modules/caniuse-lite/data/regions/ES.js | 1 + node_modules/caniuse-lite/data/regions/ET.js | 1 + node_modules/caniuse-lite/data/regions/FI.js | 1 + node_modules/caniuse-lite/data/regions/FJ.js | 1 + node_modules/caniuse-lite/data/regions/FK.js | 1 + node_modules/caniuse-lite/data/regions/FM.js | 1 + node_modules/caniuse-lite/data/regions/FO.js | 1 + node_modules/caniuse-lite/data/regions/FR.js | 1 + node_modules/caniuse-lite/data/regions/GA.js | 1 + node_modules/caniuse-lite/data/regions/GB.js | 1 + node_modules/caniuse-lite/data/regions/GD.js | 1 + node_modules/caniuse-lite/data/regions/GE.js | 1 + node_modules/caniuse-lite/data/regions/GF.js | 1 + node_modules/caniuse-lite/data/regions/GG.js | 1 + node_modules/caniuse-lite/data/regions/GH.js | 1 + node_modules/caniuse-lite/data/regions/GI.js | 1 + node_modules/caniuse-lite/data/regions/GL.js | 1 + node_modules/caniuse-lite/data/regions/GM.js | 1 + node_modules/caniuse-lite/data/regions/GN.js | 1 + node_modules/caniuse-lite/data/regions/GP.js | 1 + node_modules/caniuse-lite/data/regions/GQ.js | 1 + node_modules/caniuse-lite/data/regions/GR.js | 1 + node_modules/caniuse-lite/data/regions/GT.js | 1 + node_modules/caniuse-lite/data/regions/GU.js | 1 + node_modules/caniuse-lite/data/regions/GW.js | 1 + node_modules/caniuse-lite/data/regions/GY.js | 1 + node_modules/caniuse-lite/data/regions/HK.js | 1 + node_modules/caniuse-lite/data/regions/HN.js | 1 + node_modules/caniuse-lite/data/regions/HR.js | 1 + node_modules/caniuse-lite/data/regions/HT.js | 1 + node_modules/caniuse-lite/data/regions/HU.js | 1 + node_modules/caniuse-lite/data/regions/ID.js | 1 + node_modules/caniuse-lite/data/regions/IE.js | 1 + node_modules/caniuse-lite/data/regions/IL.js | 1 + node_modules/caniuse-lite/data/regions/IM.js | 1 + node_modules/caniuse-lite/data/regions/IN.js | 1 + node_modules/caniuse-lite/data/regions/IQ.js | 1 + node_modules/caniuse-lite/data/regions/IR.js | 1 + node_modules/caniuse-lite/data/regions/IS.js | 1 + node_modules/caniuse-lite/data/regions/IT.js | 1 + node_modules/caniuse-lite/data/regions/JE.js | 1 + node_modules/caniuse-lite/data/regions/JM.js | 1 + node_modules/caniuse-lite/data/regions/JO.js | 1 + node_modules/caniuse-lite/data/regions/JP.js | 1 + node_modules/caniuse-lite/data/regions/KE.js | 1 + node_modules/caniuse-lite/data/regions/KG.js | 1 + node_modules/caniuse-lite/data/regions/KH.js | 1 + node_modules/caniuse-lite/data/regions/KI.js | 1 + node_modules/caniuse-lite/data/regions/KM.js | 1 + node_modules/caniuse-lite/data/regions/KN.js | 1 + node_modules/caniuse-lite/data/regions/KP.js | 1 + node_modules/caniuse-lite/data/regions/KR.js | 1 + node_modules/caniuse-lite/data/regions/KW.js | 1 + node_modules/caniuse-lite/data/regions/KY.js | 1 + node_modules/caniuse-lite/data/regions/KZ.js | 1 + node_modules/caniuse-lite/data/regions/LA.js | 1 + node_modules/caniuse-lite/data/regions/LB.js | 1 + node_modules/caniuse-lite/data/regions/LC.js | 1 + node_modules/caniuse-lite/data/regions/LI.js | 1 + node_modules/caniuse-lite/data/regions/LK.js | 1 + node_modules/caniuse-lite/data/regions/LR.js | 1 + node_modules/caniuse-lite/data/regions/LS.js | 1 + node_modules/caniuse-lite/data/regions/LT.js | 1 + node_modules/caniuse-lite/data/regions/LU.js | 1 + node_modules/caniuse-lite/data/regions/LV.js | 1 + node_modules/caniuse-lite/data/regions/LY.js | 1 + node_modules/caniuse-lite/data/regions/MA.js | 1 + node_modules/caniuse-lite/data/regions/MC.js | 1 + node_modules/caniuse-lite/data/regions/MD.js | 1 + node_modules/caniuse-lite/data/regions/ME.js | 1 + node_modules/caniuse-lite/data/regions/MG.js | 1 + node_modules/caniuse-lite/data/regions/MH.js | 1 + node_modules/caniuse-lite/data/regions/MK.js | 1 + node_modules/caniuse-lite/data/regions/ML.js | 1 + node_modules/caniuse-lite/data/regions/MM.js | 1 + node_modules/caniuse-lite/data/regions/MN.js | 1 + node_modules/caniuse-lite/data/regions/MO.js | 1 + node_modules/caniuse-lite/data/regions/MP.js | 1 + node_modules/caniuse-lite/data/regions/MQ.js | 1 + node_modules/caniuse-lite/data/regions/MR.js | 1 + node_modules/caniuse-lite/data/regions/MS.js | 1 + node_modules/caniuse-lite/data/regions/MT.js | 1 + node_modules/caniuse-lite/data/regions/MU.js | 1 + node_modules/caniuse-lite/data/regions/MV.js | 1 + node_modules/caniuse-lite/data/regions/MW.js | 1 + node_modules/caniuse-lite/data/regions/MX.js | 1 + node_modules/caniuse-lite/data/regions/MY.js | 1 + node_modules/caniuse-lite/data/regions/MZ.js | 1 + node_modules/caniuse-lite/data/regions/NA.js | 1 + node_modules/caniuse-lite/data/regions/NC.js | 1 + node_modules/caniuse-lite/data/regions/NE.js | 1 + node_modules/caniuse-lite/data/regions/NF.js | 1 + node_modules/caniuse-lite/data/regions/NG.js | 1 + node_modules/caniuse-lite/data/regions/NI.js | 1 + node_modules/caniuse-lite/data/regions/NL.js | 1 + node_modules/caniuse-lite/data/regions/NO.js | 1 + node_modules/caniuse-lite/data/regions/NP.js | 1 + node_modules/caniuse-lite/data/regions/NR.js | 1 + node_modules/caniuse-lite/data/regions/NU.js | 1 + node_modules/caniuse-lite/data/regions/NZ.js | 1 + node_modules/caniuse-lite/data/regions/OM.js | 1 + node_modules/caniuse-lite/data/regions/PA.js | 1 + node_modules/caniuse-lite/data/regions/PE.js | 1 + node_modules/caniuse-lite/data/regions/PF.js | 1 + node_modules/caniuse-lite/data/regions/PG.js | 1 + node_modules/caniuse-lite/data/regions/PH.js | 1 + node_modules/caniuse-lite/data/regions/PK.js | 1 + node_modules/caniuse-lite/data/regions/PL.js | 1 + node_modules/caniuse-lite/data/regions/PM.js | 1 + node_modules/caniuse-lite/data/regions/PN.js | 1 + node_modules/caniuse-lite/data/regions/PR.js | 1 + node_modules/caniuse-lite/data/regions/PS.js | 1 + node_modules/caniuse-lite/data/regions/PT.js | 1 + node_modules/caniuse-lite/data/regions/PW.js | 1 + node_modules/caniuse-lite/data/regions/PY.js | 1 + node_modules/caniuse-lite/data/regions/QA.js | 1 + node_modules/caniuse-lite/data/regions/RE.js | 1 + node_modules/caniuse-lite/data/regions/RO.js | 1 + node_modules/caniuse-lite/data/regions/RS.js | 1 + node_modules/caniuse-lite/data/regions/RU.js | 1 + node_modules/caniuse-lite/data/regions/RW.js | 1 + node_modules/caniuse-lite/data/regions/SA.js | 1 + node_modules/caniuse-lite/data/regions/SB.js | 1 + node_modules/caniuse-lite/data/regions/SC.js | 1 + node_modules/caniuse-lite/data/regions/SD.js | 1 + node_modules/caniuse-lite/data/regions/SE.js | 1 + node_modules/caniuse-lite/data/regions/SG.js | 1 + node_modules/caniuse-lite/data/regions/SH.js | 1 + node_modules/caniuse-lite/data/regions/SI.js | 1 + node_modules/caniuse-lite/data/regions/SK.js | 1 + node_modules/caniuse-lite/data/regions/SL.js | 1 + node_modules/caniuse-lite/data/regions/SM.js | 1 + node_modules/caniuse-lite/data/regions/SN.js | 1 + node_modules/caniuse-lite/data/regions/SO.js | 1 + node_modules/caniuse-lite/data/regions/SR.js | 1 + node_modules/caniuse-lite/data/regions/ST.js | 1 + node_modules/caniuse-lite/data/regions/SV.js | 1 + node_modules/caniuse-lite/data/regions/SY.js | 1 + node_modules/caniuse-lite/data/regions/SZ.js | 1 + node_modules/caniuse-lite/data/regions/TC.js | 1 + node_modules/caniuse-lite/data/regions/TD.js | 1 + node_modules/caniuse-lite/data/regions/TG.js | 1 + node_modules/caniuse-lite/data/regions/TH.js | 1 + node_modules/caniuse-lite/data/regions/TJ.js | 1 + node_modules/caniuse-lite/data/regions/TK.js | 1 + node_modules/caniuse-lite/data/regions/TL.js | 1 + node_modules/caniuse-lite/data/regions/TM.js | 1 + node_modules/caniuse-lite/data/regions/TN.js | 1 + node_modules/caniuse-lite/data/regions/TO.js | 1 + node_modules/caniuse-lite/data/regions/TR.js | 1 + node_modules/caniuse-lite/data/regions/TT.js | 1 + node_modules/caniuse-lite/data/regions/TV.js | 1 + node_modules/caniuse-lite/data/regions/TW.js | 1 + node_modules/caniuse-lite/data/regions/TZ.js | 1 + node_modules/caniuse-lite/data/regions/UA.js | 1 + node_modules/caniuse-lite/data/regions/UG.js | 1 + node_modules/caniuse-lite/data/regions/US.js | 1 + node_modules/caniuse-lite/data/regions/UY.js | 1 + node_modules/caniuse-lite/data/regions/UZ.js | 1 + node_modules/caniuse-lite/data/regions/VA.js | 1 + node_modules/caniuse-lite/data/regions/VC.js | 1 + node_modules/caniuse-lite/data/regions/VE.js | 1 + node_modules/caniuse-lite/data/regions/VG.js | 1 + node_modules/caniuse-lite/data/regions/VI.js | 1 + node_modules/caniuse-lite/data/regions/VN.js | 1 + node_modules/caniuse-lite/data/regions/VU.js | 1 + node_modules/caniuse-lite/data/regions/WF.js | 1 + node_modules/caniuse-lite/data/regions/WS.js | 1 + node_modules/caniuse-lite/data/regions/YE.js | 1 + node_modules/caniuse-lite/data/regions/YT.js | 1 + node_modules/caniuse-lite/data/regions/ZA.js | 1 + node_modules/caniuse-lite/data/regions/ZM.js | 1 + node_modules/caniuse-lite/data/regions/ZW.js | 1 + .../caniuse-lite/data/regions/alt-af.js | 1 + .../caniuse-lite/data/regions/alt-an.js | 1 + .../caniuse-lite/data/regions/alt-as.js | 1 + .../caniuse-lite/data/regions/alt-eu.js | 1 + .../caniuse-lite/data/regions/alt-na.js | 1 + .../caniuse-lite/data/regions/alt-oc.js | 1 + .../caniuse-lite/data/regions/alt-sa.js | 1 + .../caniuse-lite/data/regions/alt-ww.js | 1 + .../caniuse-lite/dist/lib/statuses.js | 9 + .../caniuse-lite/dist/lib/supported.js | 9 + .../caniuse-lite/dist/unpacker/agents.js | 47 + .../dist/unpacker/browserVersions.js | 1 + .../caniuse-lite/dist/unpacker/browsers.js | 1 + .../caniuse-lite/dist/unpacker/feature.js | 48 + .../caniuse-lite/dist/unpacker/features.js | 6 + .../caniuse-lite/dist/unpacker/index.js | 4 + .../caniuse-lite/dist/unpacker/region.js | 22 + node_modules/caniuse-lite/package.json | 34 + node_modules/chokidar/LICENSE | 21 + node_modules/chokidar/README.md | 308 + node_modules/chokidar/index.js | 973 + node_modules/chokidar/lib/constants.js | 65 + node_modules/chokidar/lib/fsevents-handler.js | 524 + node_modules/chokidar/lib/nodefs-handler.js | 654 + node_modules/chokidar/package.json | 85 + node_modules/chokidar/types/index.d.ts | 188 + node_modules/cliui/CHANGELOG.md | 139 + node_modules/cliui/LICENSE.txt | 14 + node_modules/cliui/README.md | 141 + node_modules/cliui/build/index.cjs | 302 + node_modules/cliui/build/index.d.cts | 43 + node_modules/cliui/build/lib/index.js | 287 + node_modules/cliui/build/lib/string-utils.js | 27 + node_modules/cliui/index.mjs | 13 + node_modules/cliui/package.json | 83 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 + node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 48 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 + node_modules/color-name/package.json | 28 + node_modules/dependency-graph/CHANGELOG.md | 82 + node_modules/dependency-graph/LICENSE | 19 + node_modules/dependency-graph/README.md | 78 + .../dependency-graph/lib/dep_graph.js | 364 + node_modules/dependency-graph/lib/index.d.ts | 127 + node_modules/dependency-graph/package.json | 31 + .../dependency-graph/specs/dep_graph_spec.js | 542 + node_modules/dir-glob/index.js | 75 + node_modules/dir-glob/license | 9 + node_modules/dir-glob/package.json | 38 + node_modules/dir-glob/readme.md | 76 + .../electron-to-chromium/CHANGELOG.md | 14 + node_modules/electron-to-chromium/LICENSE | 5 + node_modules/electron-to-chromium/README.md | 186 + .../electron-to-chromium/chromium-versions.js | 56 + .../chromium-versions.json | 1 + .../full-chromium-versions.js | 2589 ++ .../full-chromium-versions.json | 1 + .../electron-to-chromium/full-versions.js | 1895 ++ .../electron-to-chromium/full-versions.json | 1 + node_modules/electron-to-chromium/index.js | 36 + .../electron-to-chromium/package.json | 44 + node_modules/electron-to-chromium/versions.js | 121 + .../electron-to-chromium/versions.json | 1 + node_modules/emoji-regex/LICENSE-MIT.txt | 20 + node_modules/emoji-regex/README.md | 73 + node_modules/emoji-regex/es2015/index.js | 6 + node_modules/emoji-regex/es2015/text.js | 6 + node_modules/emoji-regex/index.d.ts | 23 + node_modules/emoji-regex/index.js | 6 + node_modules/emoji-regex/package.json | 50 + node_modules/emoji-regex/text.js | 6 + node_modules/escalade/dist/index.js | 22 + node_modules/escalade/dist/index.mjs | 22 + node_modules/escalade/index.d.ts | 3 + node_modules/escalade/license | 9 + node_modules/escalade/package.json | 61 + node_modules/escalade/readme.md | 211 + node_modules/escalade/sync/index.d.ts | 2 + node_modules/escalade/sync/index.js | 18 + node_modules/escalade/sync/index.mjs | 18 + node_modules/fast-glob/LICENSE | 21 + node_modules/fast-glob/README.md | 795 + node_modules/fast-glob/out/index.d.ts | 27 + node_modules/fast-glob/out/index.js | 68 + .../fast-glob/out/managers/patterns.d.ts | 6 + .../fast-glob/out/managers/patterns.js | 21 + .../fast-glob/out/managers/tasks.d.ts | 22 + node_modules/fast-glob/out/managers/tasks.js | 80 + .../fast-glob/out/providers/async.d.ts | 9 + node_modules/fast-glob/out/providers/async.js | 23 + .../fast-glob/out/providers/filters/deep.d.ts | 16 + .../fast-glob/out/providers/filters/deep.js | 62 + .../out/providers/filters/entry.d.ts | 16 + .../fast-glob/out/providers/filters/entry.js | 64 + .../out/providers/filters/error.d.ts | 8 + .../fast-glob/out/providers/filters/error.js | 15 + .../out/providers/matchers/matcher.d.ts | 33 + .../out/providers/matchers/matcher.js | 50 + .../out/providers/matchers/partial.d.ts | 4 + .../out/providers/matchers/partial.js | 38 + .../fast-glob/out/providers/provider.d.ts | 19 + .../fast-glob/out/providers/provider.js | 48 + .../fast-glob/out/providers/stream.d.ts | 11 + .../fast-glob/out/providers/stream.js | 31 + .../fast-glob/out/providers/sync.d.ts | 9 + node_modules/fast-glob/out/providers/sync.js | 23 + .../out/providers/transformers/entry.d.ts | 8 + .../out/providers/transformers/entry.js | 26 + node_modules/fast-glob/out/readers/async.d.ts | 10 + node_modules/fast-glob/out/readers/async.js | 35 + .../fast-glob/out/readers/reader.d.ts | 15 + node_modules/fast-glob/out/readers/reader.js | 33 + .../fast-glob/out/readers/stream.d.ts | 14 + node_modules/fast-glob/out/readers/stream.js | 55 + node_modules/fast-glob/out/readers/sync.d.ts | 12 + node_modules/fast-glob/out/readers/sync.js | 43 + node_modules/fast-glob/out/settings.d.ts | 164 + node_modules/fast-glob/out/settings.js | 57 + node_modules/fast-glob/out/types/index.d.ts | 31 + node_modules/fast-glob/out/types/index.js | 2 + node_modules/fast-glob/out/utils/array.d.ts | 2 + node_modules/fast-glob/out/utils/array.js | 22 + node_modules/fast-glob/out/utils/errno.d.ts | 2 + node_modules/fast-glob/out/utils/errno.js | 7 + node_modules/fast-glob/out/utils/fs.d.ts | 4 + node_modules/fast-glob/out/utils/fs.js | 19 + node_modules/fast-glob/out/utils/index.d.ts | 8 + node_modules/fast-glob/out/utils/index.js | 17 + node_modules/fast-glob/out/utils/path.d.ts | 8 + node_modules/fast-glob/out/utils/path.js | 33 + node_modules/fast-glob/out/utils/pattern.d.ts | 42 + node_modules/fast-glob/out/utils/pattern.js | 169 + node_modules/fast-glob/out/utils/stream.d.ts | 3 + node_modules/fast-glob/out/utils/stream.js | 17 + node_modules/fast-glob/out/utils/string.d.ts | 2 + node_modules/fast-glob/out/utils/string.js | 11 + node_modules/fast-glob/package.json | 94 + node_modules/fastq/.github/dependabot.yml | 11 + node_modules/fastq/.github/workflows/ci.yml | 50 + node_modules/fastq/LICENSE | 13 + node_modules/fastq/README.md | 309 + node_modules/fastq/bench.js | 66 + node_modules/fastq/example.js | 14 + node_modules/fastq/example.mjs | 11 + node_modules/fastq/index.d.ts | 37 + node_modules/fastq/package.json | 52 + node_modules/fastq/queue.js | 289 + node_modules/fastq/test/example.ts | 81 + node_modules/fastq/test/promise.js | 248 + node_modules/fastq/test/test.js | 566 + node_modules/fastq/test/tsconfig.json | 11 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 249 + node_modules/fill-range/package.json | 69 + node_modules/fraction.js/LICENSE | 21 + node_modules/fraction.js/README.md | 492 + node_modules/fraction.js/bigfraction.js | 895 + node_modules/fraction.js/fraction.d.ts | 60 + node_modules/fraction.js/fraction.js | 891 + node_modules/fraction.js/fraction.min.js | 19 + node_modules/fraction.js/package.json | 43 + node_modules/fs-extra/LICENSE | 15 + node_modules/fs-extra/README.md | 262 + node_modules/fs-extra/lib/copy/copy-sync.js | 169 + node_modules/fs-extra/lib/copy/copy.js | 235 + node_modules/fs-extra/lib/copy/index.js | 7 + node_modules/fs-extra/lib/empty/index.js | 39 + node_modules/fs-extra/lib/ensure/file.js | 69 + node_modules/fs-extra/lib/ensure/index.js | 23 + node_modules/fs-extra/lib/ensure/link.js | 64 + .../fs-extra/lib/ensure/symlink-paths.js | 99 + .../fs-extra/lib/ensure/symlink-type.js | 31 + node_modules/fs-extra/lib/ensure/symlink.js | 82 + node_modules/fs-extra/lib/fs/index.js | 128 + node_modules/fs-extra/lib/index.js | 16 + node_modules/fs-extra/lib/json/index.js | 16 + node_modules/fs-extra/lib/json/jsonfile.js | 11 + .../fs-extra/lib/json/output-json-sync.js | 12 + node_modules/fs-extra/lib/json/output-json.js | 12 + node_modules/fs-extra/lib/mkdirs/index.js | 14 + node_modules/fs-extra/lib/mkdirs/make-dir.js | 27 + node_modules/fs-extra/lib/mkdirs/utils.js | 21 + node_modules/fs-extra/lib/move/index.js | 7 + node_modules/fs-extra/lib/move/move-sync.js | 54 + node_modules/fs-extra/lib/move/move.js | 75 + .../fs-extra/lib/output-file/index.js | 40 + .../fs-extra/lib/path-exists/index.js | 12 + node_modules/fs-extra/lib/remove/index.js | 22 + node_modules/fs-extra/lib/remove/rimraf.js | 302 + node_modules/fs-extra/lib/util/stat.js | 154 + node_modules/fs-extra/lib/util/utimes.js | 26 + node_modules/fs-extra/package.json | 67 + node_modules/get-caller-file/LICENSE.md | 6 + node_modules/get-caller-file/README.md | 41 + node_modules/get-caller-file/index.d.ts | 2 + node_modules/get-caller-file/index.js | 22 + node_modules/get-caller-file/index.js.map | 1 + node_modules/get-caller-file/package.json | 42 + node_modules/get-stdin/index.d.ts | 29 + node_modules/get-stdin/index.js | 33 + node_modules/get-stdin/license | 9 + node_modules/get-stdin/package.json | 42 + node_modules/get-stdin/readme.md | 56 + node_modules/glob-parent/CHANGELOG.md | 110 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 137 + node_modules/glob-parent/index.js | 42 + node_modules/glob-parent/package.json | 48 + node_modules/globby/gitignore.js | 108 + node_modules/globby/index.d.ts | 188 + node_modules/globby/index.js | 197 + node_modules/globby/license | 9 + node_modules/globby/package.json | 87 + node_modules/globby/readme.md | 168 + node_modules/globby/stream-utils.js | 40 + node_modules/globby/to-path.js | 15 + node_modules/graceful-fs/LICENSE | 15 + node_modules/graceful-fs/README.md | 143 + node_modules/graceful-fs/clone.js | 23 + node_modules/graceful-fs/graceful-fs.js | 448 + node_modules/graceful-fs/legacy-streams.js | 118 + node_modules/graceful-fs/package.json | 53 + node_modules/graceful-fs/polyfills.js | 355 + node_modules/ignore/LICENSE-MIT | 21 + node_modules/ignore/README.md | 412 + node_modules/ignore/index.d.ts | 61 + node_modules/ignore/index.js | 618 + node_modules/ignore/legacy.js | 539 + node_modules/ignore/package.json | 73 + node_modules/is-binary-path/index.d.ts | 17 + node_modules/is-binary-path/index.js | 7 + node_modules/is-binary-path/license | 9 + node_modules/is-binary-path/package.json | 40 + node_modules/is-binary-path/readme.md | 34 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + .../is-fullwidth-code-point/index.d.ts | 17 + node_modules/is-fullwidth-code-point/index.js | 50 + node_modules/is-fullwidth-code-point/license | 9 + .../is-fullwidth-code-point/package.json | 42 + .../is-fullwidth-code-point/readme.md | 39 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/jsonfile/CHANGELOG.md | 171 + node_modules/jsonfile/LICENSE | 15 + node_modules/jsonfile/README.md | 230 + node_modules/jsonfile/index.js | 88 + node_modules/jsonfile/package.json | 40 + node_modules/jsonfile/utils.js | 14 + node_modules/lilconfig/LICENSE | 21 + node_modules/lilconfig/dist/index.d.ts | 38 + node_modules/lilconfig/dist/index.js | 251 + node_modules/lilconfig/package.json | 48 + node_modules/lilconfig/readme.md | 118 + node_modules/merge2/LICENSE | 21 + node_modules/merge2/README.md | 144 + node_modules/merge2/index.js | 144 + node_modules/merge2/package.json | 43 + node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1011 + node_modules/micromatch/index.js | 467 + node_modules/micromatch/package.json | 119 + node_modules/nanoid/LICENSE | 20 + node_modules/nanoid/README.md | 39 + node_modules/nanoid/async/index.browser.cjs | 34 + node_modules/nanoid/async/index.browser.js | 34 + node_modules/nanoid/async/index.cjs | 35 + node_modules/nanoid/async/index.d.ts | 56 + node_modules/nanoid/async/index.js | 35 + node_modules/nanoid/async/index.native.js | 26 + node_modules/nanoid/async/package.json | 12 + node_modules/nanoid/bin/nanoid.cjs | 55 + node_modules/nanoid/index.browser.cjs | 34 + node_modules/nanoid/index.browser.js | 34 + node_modules/nanoid/index.cjs | 45 + node_modules/nanoid/index.d.ts | 91 + node_modules/nanoid/index.js | 45 + node_modules/nanoid/nanoid.js | 1 + node_modules/nanoid/non-secure/index.cjs | 21 + node_modules/nanoid/non-secure/index.d.ts | 33 + node_modules/nanoid/non-secure/index.js | 21 + node_modules/nanoid/non-secure/package.json | 6 + node_modules/nanoid/package.json | 66 + node_modules/nanoid/url-alphabet/index.cjs | 3 + node_modules/nanoid/url-alphabet/index.js | 3 + node_modules/nanoid/url-alphabet/package.json | 6 + node_modules/node-releases/LICENSE | 21 + node_modules/node-releases/README.md | 12 + .../node-releases/data/processed/envs.json | 1 + .../release-schedule/release-schedule.json | 1 + node_modules/node-releases/package.json | 19 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 77 + node_modules/normalize-range/index.js | 54 + node_modules/normalize-range/license | 21 + node_modules/normalize-range/package.json | 46 + node_modules/normalize-range/readme.md | 148 + node_modules/path-type/index.d.ts | 51 + node_modules/path-type/index.js | 43 + node_modules/path-type/license | 9 + node_modules/path-type/package.json | 45 + node_modules/path-type/readme.md | 72 + node_modules/picocolors/LICENSE | 15 + node_modules/picocolors/README.md | 21 + node_modules/picocolors/package.json | 25 + node_modules/picocolors/picocolors.browser.js | 4 + node_modules/picocolors/picocolors.d.ts | 5 + node_modules/picocolors/picocolors.js | 58 + node_modules/picocolors/types.ts | 30 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 + node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 + node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/pify/index.js | 68 + node_modules/pify/license | 21 + node_modules/pify/package.json | 48 + node_modules/pify/readme.md | 119 + node_modules/postcss-cli/LICENSE | 21 + node_modules/postcss-cli/README.md | 149 + node_modules/postcss-cli/index.js | 348 + .../postcss-cli/lib/DependencyGraph.js | 30 + node_modules/postcss-cli/lib/args.js | 115 + node_modules/postcss-cli/lib/getMapfile.js | 7 + node_modules/postcss-cli/package.json | 78 + node_modules/postcss-load-config/LICENSE | 20 + node_modules/postcss-load-config/README.md | 500 + node_modules/postcss-load-config/package.json | 48 + .../postcss-load-config/src/index.d.ts | 71 + node_modules/postcss-load-config/src/index.js | 188 + .../postcss-load-config/src/options.js | 47 + .../postcss-load-config/src/plugins.js | 85 + node_modules/postcss-load-config/src/req.js | 10 + node_modules/postcss-reporter/LICENSE | 22 + node_modules/postcss-reporter/README.md | 12 + node_modules/postcss-reporter/index.js | 4 + .../postcss-reporter/lib/formatter.js | 95 + node_modules/postcss-reporter/lib/reporter.js | 101 + node_modules/postcss-reporter/lib/util.js | 19 + node_modules/postcss-reporter/package.json | 31 + node_modules/postcss-value-parser/LICENSE | 22 + node_modules/postcss-value-parser/README.md | 263 + .../postcss-value-parser/lib/index.d.ts | 177 + .../postcss-value-parser/lib/index.js | 28 + .../postcss-value-parser/lib/parse.js | 321 + .../postcss-value-parser/lib/stringify.js | 48 + node_modules/postcss-value-parser/lib/unit.js | 120 + node_modules/postcss-value-parser/lib/walk.js | 22 + .../postcss-value-parser/package.json | 58 + node_modules/postcss/LICENSE | 20 + node_modules/postcss/README.md | 44 + node_modules/postcss/lib/at-rule.d.ts | 115 + node_modules/postcss/lib/at-rule.js | 25 + node_modules/postcss/lib/comment.d.ts | 65 + node_modules/postcss/lib/comment.js | 13 + node_modules/postcss/lib/container.d.ts | 451 + node_modules/postcss/lib/container.js | 439 + .../postcss/lib/css-syntax-error.d.ts | 248 + node_modules/postcss/lib/css-syntax-error.js | 100 + node_modules/postcss/lib/declaration.d.ts | 133 + node_modules/postcss/lib/declaration.js | 24 + node_modules/postcss/lib/document.d.ts | 63 + node_modules/postcss/lib/document.js | 33 + node_modules/postcss/lib/fromJSON.d.ts | 9 + node_modules/postcss/lib/fromJSON.js | 54 + node_modules/postcss/lib/input.d.ts | 194 + node_modules/postcss/lib/input.js | 248 + node_modules/postcss/lib/lazy-result.d.ts | 185 + node_modules/postcss/lib/lazy-result.js | 550 + node_modules/postcss/lib/list.d.ts | 57 + node_modules/postcss/lib/list.js | 58 + node_modules/postcss/lib/map-generator.js | 338 + node_modules/postcss/lib/no-work-result.d.ts | 46 + node_modules/postcss/lib/no-work-result.js | 135 + node_modules/postcss/lib/node.d.ts | 489 + node_modules/postcss/lib/node.js | 379 + node_modules/postcss/lib/parse.d.ts | 9 + node_modules/postcss/lib/parse.js | 42 + node_modules/postcss/lib/parser.js | 603 + node_modules/postcss/lib/postcss.d.mts | 72 + node_modules/postcss/lib/postcss.d.ts | 441 + node_modules/postcss/lib/postcss.js | 101 + node_modules/postcss/lib/postcss.mjs | 30 + node_modules/postcss/lib/previous-map.d.ts | 81 + node_modules/postcss/lib/previous-map.js | 142 + node_modules/postcss/lib/processor.d.ts | 111 + node_modules/postcss/lib/processor.js | 67 + node_modules/postcss/lib/result.d.ts | 206 + node_modules/postcss/lib/result.js | 42 + node_modules/postcss/lib/root.d.ts | 82 + node_modules/postcss/lib/root.js | 61 + node_modules/postcss/lib/rule.d.ts | 113 + node_modules/postcss/lib/rule.js | 27 + node_modules/postcss/lib/stringifier.d.ts | 46 + node_modules/postcss/lib/stringifier.js | 353 + node_modules/postcss/lib/stringify.d.ts | 9 + node_modules/postcss/lib/stringify.js | 11 + node_modules/postcss/lib/symbols.js | 5 + .../postcss/lib/terminal-highlight.js | 70 + node_modules/postcss/lib/tokenize.js | 266 + node_modules/postcss/lib/warn-once.js | 13 + node_modules/postcss/lib/warning.d.ts | 147 + node_modules/postcss/lib/warning.js | 37 + node_modules/postcss/package.json | 88 + node_modules/pretty-hrtime/.jshintignore | 1 + node_modules/pretty-hrtime/.npmignore | 10 + node_modules/pretty-hrtime/LICENSE | 20 + node_modules/pretty-hrtime/README.md | 57 + node_modules/pretty-hrtime/index.js | 80 + node_modules/pretty-hrtime/package.json | 25 + node_modules/queue-microtask/LICENSE | 20 + node_modules/queue-microtask/README.md | 90 + node_modules/queue-microtask/index.d.ts | 2 + node_modules/queue-microtask/index.js | 9 + node_modules/queue-microtask/package.json | 55 + node_modules/read-cache/LICENSE | 20 + node_modules/read-cache/README.md | 46 + node_modules/read-cache/index.js | 78 + node_modules/read-cache/package.json | 34 + node_modules/readdirp/LICENSE | 21 + node_modules/readdirp/README.md | 122 + node_modules/readdirp/index.d.ts | 43 + node_modules/readdirp/index.js | 287 + node_modules/readdirp/package.json | 122 + node_modules/require-directory/.jshintrc | 67 + node_modules/require-directory/.npmignore | 1 + node_modules/require-directory/.travis.yml | 3 + node_modules/require-directory/LICENSE | 22 + .../require-directory/README.markdown | 184 + node_modules/require-directory/index.js | 86 + node_modules/require-directory/package.json | 40 + node_modules/reusify/.coveralls.yml | 1 + node_modules/reusify/.travis.yml | 28 + node_modules/reusify/LICENSE | 22 + node_modules/reusify/README.md | 145 + .../benchmarks/createNoCodeFunction.js | 30 + node_modules/reusify/benchmarks/fib.js | 13 + .../reusify/benchmarks/reuseNoCodeFunction.js | 38 + node_modules/reusify/package.json | 45 + node_modules/reusify/reusify.js | 33 + node_modules/reusify/test.js | 66 + node_modules/run-parallel/LICENSE | 20 + node_modules/run-parallel/README.md | 85 + node_modules/run-parallel/index.js | 51 + node_modules/run-parallel/package.json | 58 + node_modules/slash/index.d.ts | 23 + node_modules/slash/index.js | 10 + node_modules/slash/license | 9 + node_modules/slash/package.json | 38 + node_modules/slash/readme.md | 48 + node_modules/source-map-js/CHANGELOG.md | 320 + node_modules/source-map-js/LICENSE | 28 + node_modules/source-map-js/README.md | 758 + node_modules/source-map-js/lib/array-set.js | 121 + node_modules/source-map-js/lib/base64-vlq.js | 140 + node_modules/source-map-js/lib/base64.js | 67 + .../source-map-js/lib/binary-search.js | 111 + .../source-map-js/lib/mapping-list.js | 79 + node_modules/source-map-js/lib/quick-sort.js | 132 + .../source-map-js/lib/source-map-consumer.js | 1184 + .../source-map-js/lib/source-map-generator.js | 425 + node_modules/source-map-js/lib/source-node.js | 413 + node_modules/source-map-js/lib/util.js | 594 + node_modules/source-map-js/package.json | 71 + node_modules/source-map-js/source-map.d.ts | 115 + node_modules/source-map-js/source-map.js | 8 + node_modules/string-width/index.d.ts | 29 + node_modules/string-width/index.js | 47 + node_modules/string-width/license | 9 + node_modules/string-width/package.json | 56 + node_modules/string-width/readme.md | 50 + node_modules/strip-ansi/index.d.ts | 17 + node_modules/strip-ansi/index.js | 4 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 54 + node_modules/strip-ansi/readme.md | 46 + node_modules/thenby/LICENSE.TXT | 201 + node_modules/thenby/README.md | 159 + node_modules/thenby/package.json | 45 + node_modules/thenby/thenBy.min.js | 2 + node_modules/thenby/thenBy.module.d.ts | 51 + node_modules/thenby/thenBy.module.js | 60 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/universalify/LICENSE | 20 + node_modules/universalify/README.md | 76 + node_modules/universalify/index.js | 24 + node_modules/universalify/package.json | 34 + node_modules/update-browserslist-db/LICENSE | 20 + node_modules/update-browserslist-db/README.md | 22 + .../check-npm-version.js | 16 + node_modules/update-browserslist-db/cli.js | 42 + .../update-browserslist-db/index.d.ts | 6 + node_modules/update-browserslist-db/index.js | 317 + .../update-browserslist-db/package.json | 40 + node_modules/update-browserslist-db/utils.js | 22 + node_modules/wrap-ansi/index.js | 216 + node_modules/wrap-ansi/license | 9 + node_modules/wrap-ansi/package.json | 62 + node_modules/wrap-ansi/readme.md | 91 + node_modules/y18n/CHANGELOG.md | 100 + node_modules/y18n/LICENSE | 13 + node_modules/y18n/README.md | 127 + node_modules/y18n/build/index.cjs | 203 + node_modules/y18n/build/lib/cjs.js | 6 + node_modules/y18n/build/lib/index.js | 174 + .../y18n/build/lib/platform-shims/node.js | 19 + node_modules/y18n/index.mjs | 8 + node_modules/y18n/package.json | 70 + node_modules/yaml/LICENSE | 13 + node_modules/yaml/README.md | 127 + .../yaml/browser/dist/PlainValue-b8036b75.js | 1275 + .../yaml/browser/dist/Schema-e94716c8.js | 682 + node_modules/yaml/browser/dist/index.js | 1002 + .../yaml/browser/dist/legacy-exports.js | 3 + node_modules/yaml/browser/dist/package.json | 1 + node_modules/yaml/browser/dist/parse-cst.js | 1904 ++ .../yaml/browser/dist/resolveSeq-492ab440.js | 2419 ++ node_modules/yaml/browser/dist/types.js | 4 + node_modules/yaml/browser/dist/util.js | 2 + .../yaml/browser/dist/warnings-df54cb69.js | 499 + node_modules/yaml/browser/index.js | 1 + node_modules/yaml/browser/map.js | 2 + node_modules/yaml/browser/pair.js | 2 + node_modules/yaml/browser/parse-cst.js | 1 + node_modules/yaml/browser/scalar.js | 2 + node_modules/yaml/browser/schema.js | 9 + node_modules/yaml/browser/seq.js | 2 + node_modules/yaml/browser/types.js | 1 + node_modules/yaml/browser/types/binary.js | 8 + node_modules/yaml/browser/types/omap.js | 3 + node_modules/yaml/browser/types/pairs.js | 3 + node_modules/yaml/browser/types/set.js | 3 + node_modules/yaml/browser/types/timestamp.js | 10 + node_modules/yaml/browser/util.js | 1 + node_modules/yaml/dist/Document-9b4560a1.js | 757 + node_modules/yaml/dist/PlainValue-ec8e588e.js | 876 + node_modules/yaml/dist/Schema-88e323a7.js | 525 + node_modules/yaml/dist/index.js | 79 + node_modules/yaml/dist/legacy-exports.js | 16 + node_modules/yaml/dist/parse-cst.js | 1753 ++ node_modules/yaml/dist/resolveSeq-d03cb037.js | 2161 ++ node_modules/yaml/dist/test-events.js | 162 + node_modules/yaml/dist/types.js | 23 + node_modules/yaml/dist/util.js | 19 + node_modules/yaml/dist/warnings-1000a372.js | 416 + node_modules/yaml/index.d.ts | 372 + node_modules/yaml/index.js | 1 + node_modules/yaml/map.js | 2 + node_modules/yaml/package.json | 106 + node_modules/yaml/pair.js | 2 + node_modules/yaml/parse-cst.d.ts | 191 + node_modules/yaml/parse-cst.js | 1 + node_modules/yaml/scalar.js | 2 + node_modules/yaml/schema.js | 9 + node_modules/yaml/seq.js | 2 + node_modules/yaml/types.d.ts | 407 + node_modules/yaml/types.js | 17 + node_modules/yaml/types.mjs | 17 + node_modules/yaml/types/binary.js | 8 + node_modules/yaml/types/omap.js | 3 + node_modules/yaml/types/pairs.js | 3 + node_modules/yaml/types/set.js | 3 + node_modules/yaml/types/timestamp.js | 10 + node_modules/yaml/util.d.ts | 86 + node_modules/yaml/util.js | 16 + node_modules/yaml/util.mjs | 18 + node_modules/yargs-parser/CHANGELOG.md | 308 + node_modules/yargs-parser/LICENSE.txt | 14 + node_modules/yargs-parser/README.md | 518 + node_modules/yargs-parser/browser.js | 29 + node_modules/yargs-parser/build/index.cjs | 1050 + node_modules/yargs-parser/build/lib/index.js | 62 + .../yargs-parser/build/lib/string-utils.js | 65 + .../build/lib/tokenize-arg-string.js | 40 + .../build/lib/yargs-parser-types.js | 12 + .../yargs-parser/build/lib/yargs-parser.js | 1045 + node_modules/yargs-parser/package.json | 92 + node_modules/yargs/LICENSE | 21 + node_modules/yargs/README.md | 204 + node_modules/yargs/browser.d.ts | 5 + node_modules/yargs/browser.mjs | 7 + node_modules/yargs/build/index.cjs | 1 + node_modules/yargs/build/lib/argsert.js | 62 + node_modules/yargs/build/lib/command.js | 449 + .../yargs/build/lib/completion-templates.js | 48 + node_modules/yargs/build/lib/completion.js | 243 + node_modules/yargs/build/lib/middleware.js | 88 + node_modules/yargs/build/lib/parse-command.js | 32 + .../yargs/build/lib/typings/common-types.js | 9 + .../build/lib/typings/yargs-parser-types.js | 1 + node_modules/yargs/build/lib/usage.js | 584 + .../yargs/build/lib/utils/apply-extends.js | 59 + .../yargs/build/lib/utils/is-promise.js | 5 + .../yargs/build/lib/utils/levenshtein.js | 34 + .../build/lib/utils/maybe-async-result.js | 17 + .../yargs/build/lib/utils/obj-filter.js | 10 + .../yargs/build/lib/utils/process-argv.js | 17 + .../yargs/build/lib/utils/set-blocking.js | 12 + .../yargs/build/lib/utils/which-module.js | 10 + node_modules/yargs/build/lib/validation.js | 305 + node_modules/yargs/build/lib/yargs-factory.js | 1512 + node_modules/yargs/build/lib/yerror.js | 9 + node_modules/yargs/helpers/helpers.mjs | 10 + node_modules/yargs/helpers/index.js | 14 + node_modules/yargs/helpers/package.json | 3 + node_modules/yargs/index.cjs | 53 + node_modules/yargs/index.mjs | 8 + .../yargs/lib/platform-shims/browser.mjs | 95 + node_modules/yargs/lib/platform-shims/esm.mjs | 73 + node_modules/yargs/locales/be.json | 46 + node_modules/yargs/locales/cs.json | 51 + node_modules/yargs/locales/de.json | 46 + node_modules/yargs/locales/en.json | 55 + node_modules/yargs/locales/es.json | 46 + node_modules/yargs/locales/fi.json | 49 + node_modules/yargs/locales/fr.json | 53 + node_modules/yargs/locales/hi.json | 49 + node_modules/yargs/locales/hu.json | 46 + node_modules/yargs/locales/id.json | 50 + node_modules/yargs/locales/it.json | 46 + node_modules/yargs/locales/ja.json | 51 + node_modules/yargs/locales/ko.json | 49 + node_modules/yargs/locales/nb.json | 44 + node_modules/yargs/locales/nl.json | 49 + node_modules/yargs/locales/nn.json | 44 + node_modules/yargs/locales/pirate.json | 13 + node_modules/yargs/locales/pl.json | 49 + node_modules/yargs/locales/pt.json | 45 + node_modules/yargs/locales/pt_BR.json | 48 + node_modules/yargs/locales/ru.json | 51 + node_modules/yargs/locales/th.json | 46 + node_modules/yargs/locales/tr.json | 48 + node_modules/yargs/locales/uk_UA.json | 51 + node_modules/yargs/locales/uz.json | 52 + node_modules/yargs/locales/zh_CN.json | 48 + node_modules/yargs/locales/zh_TW.json | 51 + node_modules/yargs/package.json | 123 + node_modules/yargs/yargs | 9 + node_modules/yargs/yargs.mjs | 10 + package-lock.json | 997 + package.json | 24 + public/404.html | 150 + public/_print/about/featured-background.jpg | Bin 0 -> 428203 bytes ...1_1920x1080_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 179876 bytes ...231_960x540_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 51428 bytes ...3_1920x1080_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 464110 bytes ...203_960x540_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 139811 bytes public/about/_print/index.html | 263 + public/about/featured-background.jpg | Bin 0 -> 428203 bytes ...1_1920x1080_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 179876 bytes ...231_960x540_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 51428 bytes ...3_1920x1080_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 464110 bytes ...203_960x540_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 139811 bytes public/about/index.html | 263 + public/about/index.xml | 17 + .../01/04/another-great-release/index.html | 646 + .../featured-sunset-get.png | Bin 0 -> 387442 bytes ...87442_250x125_fill_catmullrom_smart1_3.png | Bin 0 -> 27856 bytes ...87442_600x300_fill_catmullrom_smart1_3.png | Bin 0 -> 104183 bytes ...61c86_387442_640x0_resize_catmullrom_3.png | Bin 0 -> 94305 bytes .../easy-documentation-with-docsy/index.html | 375 + .../10/06/the-second-blog-post/index.html | 646 + .../index.html | 313 + .../index.html | 317 + public/blog/_print/index.html | 426 + public/blog/core/_print/index.html | 257 + public/blog/core/index.html | 310 + public/blog/core/index.xml | 48 + public/blog/core/page/1/index.html | 1 + public/blog/index.html | 343 + public/blog/index.xml | 71 + public/blog/news/_print/index.html | 250 + public/blog/news/index.html | 310 + public/blog/news/index.xml | 41 + public/blog/news/page/1/index.html | 1 + public/blog/page/1/index.html | 1 + public/blog/releases/_print/index.html | 548 + public/blog/releases/index.html | 333 + public/blog/releases/index.xml | 322 + public/blog/releases/page/1/index.html | 1 + public/categories/examples/index.html | 266 + public/categories/examples/index.xml | 369 + public/categories/index.html | 166 + public/categories/index.xml | 18 + public/categories/placeholders/index.html | 209 + public/categories/placeholders/index.xml | 55 + public/community/_print/index.html | 211 + public/community/index.html | 211 + public/community/index.xml | 17 + public/css/prism.css | 4 + public/css/swagger-ui.css | 4 + public/docs/_print/index.html | 3741 +++ public/docs/concepts/_print/index.html | 212 + public/docs/concepts/index.html | 352 + public/docs/concepts/index.xml | 17 + .../contribution-guidelines/_print/index.html | 274 + .../docs/contribution-guidelines/index.html | 425 + public/docs/contribution-guidelines/index.xml | 17 + public/docs/examples/_print/index.html | 211 + public/docs/examples/index.html | 351 + public/docs/examples/index.xml | 18 + public/docs/getting-started/_print/index.html | 553 + .../getting-started/example-page/index.html | 685 + public/docs/getting-started/index.html | 410 + public/docs/getting-started/index.xml | 331 + public/docs/index.html | 413 + public/docs/index.xml | 2825 ++ public/docs/overview/_print/index.html | 233 + public/docs/overview/index.html | 382 + public/docs/overview/index.xml | 17 + public/docs/reference/_print/index.html | 527 + public/docs/reference/index.html | 362 + public/docs/reference/index.xml | 321 + .../reference/parameter-reference/index.html | 646 + public/docs/tasks/_print/index.html | 1900 ++ public/docs/tasks/beds/index.html | 663 + public/docs/tasks/index.html | 393 + public/docs/tasks/index.xml | 978 + .../docs/tasks/ponycopters/_print/index.html | 861 + .../configuring-ponycopters/index.html | 666 + public/docs/tasks/ponycopters/index.html | 372 + public/docs/tasks/ponycopters/index.xml | 644 + .../launching-ponycopters/index.html | 666 + public/docs/tasks/porridge/index.html | 663 + public/docs/tasks/task/index.html | 663 + public/docs/tutorials/_print/index.html | 861 + public/docs/tutorials/index.html | 369 + public/docs/tutorials/index.xml | 644 + public/docs/tutorials/multi-bear/index.html | 663 + public/docs/tutorials/tutorial2/index.html | 663 + public/favicons/android-144x144.png | Bin 0 -> 4299 bytes public/favicons/android-192x192.png | Bin 0 -> 5264 bytes public/favicons/android-36x36.png | Bin 0 -> 980 bytes public/favicons/android-48x48.png | Bin 0 -> 1071 bytes public/favicons/android-72x72.png | Bin 0 -> 1926 bytes public/favicons/android-96x96.png | Bin 0 -> 2309 bytes public/favicons/apple-touch-icon-180x180.png | Bin 0 -> 4748 bytes public/favicons/favicon-1024.png | Bin 0 -> 27759 bytes public/favicons/favicon-16x16.png | Bin 0 -> 498 bytes public/favicons/favicon-256.png | Bin 0 -> 8037 bytes public/favicons/favicon-32x32.png | Bin 0 -> 807 bytes public/favicons/favicon.ico | Bin 0 -> 1150 bytes public/favicons/pwa-192x192.png | Bin 0 -> 5264 bytes public/favicons/pwa-512x512.png | Bin 0 -> 20743 bytes public/favicons/tile150x150.png | Bin 0 -> 8985 bytes public/favicons/tile310x150.png | Bin 0 -> 11661 bytes public/favicons/tile310x310.png | Bin 0 -> 23621 bytes public/favicons/tile70x70.png | Bin 0 -> 3592 bytes public/featured-background.jpg | Bin 0 -> 428203 bytes ...6231_1920x1080_fill_q75_catmullrom_top.jpg | Bin 0 -> 163667 bytes ...496231_960x540_fill_q75_catmullrom_top.jpg | Bin 0 -> 46427 bytes ...8203_1920x1080_fill_q75_catmullrom_top.jpg | Bin 0 -> 464110 bytes ...428203_960x540_fill_q75_catmullrom_top.jpg | Bin 0 -> 139811 bytes public/index.html | 392 + public/index.xml | 70 + public/js/deflate.js | 1652 ++ ...ad59c86860ae95b8e86a17138d36f059fa5fe23.js | 5 + public/js/prism.js | 21 + public/js/swagger-ui-bundle.js | 134 + public/js/swagger-ui-standalone-preset.js | 22 + public/js/tabpane-persist.js | 19 + public/robots.txt | 1 + ...9ba2595ef582b492c6241a2288367893840e77.css | 10 + public/search/index.html | 154 + public/sitemap.xml | 103 + public/tags/docs/index.html | 266 + public/tags/docs/index.xml | 369 + public/tags/index.html | 168 + public/tags/index.xml | 18 + public/tags/sample/index.html | 212 + public/tags/sample/index.xml | 331 + public/tags/test/index.html | 266 + public/tags/test/index.xml | 369 + public/webfonts/fa-brands-400.ttf | Bin 0 -> 186112 bytes public/webfonts/fa-brands-400.woff2 | Bin 0 -> 107460 bytes public/webfonts/fa-regular-400.ttf | Bin 0 -> 62048 bytes public/webfonts/fa-regular-400.woff2 | Bin 0 -> 25084 bytes public/webfonts/fa-solid-900.ttf | Bin 0 -> 397728 bytes public/webfonts/fa-solid-900.woff2 | Bin 0 -> 150468 bytes public/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10136 bytes public/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4584 bytes ...s_4853eb546e7a6c0898ed71feae7357c0.content | 10 + ...scss_4853eb546e7a6c0898ed71feae7357c0.json | 1 + ...s_9fadf33d895a46083cdd64396b57ef68.content | 23830 ++++++++++++++++ ...scss_9fadf33d895a46083cdd64396b57ef68.json | 1 + ...1_1920x1080_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 179876 bytes ...231_960x540_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 51428 bytes ...3_1920x1080_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 464110 bytes ...203_960x540_fill_q75_catmullrom_bottom.jpg | Bin 0 -> 139811 bytes ...87442_250x125_fill_catmullrom_smart1_3.png | Bin 0 -> 27856 bytes ...87442_600x300_fill_catmullrom_smart1_3.png | Bin 0 -> 104183 bytes ...61c86_387442_640x0_resize_catmullrom_3.png | Bin 0 -> 94305 bytes ...6231_1920x1080_fill_q75_catmullrom_top.jpg | Bin 0 -> 163667 bytes ...496231_960x540_fill_q75_catmullrom_top.jpg | Bin 0 -> 46427 bytes ...8203_1920x1080_fill_q75_catmullrom_top.jpg | Bin 0 -> 464110 bytes ...428203_960x540_fill_q75_catmullrom_top.jpg | Bin 0 -> 139811 bytes 1855 files changed, 163975 insertions(+) create mode 100644 .hugo_build.lock create mode 100644 assets/scss/_variables_project.scss create mode 100644 config.toml create mode 100644 content/en/_index.html create mode 100644 content/en/about/_index.html create mode 100644 content/en/about/featured-background.jpg create mode 100644 content/en/blog/_index.md create mode 100644 content/en/blog/core/_index.md create mode 100755 content/en/blog/core/in-depth-monoliths-detailed-spec.md create mode 100644 content/en/blog/news/_index.md create mode 100644 content/en/blog/news/first-post/index.md create mode 100644 content/en/community/_index.md create mode 100644 content/en/docs/Concepts/_index.md create mode 100644 content/en/docs/Contribution guidelines/_index.md create mode 100755 content/en/docs/Examples/_index.md create mode 100644 content/en/docs/Getting started/_index.md create mode 100644 content/en/docs/Getting started/example-page.md create mode 100644 content/en/docs/Overview/_index.md create mode 100644 content/en/docs/Reference/_index.md create mode 100644 content/en/docs/Reference/parameter-reference.md create mode 100755 content/en/docs/Tasks/Ponycopters/_index.md create mode 100644 content/en/docs/Tasks/Ponycopters/configuring-ponycopters.md create mode 100644 content/en/docs/Tasks/Ponycopters/launching-ponycopters.md create mode 100755 content/en/docs/Tasks/_index.md create mode 100644 content/en/docs/Tasks/beds.md create mode 100644 content/en/docs/Tasks/porridge.md create mode 100644 content/en/docs/Tasks/task.md create mode 100755 content/en/docs/Tutorials/_index.md create mode 100644 content/en/docs/Tutorials/multi-bear.md create mode 100644 content/en/docs/Tutorials/tutorial2.md create mode 100755 content/en/docs/_index.md create mode 100644 content/en/featured-background.jpg create mode 100644 content/en/search.md create mode 100644 go.mod create mode 100644 go.sum create mode 100644 layouts/404.html create mode 120000 node_modules/.bin/autoprefixer create mode 120000 node_modules/.bin/browserslist create mode 120000 node_modules/.bin/nanoid create mode 120000 node_modules/.bin/postcss create mode 120000 node_modules/.bin/update-browserslist-db create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@nodelib/fs.scandir/LICENSE create mode 100644 node_modules/@nodelib/fs.scandir/README.md create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.js create mode 100644 node_modules/@nodelib/fs.scandir/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.js create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.js create mode 100644 node_modules/@nodelib/fs.scandir/package.json create mode 100644 node_modules/@nodelib/fs.stat/LICENSE create mode 100644 node_modules/@nodelib/fs.stat/README.md create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.stat/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/index.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.stat/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/settings.js create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.js create mode 100644 node_modules/@nodelib/fs.stat/package.json create mode 100644 node_modules/@nodelib/fs.walk/LICENSE create mode 100644 node_modules/@nodelib/fs.walk/README.md create mode 100644 node_modules/@nodelib/fs.walk/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/settings.js create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.js create mode 100644 node_modules/@nodelib/fs.walk/package.json create mode 100644 node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-regex/license create mode 100644 node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-styles/index.d.ts create mode 100644 node_modules/ansi-styles/index.js create mode 100644 node_modules/ansi-styles/license create mode 100644 node_modules/ansi-styles/package.json create mode 100644 node_modules/ansi-styles/readme.md create mode 100644 node_modules/anymatch/LICENSE create mode 100644 node_modules/anymatch/README.md create mode 100644 node_modules/anymatch/index.d.ts create mode 100644 node_modules/anymatch/index.js create mode 100644 node_modules/anymatch/package.json create mode 100644 node_modules/array-union/index.d.ts create mode 100644 node_modules/array-union/index.js create mode 100644 node_modules/array-union/license create mode 100644 node_modules/array-union/package.json create mode 100644 node_modules/array-union/readme.md create mode 100644 node_modules/autoprefixer/LICENSE create mode 100644 node_modules/autoprefixer/README.md create mode 100755 node_modules/autoprefixer/bin/autoprefixer create mode 100644 node_modules/autoprefixer/data/prefixes.js create mode 100644 node_modules/autoprefixer/lib/at-rule.js create mode 100644 node_modules/autoprefixer/lib/autoprefixer.d.ts create mode 100644 node_modules/autoprefixer/lib/autoprefixer.js create mode 100644 node_modules/autoprefixer/lib/brackets.js create mode 100644 node_modules/autoprefixer/lib/browsers.js create mode 100644 node_modules/autoprefixer/lib/declaration.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-content.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-items.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-self.js create mode 100644 node_modules/autoprefixer/lib/hacks/animation.js create mode 100644 node_modules/autoprefixer/lib/hacks/appearance.js create mode 100644 node_modules/autoprefixer/lib/hacks/autofill.js create mode 100644 node_modules/autoprefixer/lib/hacks/backdrop-filter.js create mode 100644 node_modules/autoprefixer/lib/hacks/background-clip.js create mode 100644 node_modules/autoprefixer/lib/hacks/background-size.js create mode 100644 node_modules/autoprefixer/lib/hacks/block-logical.js create mode 100644 node_modules/autoprefixer/lib/hacks/border-image.js create mode 100644 node_modules/autoprefixer/lib/hacks/border-radius.js create mode 100644 node_modules/autoprefixer/lib/hacks/break-props.js create mode 100644 node_modules/autoprefixer/lib/hacks/cross-fade.js create mode 100644 node_modules/autoprefixer/lib/hacks/display-flex.js create mode 100644 node_modules/autoprefixer/lib/hacks/display-grid.js create mode 100644 node_modules/autoprefixer/lib/hacks/file-selector-button.js create mode 100644 node_modules/autoprefixer/lib/hacks/filter-value.js create mode 100644 node_modules/autoprefixer/lib/hacks/filter.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-basis.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-direction.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-flow.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-grow.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-shrink.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-spec.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-wrap.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex.js create mode 100644 node_modules/autoprefixer/lib/hacks/fullscreen.js create mode 100644 node_modules/autoprefixer/lib/hacks/gradient.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-area.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-column-align.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-end.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-row-align.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-row-column.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-rows-columns.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-start.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-template-areas.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-template.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-utils.js create mode 100644 node_modules/autoprefixer/lib/hacks/image-rendering.js create mode 100644 node_modules/autoprefixer/lib/hacks/image-set.js create mode 100644 node_modules/autoprefixer/lib/hacks/inline-logical.js create mode 100644 node_modules/autoprefixer/lib/hacks/intrinsic.js create mode 100644 node_modules/autoprefixer/lib/hacks/justify-content.js create mode 100644 node_modules/autoprefixer/lib/hacks/mask-border.js create mode 100644 node_modules/autoprefixer/lib/hacks/mask-composite.js create mode 100644 node_modules/autoprefixer/lib/hacks/order.js create mode 100644 node_modules/autoprefixer/lib/hacks/overscroll-behavior.js create mode 100644 node_modules/autoprefixer/lib/hacks/pixelated.js create mode 100644 node_modules/autoprefixer/lib/hacks/place-self.js create mode 100644 node_modules/autoprefixer/lib/hacks/placeholder-shown.js create mode 100644 node_modules/autoprefixer/lib/hacks/placeholder.js create mode 100644 node_modules/autoprefixer/lib/hacks/print-color-adjust.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-decoration.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-emphasis-position.js create mode 100644 node_modules/autoprefixer/lib/hacks/transform-decl.js create mode 100644 node_modules/autoprefixer/lib/hacks/user-select.js create mode 100644 node_modules/autoprefixer/lib/hacks/writing-mode.js create mode 100644 node_modules/autoprefixer/lib/info.js create mode 100644 node_modules/autoprefixer/lib/old-selector.js create mode 100644 node_modules/autoprefixer/lib/old-value.js create mode 100644 node_modules/autoprefixer/lib/prefixer.js create mode 100644 node_modules/autoprefixer/lib/prefixes.js create mode 100644 node_modules/autoprefixer/lib/processor.js create mode 100644 node_modules/autoprefixer/lib/resolution.js create mode 100644 node_modules/autoprefixer/lib/selector.js create mode 100644 node_modules/autoprefixer/lib/supports.js create mode 100644 node_modules/autoprefixer/lib/transition.js create mode 100644 node_modules/autoprefixer/lib/utils.js create mode 100644 node_modules/autoprefixer/lib/value.js create mode 100644 node_modules/autoprefixer/lib/vendor.js create mode 100644 node_modules/autoprefixer/package.json create mode 100644 node_modules/binary-extensions/binary-extensions.json create mode 100644 node_modules/binary-extensions/binary-extensions.json.d.ts create mode 100644 node_modules/binary-extensions/index.d.ts create mode 100644 node_modules/binary-extensions/index.js create mode 100644 node_modules/binary-extensions/license create mode 100644 node_modules/binary-extensions/package.json create mode 100644 node_modules/binary-extensions/readme.md create mode 100644 node_modules/braces/CHANGELOG.md create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/browserslist/LICENSE create mode 100644 node_modules/browserslist/README.md create mode 100644 node_modules/browserslist/browser.js create mode 100755 node_modules/browserslist/cli.js create mode 100644 node_modules/browserslist/error.d.ts create mode 100644 node_modules/browserslist/error.js create mode 100644 node_modules/browserslist/index.d.ts create mode 100644 node_modules/browserslist/index.js create mode 100644 node_modules/browserslist/node.js create mode 100644 node_modules/browserslist/package.json create mode 100644 node_modules/browserslist/parse.js create mode 100644 node_modules/caniuse-lite/LICENSE create mode 100644 node_modules/caniuse-lite/README.md create mode 100644 node_modules/caniuse-lite/data/agents.js create mode 100644 node_modules/caniuse-lite/data/browserVersions.js create mode 100644 node_modules/caniuse-lite/data/browsers.js create mode 100644 node_modules/caniuse-lite/data/features.js create mode 100644 node_modules/caniuse-lite/data/features/aac.js create mode 100644 node_modules/caniuse-lite/data/features/abortcontroller.js create mode 100644 node_modules/caniuse-lite/data/features/ac3-ec3.js create mode 100644 node_modules/caniuse-lite/data/features/accelerometer.js create mode 100644 node_modules/caniuse-lite/data/features/addeventlistener.js create mode 100644 node_modules/caniuse-lite/data/features/alternate-stylesheet.js create mode 100644 node_modules/caniuse-lite/data/features/ambient-light.js create mode 100644 node_modules/caniuse-lite/data/features/apng.js create mode 100644 node_modules/caniuse-lite/data/features/array-find-index.js create mode 100644 node_modules/caniuse-lite/data/features/array-find.js create mode 100644 node_modules/caniuse-lite/data/features/array-flat.js create mode 100644 node_modules/caniuse-lite/data/features/array-includes.js create mode 100644 node_modules/caniuse-lite/data/features/arrow-functions.js create mode 100644 node_modules/caniuse-lite/data/features/asmjs.js create mode 100644 node_modules/caniuse-lite/data/features/async-clipboard.js create mode 100644 node_modules/caniuse-lite/data/features/async-functions.js create mode 100644 node_modules/caniuse-lite/data/features/atob-btoa.js create mode 100644 node_modules/caniuse-lite/data/features/audio-api.js create mode 100644 node_modules/caniuse-lite/data/features/audio.js create mode 100644 node_modules/caniuse-lite/data/features/audiotracks.js create mode 100644 node_modules/caniuse-lite/data/features/autofocus.js create mode 100644 node_modules/caniuse-lite/data/features/auxclick.js create mode 100644 node_modules/caniuse-lite/data/features/av1.js create mode 100644 node_modules/caniuse-lite/data/features/avif.js create mode 100644 node_modules/caniuse-lite/data/features/background-attachment.js create mode 100644 node_modules/caniuse-lite/data/features/background-clip-text.js create mode 100644 node_modules/caniuse-lite/data/features/background-img-opts.js create mode 100644 node_modules/caniuse-lite/data/features/background-position-x-y.js create mode 100644 node_modules/caniuse-lite/data/features/background-repeat-round-space.js create mode 100644 node_modules/caniuse-lite/data/features/background-sync.js create mode 100644 node_modules/caniuse-lite/data/features/battery-status.js create mode 100644 node_modules/caniuse-lite/data/features/beacon.js create mode 100644 node_modules/caniuse-lite/data/features/beforeafterprint.js create mode 100644 node_modules/caniuse-lite/data/features/bigint.js create mode 100644 node_modules/caniuse-lite/data/features/blobbuilder.js create mode 100644 node_modules/caniuse-lite/data/features/bloburls.js create mode 100644 node_modules/caniuse-lite/data/features/border-image.js create mode 100644 node_modules/caniuse-lite/data/features/border-radius.js create mode 100644 node_modules/caniuse-lite/data/features/broadcastchannel.js create mode 100644 node_modules/caniuse-lite/data/features/brotli.js create mode 100644 node_modules/caniuse-lite/data/features/calc.js create mode 100644 node_modules/caniuse-lite/data/features/canvas-blending.js create mode 100644 node_modules/caniuse-lite/data/features/canvas-text.js create mode 100644 node_modules/caniuse-lite/data/features/canvas.js create mode 100644 node_modules/caniuse-lite/data/features/ch-unit.js create mode 100644 node_modules/caniuse-lite/data/features/chacha20-poly1305.js create mode 100644 node_modules/caniuse-lite/data/features/channel-messaging.js create mode 100644 node_modules/caniuse-lite/data/features/childnode-remove.js create mode 100644 node_modules/caniuse-lite/data/features/classlist.js create mode 100644 node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js create mode 100644 node_modules/caniuse-lite/data/features/clipboard.js create mode 100644 node_modules/caniuse-lite/data/features/colr-v1.js create mode 100644 node_modules/caniuse-lite/data/features/colr.js create mode 100644 node_modules/caniuse-lite/data/features/comparedocumentposition.js create mode 100644 node_modules/caniuse-lite/data/features/console-basic.js create mode 100644 node_modules/caniuse-lite/data/features/console-time.js create mode 100644 node_modules/caniuse-lite/data/features/const.js create mode 100644 node_modules/caniuse-lite/data/features/constraint-validation.js create mode 100644 node_modules/caniuse-lite/data/features/contenteditable.js create mode 100644 node_modules/caniuse-lite/data/features/contentsecuritypolicy.js create mode 100644 node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js create mode 100644 node_modules/caniuse-lite/data/features/cookie-store-api.js create mode 100644 node_modules/caniuse-lite/data/features/cors.js create mode 100644 node_modules/caniuse-lite/data/features/createimagebitmap.js create mode 100644 node_modules/caniuse-lite/data/features/credential-management.js create mode 100644 node_modules/caniuse-lite/data/features/cryptography.js create mode 100644 node_modules/caniuse-lite/data/features/css-all.js create mode 100644 node_modules/caniuse-lite/data/features/css-animation.js create mode 100644 node_modules/caniuse-lite/data/features/css-any-link.js create mode 100644 node_modules/caniuse-lite/data/features/css-appearance.js create mode 100644 node_modules/caniuse-lite/data/features/css-at-counter-style.js create mode 100644 node_modules/caniuse-lite/data/features/css-autofill.js create mode 100644 node_modules/caniuse-lite/data/features/css-backdrop-filter.js create mode 100644 node_modules/caniuse-lite/data/features/css-background-offsets.js create mode 100644 node_modules/caniuse-lite/data/features/css-backgroundblendmode.js create mode 100644 node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js create mode 100644 node_modules/caniuse-lite/data/features/css-boxshadow.js create mode 100644 node_modules/caniuse-lite/data/features/css-canvas.js create mode 100644 node_modules/caniuse-lite/data/features/css-caret-color.js create mode 100644 node_modules/caniuse-lite/data/features/css-cascade-layers.js create mode 100644 node_modules/caniuse-lite/data/features/css-case-insensitive.js create mode 100644 node_modules/caniuse-lite/data/features/css-clip-path.js create mode 100644 node_modules/caniuse-lite/data/features/css-color-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/css-color-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-conic-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-queries-style.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-queries.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-query-units.js create mode 100644 node_modules/caniuse-lite/data/features/css-containment.js create mode 100644 node_modules/caniuse-lite/data/features/css-content-visibility.js create mode 100644 node_modules/caniuse-lite/data/features/css-counters.js create mode 100644 node_modules/caniuse-lite/data/features/css-crisp-edges.js create mode 100644 node_modules/caniuse-lite/data/features/css-cross-fade.js create mode 100644 node_modules/caniuse-lite/data/features/css-default-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-descendant-gtgt.js create mode 100644 node_modules/caniuse-lite/data/features/css-deviceadaptation.js create mode 100644 node_modules/caniuse-lite/data/features/css-dir-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-display-contents.js create mode 100644 node_modules/caniuse-lite/data/features/css-element-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-env-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-exclusions.js create mode 100644 node_modules/caniuse-lite/data/features/css-featurequeries.js create mode 100644 node_modules/caniuse-lite/data/features/css-file-selector-button.js create mode 100644 node_modules/caniuse-lite/data/features/css-filter-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-filters.js create mode 100644 node_modules/caniuse-lite/data/features/css-first-letter.js create mode 100644 node_modules/caniuse-lite/data/features/css-first-line.js create mode 100644 node_modules/caniuse-lite/data/features/css-fixed.js create mode 100644 node_modules/caniuse-lite/data/features/css-focus-visible.js create mode 100644 node_modules/caniuse-lite/data/features/css-focus-within.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-palette.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-rendering-controls.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-stretch.js create mode 100644 node_modules/caniuse-lite/data/features/css-gencontent.js create mode 100644 node_modules/caniuse-lite/data/features/css-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-grid-animation.js create mode 100644 node_modules/caniuse-lite/data/features/css-grid.js create mode 100644 node_modules/caniuse-lite/data/features/css-hanging-punctuation.js create mode 100644 node_modules/caniuse-lite/data/features/css-has.js create mode 100644 node_modules/caniuse-lite/data/features/css-hyphens.js create mode 100644 node_modules/caniuse-lite/data/features/css-image-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/css-image-set.js create mode 100644 node_modules/caniuse-lite/data/features/css-in-out-of-range.js create mode 100644 node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-initial-letter.js create mode 100644 node_modules/caniuse-lite/data/features/css-initial-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-lch-lab.js create mode 100644 node_modules/caniuse-lite/data/features/css-letter-spacing.js create mode 100644 node_modules/caniuse-lite/data/features/css-line-clamp.js create mode 100644 node_modules/caniuse-lite/data/features/css-logical-props.js create mode 100644 node_modules/caniuse-lite/data/features/css-marker-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-masks.js create mode 100644 node_modules/caniuse-lite/data/features/css-matches-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-math-functions.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-interaction.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-range-syntax.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-resolution.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-scripting.js create mode 100644 node_modules/caniuse-lite/data/features/css-mediaqueries.js create mode 100644 node_modules/caniuse-lite/data/features/css-mixblendmode.js create mode 100644 node_modules/caniuse-lite/data/features/css-motion-paths.js create mode 100644 node_modules/caniuse-lite/data/features/css-namespaces.js create mode 100644 node_modules/caniuse-lite/data/features/css-nesting.js create mode 100644 node_modules/caniuse-lite/data/features/css-not-sel-list.js create mode 100644 node_modules/caniuse-lite/data/features/css-nth-child-of.js create mode 100644 node_modules/caniuse-lite/data/features/css-opacity.js create mode 100644 node_modules/caniuse-lite/data/features/css-optional-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow-anchor.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow-overlay.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow.js create mode 100644 node_modules/caniuse-lite/data/features/css-overscroll-behavior.js create mode 100644 node_modules/caniuse-lite/data/features/css-page-break.js create mode 100644 node_modules/caniuse-lite/data/features/css-paged-media.js create mode 100644 node_modules/caniuse-lite/data/features/css-paint-api.js create mode 100644 node_modules/caniuse-lite/data/features/css-placeholder-shown.js create mode 100644 node_modules/caniuse-lite/data/features/css-placeholder.js create mode 100644 node_modules/caniuse-lite/data/features/css-print-color-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/css-read-only-write.js create mode 100644 node_modules/caniuse-lite/data/features/css-rebeccapurple.js create mode 100644 node_modules/caniuse-lite/data/features/css-reflections.js create mode 100644 node_modules/caniuse-lite/data/features/css-regions.js create mode 100644 node_modules/caniuse-lite/data/features/css-relative-colors.js create mode 100644 node_modules/caniuse-lite/data/features/css-repeating-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-resize.js create mode 100644 node_modules/caniuse-lite/data/features/css-revert-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-rrggbbaa.js create mode 100644 node_modules/caniuse-lite/data/features/css-scroll-behavior.js create mode 100644 node_modules/caniuse-lite/data/features/css-scroll-timeline.js create mode 100644 node_modules/caniuse-lite/data/features/css-scrollbar.js create mode 100644 node_modules/caniuse-lite/data/features/css-sel2.js create mode 100644 node_modules/caniuse-lite/data/features/css-sel3.js create mode 100644 node_modules/caniuse-lite/data/features/css-selection.js create mode 100644 node_modules/caniuse-lite/data/features/css-shapes.js create mode 100644 node_modules/caniuse-lite/data/features/css-snappoints.js create mode 100644 node_modules/caniuse-lite/data/features/css-sticky.js create mode 100644 node_modules/caniuse-lite/data/features/css-subgrid.js create mode 100644 node_modules/caniuse-lite/data/features/css-supports-api.js create mode 100644 node_modules/caniuse-lite/data/features/css-table.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-align-last.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-box-trim.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-indent.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-justify.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-spacing.js create mode 100644 node_modules/caniuse-lite/data/features/css-textshadow.js create mode 100644 node_modules/caniuse-lite/data/features/css-touch-action.js create mode 100644 node_modules/caniuse-lite/data/features/css-transitions.js create mode 100644 node_modules/caniuse-lite/data/features/css-unicode-bidi.js create mode 100644 node_modules/caniuse-lite/data/features/css-unset-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-variables.js create mode 100644 node_modules/caniuse-lite/data/features/css-when-else.js create mode 100644 node_modules/caniuse-lite/data/features/css-widows-orphans.js create mode 100644 node_modules/caniuse-lite/data/features/css-width-stretch.js create mode 100644 node_modules/caniuse-lite/data/features/css-writing-mode.js create mode 100644 node_modules/caniuse-lite/data/features/css-zoom.js create mode 100644 node_modules/caniuse-lite/data/features/css3-attr.js create mode 100644 node_modules/caniuse-lite/data/features/css3-boxsizing.js create mode 100644 node_modules/caniuse-lite/data/features/css3-colors.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors-grab.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors-newer.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors.js create mode 100644 node_modules/caniuse-lite/data/features/css3-tabsize.js create mode 100644 node_modules/caniuse-lite/data/features/currentcolor.js create mode 100644 node_modules/caniuse-lite/data/features/custom-elements.js create mode 100644 node_modules/caniuse-lite/data/features/custom-elementsv1.js create mode 100644 node_modules/caniuse-lite/data/features/customevent.js create mode 100644 node_modules/caniuse-lite/data/features/datalist.js create mode 100644 node_modules/caniuse-lite/data/features/dataset.js create mode 100644 node_modules/caniuse-lite/data/features/datauri.js create mode 100644 node_modules/caniuse-lite/data/features/date-tolocaledatestring.js create mode 100644 node_modules/caniuse-lite/data/features/declarative-shadow-dom.js create mode 100644 node_modules/caniuse-lite/data/features/decorators.js create mode 100644 node_modules/caniuse-lite/data/features/details.js create mode 100644 node_modules/caniuse-lite/data/features/deviceorientation.js create mode 100644 node_modules/caniuse-lite/data/features/devicepixelratio.js create mode 100644 node_modules/caniuse-lite/data/features/dialog.js create mode 100644 node_modules/caniuse-lite/data/features/dispatchevent.js create mode 100644 node_modules/caniuse-lite/data/features/dnssec.js create mode 100644 node_modules/caniuse-lite/data/features/do-not-track.js create mode 100644 node_modules/caniuse-lite/data/features/document-currentscript.js create mode 100644 node_modules/caniuse-lite/data/features/document-evaluate-xpath.js create mode 100644 node_modules/caniuse-lite/data/features/document-execcommand.js create mode 100644 node_modules/caniuse-lite/data/features/document-policy.js create mode 100644 node_modules/caniuse-lite/data/features/document-scrollingelement.js create mode 100644 node_modules/caniuse-lite/data/features/documenthead.js create mode 100644 node_modules/caniuse-lite/data/features/dom-manip-convenience.js create mode 100644 node_modules/caniuse-lite/data/features/dom-range.js create mode 100644 node_modules/caniuse-lite/data/features/domcontentloaded.js create mode 100644 node_modules/caniuse-lite/data/features/dommatrix.js create mode 100644 node_modules/caniuse-lite/data/features/download.js create mode 100644 node_modules/caniuse-lite/data/features/dragndrop.js create mode 100644 node_modules/caniuse-lite/data/features/element-closest.js create mode 100644 node_modules/caniuse-lite/data/features/element-from-point.js create mode 100644 node_modules/caniuse-lite/data/features/element-scroll-methods.js create mode 100644 node_modules/caniuse-lite/data/features/eme.js create mode 100644 node_modules/caniuse-lite/data/features/eot.js create mode 100644 node_modules/caniuse-lite/data/features/es5.js create mode 100644 node_modules/caniuse-lite/data/features/es6-class.js create mode 100644 node_modules/caniuse-lite/data/features/es6-generators.js create mode 100644 node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js create mode 100644 node_modules/caniuse-lite/data/features/es6-module.js create mode 100644 node_modules/caniuse-lite/data/features/es6-number.js create mode 100644 node_modules/caniuse-lite/data/features/es6-string-includes.js create mode 100644 node_modules/caniuse-lite/data/features/es6.js create mode 100644 node_modules/caniuse-lite/data/features/eventsource.js create mode 100644 node_modules/caniuse-lite/data/features/extended-system-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/feature-policy.js create mode 100644 node_modules/caniuse-lite/data/features/fetch.js create mode 100644 node_modules/caniuse-lite/data/features/fieldset-disabled.js create mode 100644 node_modules/caniuse-lite/data/features/fileapi.js create mode 100644 node_modules/caniuse-lite/data/features/filereader.js create mode 100644 node_modules/caniuse-lite/data/features/filereadersync.js create mode 100644 node_modules/caniuse-lite/data/features/filesystem.js create mode 100644 node_modules/caniuse-lite/data/features/flac.js create mode 100644 node_modules/caniuse-lite/data/features/flexbox-gap.js create mode 100644 node_modules/caniuse-lite/data/features/flexbox.js create mode 100644 node_modules/caniuse-lite/data/features/flow-root.js create mode 100644 node_modules/caniuse-lite/data/features/focusin-focusout-events.js create mode 100644 node_modules/caniuse-lite/data/features/font-family-system-ui.js create mode 100644 node_modules/caniuse-lite/data/features/font-feature.js create mode 100644 node_modules/caniuse-lite/data/features/font-kerning.js create mode 100644 node_modules/caniuse-lite/data/features/font-loading.js create mode 100644 node_modules/caniuse-lite/data/features/font-size-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/font-smooth.js create mode 100644 node_modules/caniuse-lite/data/features/font-unicode-range.js create mode 100644 node_modules/caniuse-lite/data/features/font-variant-alternates.js create mode 100644 node_modules/caniuse-lite/data/features/font-variant-numeric.js create mode 100644 node_modules/caniuse-lite/data/features/fontface.js create mode 100644 node_modules/caniuse-lite/data/features/form-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/form-submit-attributes.js create mode 100644 node_modules/caniuse-lite/data/features/form-validation.js create mode 100644 node_modules/caniuse-lite/data/features/forms.js create mode 100644 node_modules/caniuse-lite/data/features/fullscreen.js create mode 100644 node_modules/caniuse-lite/data/features/gamepad.js create mode 100644 node_modules/caniuse-lite/data/features/geolocation.js create mode 100644 node_modules/caniuse-lite/data/features/getboundingclientrect.js create mode 100644 node_modules/caniuse-lite/data/features/getcomputedstyle.js create mode 100644 node_modules/caniuse-lite/data/features/getelementsbyclassname.js create mode 100644 node_modules/caniuse-lite/data/features/getrandomvalues.js create mode 100644 node_modules/caniuse-lite/data/features/gyroscope.js create mode 100644 node_modules/caniuse-lite/data/features/hardwareconcurrency.js create mode 100644 node_modules/caniuse-lite/data/features/hashchange.js create mode 100644 node_modules/caniuse-lite/data/features/heif.js create mode 100644 node_modules/caniuse-lite/data/features/hevc.js create mode 100644 node_modules/caniuse-lite/data/features/hidden.js create mode 100644 node_modules/caniuse-lite/data/features/high-resolution-time.js create mode 100644 node_modules/caniuse-lite/data/features/history.js create mode 100644 node_modules/caniuse-lite/data/features/html-media-capture.js create mode 100644 node_modules/caniuse-lite/data/features/html5semantic.js create mode 100644 node_modules/caniuse-lite/data/features/http-live-streaming.js create mode 100644 node_modules/caniuse-lite/data/features/http2.js create mode 100644 node_modules/caniuse-lite/data/features/http3.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-sandbox.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-seamless.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-srcdoc.js create mode 100644 node_modules/caniuse-lite/data/features/imagecapture.js create mode 100644 node_modules/caniuse-lite/data/features/ime.js create mode 100644 node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js create mode 100644 node_modules/caniuse-lite/data/features/import-maps.js create mode 100644 node_modules/caniuse-lite/data/features/imports.js create mode 100644 node_modules/caniuse-lite/data/features/indeterminate-checkbox.js create mode 100644 node_modules/caniuse-lite/data/features/indexeddb.js create mode 100644 node_modules/caniuse-lite/data/features/indexeddb2.js create mode 100644 node_modules/caniuse-lite/data/features/inline-block.js create mode 100644 node_modules/caniuse-lite/data/features/innertext.js create mode 100644 node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js create mode 100644 node_modules/caniuse-lite/data/features/input-color.js create mode 100644 node_modules/caniuse-lite/data/features/input-datetime.js create mode 100644 node_modules/caniuse-lite/data/features/input-email-tel-url.js create mode 100644 node_modules/caniuse-lite/data/features/input-event.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-accept.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-directory.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-multiple.js create mode 100644 node_modules/caniuse-lite/data/features/input-inputmode.js create mode 100644 node_modules/caniuse-lite/data/features/input-minlength.js create mode 100644 node_modules/caniuse-lite/data/features/input-number.js create mode 100644 node_modules/caniuse-lite/data/features/input-pattern.js create mode 100644 node_modules/caniuse-lite/data/features/input-placeholder.js create mode 100644 node_modules/caniuse-lite/data/features/input-range.js create mode 100644 node_modules/caniuse-lite/data/features/input-search.js create mode 100644 node_modules/caniuse-lite/data/features/input-selection.js create mode 100644 node_modules/caniuse-lite/data/features/insert-adjacent.js create mode 100644 node_modules/caniuse-lite/data/features/insertadjacenthtml.js create mode 100644 node_modules/caniuse-lite/data/features/internationalization.js create mode 100644 node_modules/caniuse-lite/data/features/intersectionobserver-v2.js create mode 100644 node_modules/caniuse-lite/data/features/intersectionobserver.js create mode 100644 node_modules/caniuse-lite/data/features/intl-pluralrules.js create mode 100644 node_modules/caniuse-lite/data/features/intrinsic-width.js create mode 100644 node_modules/caniuse-lite/data/features/jpeg2000.js create mode 100644 node_modules/caniuse-lite/data/features/jpegxl.js create mode 100644 node_modules/caniuse-lite/data/features/jpegxr.js create mode 100644 node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js create mode 100644 node_modules/caniuse-lite/data/features/json.js create mode 100644 node_modules/caniuse-lite/data/features/justify-content-space-evenly.js create mode 100644 node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-charcode.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-code.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-key.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-location.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-which.js create mode 100644 node_modules/caniuse-lite/data/features/lazyload.js create mode 100644 node_modules/caniuse-lite/data/features/let.js create mode 100644 node_modules/caniuse-lite/data/features/link-icon-png.js create mode 100644 node_modules/caniuse-lite/data/features/link-icon-svg.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-modulepreload.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-preconnect.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-prefetch.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-preload.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-prerender.js create mode 100644 node_modules/caniuse-lite/data/features/loading-lazy-attr.js create mode 100644 node_modules/caniuse-lite/data/features/localecompare.js create mode 100644 node_modules/caniuse-lite/data/features/magnetometer.js create mode 100644 node_modules/caniuse-lite/data/features/matchesselector.js create mode 100644 node_modules/caniuse-lite/data/features/matchmedia.js create mode 100644 node_modules/caniuse-lite/data/features/mathml.js create mode 100644 node_modules/caniuse-lite/data/features/maxlength.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js create mode 100644 node_modules/caniuse-lite/data/features/media-fragments.js create mode 100644 node_modules/caniuse-lite/data/features/mediacapture-fromelement.js create mode 100644 node_modules/caniuse-lite/data/features/mediarecorder.js create mode 100644 node_modules/caniuse-lite/data/features/mediasource.js create mode 100644 node_modules/caniuse-lite/data/features/menu.js create mode 100644 node_modules/caniuse-lite/data/features/meta-theme-color.js create mode 100644 node_modules/caniuse-lite/data/features/meter.js create mode 100644 node_modules/caniuse-lite/data/features/midi.js create mode 100644 node_modules/caniuse-lite/data/features/minmaxwh.js create mode 100644 node_modules/caniuse-lite/data/features/mp3.js create mode 100644 node_modules/caniuse-lite/data/features/mpeg-dash.js create mode 100644 node_modules/caniuse-lite/data/features/mpeg4.js create mode 100644 node_modules/caniuse-lite/data/features/multibackgrounds.js create mode 100644 node_modules/caniuse-lite/data/features/multicolumn.js create mode 100644 node_modules/caniuse-lite/data/features/mutation-events.js create mode 100644 node_modules/caniuse-lite/data/features/mutationobserver.js create mode 100644 node_modules/caniuse-lite/data/features/namevalue-storage.js create mode 100644 node_modules/caniuse-lite/data/features/native-filesystem-api.js create mode 100644 node_modules/caniuse-lite/data/features/nav-timing.js create mode 100644 node_modules/caniuse-lite/data/features/netinfo.js create mode 100644 node_modules/caniuse-lite/data/features/notifications.js create mode 100644 node_modules/caniuse-lite/data/features/object-entries.js create mode 100644 node_modules/caniuse-lite/data/features/object-fit.js create mode 100644 node_modules/caniuse-lite/data/features/object-observe.js create mode 100644 node_modules/caniuse-lite/data/features/object-values.js create mode 100644 node_modules/caniuse-lite/data/features/objectrtc.js create mode 100644 node_modules/caniuse-lite/data/features/offline-apps.js create mode 100644 node_modules/caniuse-lite/data/features/offscreencanvas.js create mode 100644 node_modules/caniuse-lite/data/features/ogg-vorbis.js create mode 100644 node_modules/caniuse-lite/data/features/ogv.js create mode 100644 node_modules/caniuse-lite/data/features/ol-reversed.js create mode 100644 node_modules/caniuse-lite/data/features/once-event-listener.js create mode 100644 node_modules/caniuse-lite/data/features/online-status.js create mode 100644 node_modules/caniuse-lite/data/features/opus.js create mode 100644 node_modules/caniuse-lite/data/features/orientation-sensor.js create mode 100644 node_modules/caniuse-lite/data/features/outline.js create mode 100644 node_modules/caniuse-lite/data/features/pad-start-end.js create mode 100644 node_modules/caniuse-lite/data/features/page-transition-events.js create mode 100644 node_modules/caniuse-lite/data/features/pagevisibility.js create mode 100644 node_modules/caniuse-lite/data/features/passive-event-listener.js create mode 100644 node_modules/caniuse-lite/data/features/passwordrules.js create mode 100644 node_modules/caniuse-lite/data/features/path2d.js create mode 100644 node_modules/caniuse-lite/data/features/payment-request.js create mode 100644 node_modules/caniuse-lite/data/features/pdf-viewer.js create mode 100644 node_modules/caniuse-lite/data/features/permissions-api.js create mode 100644 node_modules/caniuse-lite/data/features/permissions-policy.js create mode 100644 node_modules/caniuse-lite/data/features/picture-in-picture.js create mode 100644 node_modules/caniuse-lite/data/features/picture.js create mode 100644 node_modules/caniuse-lite/data/features/ping.js create mode 100644 node_modules/caniuse-lite/data/features/png-alpha.js create mode 100644 node_modules/caniuse-lite/data/features/pointer-events.js create mode 100644 node_modules/caniuse-lite/data/features/pointer.js create mode 100644 node_modules/caniuse-lite/data/features/pointerlock.js create mode 100644 node_modules/caniuse-lite/data/features/portals.js create mode 100644 node_modules/caniuse-lite/data/features/prefers-color-scheme.js create mode 100644 node_modules/caniuse-lite/data/features/prefers-reduced-motion.js create mode 100644 node_modules/caniuse-lite/data/features/progress.js create mode 100644 node_modules/caniuse-lite/data/features/promise-finally.js create mode 100644 node_modules/caniuse-lite/data/features/promises.js create mode 100644 node_modules/caniuse-lite/data/features/proximity.js create mode 100644 node_modules/caniuse-lite/data/features/proxy.js create mode 100644 node_modules/caniuse-lite/data/features/publickeypinning.js create mode 100644 node_modules/caniuse-lite/data/features/push-api.js create mode 100644 node_modules/caniuse-lite/data/features/queryselector.js create mode 100644 node_modules/caniuse-lite/data/features/readonly-attr.js create mode 100644 node_modules/caniuse-lite/data/features/referrer-policy.js create mode 100644 node_modules/caniuse-lite/data/features/registerprotocolhandler.js create mode 100644 node_modules/caniuse-lite/data/features/rel-noopener.js create mode 100644 node_modules/caniuse-lite/data/features/rel-noreferrer.js create mode 100644 node_modules/caniuse-lite/data/features/rellist.js create mode 100644 node_modules/caniuse-lite/data/features/rem.js create mode 100644 node_modules/caniuse-lite/data/features/requestanimationframe.js create mode 100644 node_modules/caniuse-lite/data/features/requestidlecallback.js create mode 100644 node_modules/caniuse-lite/data/features/resizeobserver.js create mode 100644 node_modules/caniuse-lite/data/features/resource-timing.js create mode 100644 node_modules/caniuse-lite/data/features/rest-parameters.js create mode 100644 node_modules/caniuse-lite/data/features/rtcpeerconnection.js create mode 100644 node_modules/caniuse-lite/data/features/ruby.js create mode 100644 node_modules/caniuse-lite/data/features/run-in.js create mode 100644 node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/screen-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/script-async.js create mode 100644 node_modules/caniuse-lite/data/features/script-defer.js create mode 100644 node_modules/caniuse-lite/data/features/scrollintoview.js create mode 100644 node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js create mode 100644 node_modules/caniuse-lite/data/features/sdch.js create mode 100644 node_modules/caniuse-lite/data/features/selection-api.js create mode 100644 node_modules/caniuse-lite/data/features/server-timing.js create mode 100644 node_modules/caniuse-lite/data/features/serviceworkers.js create mode 100644 node_modules/caniuse-lite/data/features/setimmediate.js create mode 100644 node_modules/caniuse-lite/data/features/shadowdom.js create mode 100644 node_modules/caniuse-lite/data/features/shadowdomv1.js create mode 100644 node_modules/caniuse-lite/data/features/sharedarraybuffer.js create mode 100644 node_modules/caniuse-lite/data/features/sharedworkers.js create mode 100644 node_modules/caniuse-lite/data/features/sni.js create mode 100644 node_modules/caniuse-lite/data/features/spdy.js create mode 100644 node_modules/caniuse-lite/data/features/speech-recognition.js create mode 100644 node_modules/caniuse-lite/data/features/speech-synthesis.js create mode 100644 node_modules/caniuse-lite/data/features/spellcheck-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/sql-storage.js create mode 100644 node_modules/caniuse-lite/data/features/srcset.js create mode 100644 node_modules/caniuse-lite/data/features/stream.js create mode 100644 node_modules/caniuse-lite/data/features/streams.js create mode 100644 node_modules/caniuse-lite/data/features/stricttransportsecurity.js create mode 100644 node_modules/caniuse-lite/data/features/style-scoped.js create mode 100644 node_modules/caniuse-lite/data/features/subresource-bundling.js create mode 100644 node_modules/caniuse-lite/data/features/subresource-integrity.js create mode 100644 node_modules/caniuse-lite/data/features/svg-css.js create mode 100644 node_modules/caniuse-lite/data/features/svg-filters.js create mode 100644 node_modules/caniuse-lite/data/features/svg-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/svg-fragment.js create mode 100644 node_modules/caniuse-lite/data/features/svg-html.js create mode 100644 node_modules/caniuse-lite/data/features/svg-html5.js create mode 100644 node_modules/caniuse-lite/data/features/svg-img.js create mode 100644 node_modules/caniuse-lite/data/features/svg-smil.js create mode 100644 node_modules/caniuse-lite/data/features/svg.js create mode 100644 node_modules/caniuse-lite/data/features/sxg.js create mode 100644 node_modules/caniuse-lite/data/features/tabindex-attr.js create mode 100644 node_modules/caniuse-lite/data/features/template-literals.js create mode 100644 node_modules/caniuse-lite/data/features/template.js create mode 100644 node_modules/caniuse-lite/data/features/temporal.js create mode 100644 node_modules/caniuse-lite/data/features/testfeat.js create mode 100644 node_modules/caniuse-lite/data/features/text-decoration.js create mode 100644 node_modules/caniuse-lite/data/features/text-emphasis.js create mode 100644 node_modules/caniuse-lite/data/features/text-overflow.js create mode 100644 node_modules/caniuse-lite/data/features/text-size-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/text-stroke.js create mode 100644 node_modules/caniuse-lite/data/features/textcontent.js create mode 100644 node_modules/caniuse-lite/data/features/textencoder.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-1.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-2.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-3.js create mode 100644 node_modules/caniuse-lite/data/features/touch.js create mode 100644 node_modules/caniuse-lite/data/features/transforms2d.js create mode 100644 node_modules/caniuse-lite/data/features/transforms3d.js create mode 100644 node_modules/caniuse-lite/data/features/trusted-types.js create mode 100644 node_modules/caniuse-lite/data/features/ttf.js create mode 100644 node_modules/caniuse-lite/data/features/typedarrays.js create mode 100644 node_modules/caniuse-lite/data/features/u2f.js create mode 100644 node_modules/caniuse-lite/data/features/unhandledrejection.js create mode 100644 node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js create mode 100644 node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js create mode 100644 node_modules/caniuse-lite/data/features/url.js create mode 100644 node_modules/caniuse-lite/data/features/urlsearchparams.js create mode 100644 node_modules/caniuse-lite/data/features/use-strict.js create mode 100644 node_modules/caniuse-lite/data/features/user-select-none.js create mode 100644 node_modules/caniuse-lite/data/features/user-timing.js create mode 100644 node_modules/caniuse-lite/data/features/variable-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/vector-effect.js create mode 100644 node_modules/caniuse-lite/data/features/vibration.js create mode 100644 node_modules/caniuse-lite/data/features/video.js create mode 100644 node_modules/caniuse-lite/data/features/videotracks.js create mode 100644 node_modules/caniuse-lite/data/features/viewport-unit-variants.js create mode 100644 node_modules/caniuse-lite/data/features/viewport-units.js create mode 100644 node_modules/caniuse-lite/data/features/wai-aria.js create mode 100644 node_modules/caniuse-lite/data/features/wake-lock.js create mode 100644 node_modules/caniuse-lite/data/features/wasm.js create mode 100644 node_modules/caniuse-lite/data/features/wav.js create mode 100644 node_modules/caniuse-lite/data/features/wbr-element.js create mode 100644 node_modules/caniuse-lite/data/features/web-animation.js create mode 100644 node_modules/caniuse-lite/data/features/web-app-manifest.js create mode 100644 node_modules/caniuse-lite/data/features/web-bluetooth.js create mode 100644 node_modules/caniuse-lite/data/features/web-serial.js create mode 100644 node_modules/caniuse-lite/data/features/web-share.js create mode 100644 node_modules/caniuse-lite/data/features/webauthn.js create mode 100644 node_modules/caniuse-lite/data/features/webcodecs.js create mode 100644 node_modules/caniuse-lite/data/features/webgl.js create mode 100644 node_modules/caniuse-lite/data/features/webgl2.js create mode 100644 node_modules/caniuse-lite/data/features/webgpu.js create mode 100644 node_modules/caniuse-lite/data/features/webhid.js create mode 100644 node_modules/caniuse-lite/data/features/webkit-user-drag.js create mode 100644 node_modules/caniuse-lite/data/features/webm.js create mode 100644 node_modules/caniuse-lite/data/features/webnfc.js create mode 100644 node_modules/caniuse-lite/data/features/webp.js create mode 100644 node_modules/caniuse-lite/data/features/websockets.js create mode 100644 node_modules/caniuse-lite/data/features/webtransport.js create mode 100644 node_modules/caniuse-lite/data/features/webusb.js create mode 100644 node_modules/caniuse-lite/data/features/webvr.js create mode 100644 node_modules/caniuse-lite/data/features/webvtt.js create mode 100644 node_modules/caniuse-lite/data/features/webworkers.js create mode 100644 node_modules/caniuse-lite/data/features/webxr.js create mode 100644 node_modules/caniuse-lite/data/features/will-change.js create mode 100644 node_modules/caniuse-lite/data/features/woff.js create mode 100644 node_modules/caniuse-lite/data/features/woff2.js create mode 100644 node_modules/caniuse-lite/data/features/word-break.js create mode 100644 node_modules/caniuse-lite/data/features/wordwrap.js create mode 100644 node_modules/caniuse-lite/data/features/x-doc-messaging.js create mode 100644 node_modules/caniuse-lite/data/features/x-frame-options.js create mode 100644 node_modules/caniuse-lite/data/features/xhr2.js create mode 100644 node_modules/caniuse-lite/data/features/xhtml.js create mode 100644 node_modules/caniuse-lite/data/features/xhtmlsmil.js create mode 100644 node_modules/caniuse-lite/data/features/xml-serializer.js create mode 100644 node_modules/caniuse-lite/data/regions/AD.js create mode 100644 node_modules/caniuse-lite/data/regions/AE.js create mode 100644 node_modules/caniuse-lite/data/regions/AF.js create mode 100644 node_modules/caniuse-lite/data/regions/AG.js create mode 100644 node_modules/caniuse-lite/data/regions/AI.js create mode 100644 node_modules/caniuse-lite/data/regions/AL.js create mode 100644 node_modules/caniuse-lite/data/regions/AM.js create mode 100644 node_modules/caniuse-lite/data/regions/AO.js create mode 100644 node_modules/caniuse-lite/data/regions/AR.js create mode 100644 node_modules/caniuse-lite/data/regions/AS.js create mode 100644 node_modules/caniuse-lite/data/regions/AT.js create mode 100644 node_modules/caniuse-lite/data/regions/AU.js create mode 100644 node_modules/caniuse-lite/data/regions/AW.js create mode 100644 node_modules/caniuse-lite/data/regions/AX.js create mode 100644 node_modules/caniuse-lite/data/regions/AZ.js create mode 100644 node_modules/caniuse-lite/data/regions/BA.js create mode 100644 node_modules/caniuse-lite/data/regions/BB.js create mode 100644 node_modules/caniuse-lite/data/regions/BD.js create mode 100644 node_modules/caniuse-lite/data/regions/BE.js create mode 100644 node_modules/caniuse-lite/data/regions/BF.js create mode 100644 node_modules/caniuse-lite/data/regions/BG.js create mode 100644 node_modules/caniuse-lite/data/regions/BH.js create mode 100644 node_modules/caniuse-lite/data/regions/BI.js create mode 100644 node_modules/caniuse-lite/data/regions/BJ.js create mode 100644 node_modules/caniuse-lite/data/regions/BM.js create mode 100644 node_modules/caniuse-lite/data/regions/BN.js create mode 100644 node_modules/caniuse-lite/data/regions/BO.js create mode 100644 node_modules/caniuse-lite/data/regions/BR.js create mode 100644 node_modules/caniuse-lite/data/regions/BS.js create mode 100644 node_modules/caniuse-lite/data/regions/BT.js create mode 100644 node_modules/caniuse-lite/data/regions/BW.js create mode 100644 node_modules/caniuse-lite/data/regions/BY.js create mode 100644 node_modules/caniuse-lite/data/regions/BZ.js create mode 100644 node_modules/caniuse-lite/data/regions/CA.js create mode 100644 node_modules/caniuse-lite/data/regions/CD.js create mode 100644 node_modules/caniuse-lite/data/regions/CF.js create mode 100644 node_modules/caniuse-lite/data/regions/CG.js create mode 100644 node_modules/caniuse-lite/data/regions/CH.js create mode 100644 node_modules/caniuse-lite/data/regions/CI.js create mode 100644 node_modules/caniuse-lite/data/regions/CK.js create mode 100644 node_modules/caniuse-lite/data/regions/CL.js create mode 100644 node_modules/caniuse-lite/data/regions/CM.js create mode 100644 node_modules/caniuse-lite/data/regions/CN.js create mode 100644 node_modules/caniuse-lite/data/regions/CO.js create mode 100644 node_modules/caniuse-lite/data/regions/CR.js create mode 100644 node_modules/caniuse-lite/data/regions/CU.js create mode 100644 node_modules/caniuse-lite/data/regions/CV.js create mode 100644 node_modules/caniuse-lite/data/regions/CX.js create mode 100644 node_modules/caniuse-lite/data/regions/CY.js create mode 100644 node_modules/caniuse-lite/data/regions/CZ.js create mode 100644 node_modules/caniuse-lite/data/regions/DE.js create mode 100644 node_modules/caniuse-lite/data/regions/DJ.js create mode 100644 node_modules/caniuse-lite/data/regions/DK.js create mode 100644 node_modules/caniuse-lite/data/regions/DM.js create mode 100644 node_modules/caniuse-lite/data/regions/DO.js create mode 100644 node_modules/caniuse-lite/data/regions/DZ.js create mode 100644 node_modules/caniuse-lite/data/regions/EC.js create mode 100644 node_modules/caniuse-lite/data/regions/EE.js create mode 100644 node_modules/caniuse-lite/data/regions/EG.js create mode 100644 node_modules/caniuse-lite/data/regions/ER.js create mode 100644 node_modules/caniuse-lite/data/regions/ES.js create mode 100644 node_modules/caniuse-lite/data/regions/ET.js create mode 100644 node_modules/caniuse-lite/data/regions/FI.js create mode 100644 node_modules/caniuse-lite/data/regions/FJ.js create mode 100644 node_modules/caniuse-lite/data/regions/FK.js create mode 100644 node_modules/caniuse-lite/data/regions/FM.js create mode 100644 node_modules/caniuse-lite/data/regions/FO.js create mode 100644 node_modules/caniuse-lite/data/regions/FR.js create mode 100644 node_modules/caniuse-lite/data/regions/GA.js create mode 100644 node_modules/caniuse-lite/data/regions/GB.js create mode 100644 node_modules/caniuse-lite/data/regions/GD.js create mode 100644 node_modules/caniuse-lite/data/regions/GE.js create mode 100644 node_modules/caniuse-lite/data/regions/GF.js create mode 100644 node_modules/caniuse-lite/data/regions/GG.js create mode 100644 node_modules/caniuse-lite/data/regions/GH.js create mode 100644 node_modules/caniuse-lite/data/regions/GI.js create mode 100644 node_modules/caniuse-lite/data/regions/GL.js create mode 100644 node_modules/caniuse-lite/data/regions/GM.js create mode 100644 node_modules/caniuse-lite/data/regions/GN.js create mode 100644 node_modules/caniuse-lite/data/regions/GP.js create mode 100644 node_modules/caniuse-lite/data/regions/GQ.js create mode 100644 node_modules/caniuse-lite/data/regions/GR.js create mode 100644 node_modules/caniuse-lite/data/regions/GT.js create mode 100644 node_modules/caniuse-lite/data/regions/GU.js create mode 100644 node_modules/caniuse-lite/data/regions/GW.js create mode 100644 node_modules/caniuse-lite/data/regions/GY.js create mode 100644 node_modules/caniuse-lite/data/regions/HK.js create mode 100644 node_modules/caniuse-lite/data/regions/HN.js create mode 100644 node_modules/caniuse-lite/data/regions/HR.js create mode 100644 node_modules/caniuse-lite/data/regions/HT.js create mode 100644 node_modules/caniuse-lite/data/regions/HU.js create mode 100644 node_modules/caniuse-lite/data/regions/ID.js create mode 100644 node_modules/caniuse-lite/data/regions/IE.js create mode 100644 node_modules/caniuse-lite/data/regions/IL.js create mode 100644 node_modules/caniuse-lite/data/regions/IM.js create mode 100644 node_modules/caniuse-lite/data/regions/IN.js create mode 100644 node_modules/caniuse-lite/data/regions/IQ.js create mode 100644 node_modules/caniuse-lite/data/regions/IR.js create mode 100644 node_modules/caniuse-lite/data/regions/IS.js create mode 100644 node_modules/caniuse-lite/data/regions/IT.js create mode 100644 node_modules/caniuse-lite/data/regions/JE.js create mode 100644 node_modules/caniuse-lite/data/regions/JM.js create mode 100644 node_modules/caniuse-lite/data/regions/JO.js create mode 100644 node_modules/caniuse-lite/data/regions/JP.js create mode 100644 node_modules/caniuse-lite/data/regions/KE.js create mode 100644 node_modules/caniuse-lite/data/regions/KG.js create mode 100644 node_modules/caniuse-lite/data/regions/KH.js create mode 100644 node_modules/caniuse-lite/data/regions/KI.js create mode 100644 node_modules/caniuse-lite/data/regions/KM.js create mode 100644 node_modules/caniuse-lite/data/regions/KN.js create mode 100644 node_modules/caniuse-lite/data/regions/KP.js create mode 100644 node_modules/caniuse-lite/data/regions/KR.js create mode 100644 node_modules/caniuse-lite/data/regions/KW.js create mode 100644 node_modules/caniuse-lite/data/regions/KY.js create mode 100644 node_modules/caniuse-lite/data/regions/KZ.js create mode 100644 node_modules/caniuse-lite/data/regions/LA.js create mode 100644 node_modules/caniuse-lite/data/regions/LB.js create mode 100644 node_modules/caniuse-lite/data/regions/LC.js create mode 100644 node_modules/caniuse-lite/data/regions/LI.js create mode 100644 node_modules/caniuse-lite/data/regions/LK.js create mode 100644 node_modules/caniuse-lite/data/regions/LR.js create mode 100644 node_modules/caniuse-lite/data/regions/LS.js create mode 100644 node_modules/caniuse-lite/data/regions/LT.js create mode 100644 node_modules/caniuse-lite/data/regions/LU.js create mode 100644 node_modules/caniuse-lite/data/regions/LV.js create mode 100644 node_modules/caniuse-lite/data/regions/LY.js create mode 100644 node_modules/caniuse-lite/data/regions/MA.js create mode 100644 node_modules/caniuse-lite/data/regions/MC.js create mode 100644 node_modules/caniuse-lite/data/regions/MD.js create mode 100644 node_modules/caniuse-lite/data/regions/ME.js create mode 100644 node_modules/caniuse-lite/data/regions/MG.js create mode 100644 node_modules/caniuse-lite/data/regions/MH.js create mode 100644 node_modules/caniuse-lite/data/regions/MK.js create mode 100644 node_modules/caniuse-lite/data/regions/ML.js create mode 100644 node_modules/caniuse-lite/data/regions/MM.js create mode 100644 node_modules/caniuse-lite/data/regions/MN.js create mode 100644 node_modules/caniuse-lite/data/regions/MO.js create mode 100644 node_modules/caniuse-lite/data/regions/MP.js create mode 100644 node_modules/caniuse-lite/data/regions/MQ.js create mode 100644 node_modules/caniuse-lite/data/regions/MR.js create mode 100644 node_modules/caniuse-lite/data/regions/MS.js create mode 100644 node_modules/caniuse-lite/data/regions/MT.js create mode 100644 node_modules/caniuse-lite/data/regions/MU.js create mode 100644 node_modules/caniuse-lite/data/regions/MV.js create mode 100644 node_modules/caniuse-lite/data/regions/MW.js create mode 100644 node_modules/caniuse-lite/data/regions/MX.js create mode 100644 node_modules/caniuse-lite/data/regions/MY.js create mode 100644 node_modules/caniuse-lite/data/regions/MZ.js create mode 100644 node_modules/caniuse-lite/data/regions/NA.js create mode 100644 node_modules/caniuse-lite/data/regions/NC.js create mode 100644 node_modules/caniuse-lite/data/regions/NE.js create mode 100644 node_modules/caniuse-lite/data/regions/NF.js create mode 100644 node_modules/caniuse-lite/data/regions/NG.js create mode 100644 node_modules/caniuse-lite/data/regions/NI.js create mode 100644 node_modules/caniuse-lite/data/regions/NL.js create mode 100644 node_modules/caniuse-lite/data/regions/NO.js create mode 100644 node_modules/caniuse-lite/data/regions/NP.js create mode 100644 node_modules/caniuse-lite/data/regions/NR.js create mode 100644 node_modules/caniuse-lite/data/regions/NU.js create mode 100644 node_modules/caniuse-lite/data/regions/NZ.js create mode 100644 node_modules/caniuse-lite/data/regions/OM.js create mode 100644 node_modules/caniuse-lite/data/regions/PA.js create mode 100644 node_modules/caniuse-lite/data/regions/PE.js create mode 100644 node_modules/caniuse-lite/data/regions/PF.js create mode 100644 node_modules/caniuse-lite/data/regions/PG.js create mode 100644 node_modules/caniuse-lite/data/regions/PH.js create mode 100644 node_modules/caniuse-lite/data/regions/PK.js create mode 100644 node_modules/caniuse-lite/data/regions/PL.js create mode 100644 node_modules/caniuse-lite/data/regions/PM.js create mode 100644 node_modules/caniuse-lite/data/regions/PN.js create mode 100644 node_modules/caniuse-lite/data/regions/PR.js create mode 100644 node_modules/caniuse-lite/data/regions/PS.js create mode 100644 node_modules/caniuse-lite/data/regions/PT.js create mode 100644 node_modules/caniuse-lite/data/regions/PW.js create mode 100644 node_modules/caniuse-lite/data/regions/PY.js create mode 100644 node_modules/caniuse-lite/data/regions/QA.js create mode 100644 node_modules/caniuse-lite/data/regions/RE.js create mode 100644 node_modules/caniuse-lite/data/regions/RO.js create mode 100644 node_modules/caniuse-lite/data/regions/RS.js create mode 100644 node_modules/caniuse-lite/data/regions/RU.js create mode 100644 node_modules/caniuse-lite/data/regions/RW.js create mode 100644 node_modules/caniuse-lite/data/regions/SA.js create mode 100644 node_modules/caniuse-lite/data/regions/SB.js create mode 100644 node_modules/caniuse-lite/data/regions/SC.js create mode 100644 node_modules/caniuse-lite/data/regions/SD.js create mode 100644 node_modules/caniuse-lite/data/regions/SE.js create mode 100644 node_modules/caniuse-lite/data/regions/SG.js create mode 100644 node_modules/caniuse-lite/data/regions/SH.js create mode 100644 node_modules/caniuse-lite/data/regions/SI.js create mode 100644 node_modules/caniuse-lite/data/regions/SK.js create mode 100644 node_modules/caniuse-lite/data/regions/SL.js create mode 100644 node_modules/caniuse-lite/data/regions/SM.js create mode 100644 node_modules/caniuse-lite/data/regions/SN.js create mode 100644 node_modules/caniuse-lite/data/regions/SO.js create mode 100644 node_modules/caniuse-lite/data/regions/SR.js create mode 100644 node_modules/caniuse-lite/data/regions/ST.js create mode 100644 node_modules/caniuse-lite/data/regions/SV.js create mode 100644 node_modules/caniuse-lite/data/regions/SY.js create mode 100644 node_modules/caniuse-lite/data/regions/SZ.js create mode 100644 node_modules/caniuse-lite/data/regions/TC.js create mode 100644 node_modules/caniuse-lite/data/regions/TD.js create mode 100644 node_modules/caniuse-lite/data/regions/TG.js create mode 100644 node_modules/caniuse-lite/data/regions/TH.js create mode 100644 node_modules/caniuse-lite/data/regions/TJ.js create mode 100644 node_modules/caniuse-lite/data/regions/TK.js create mode 100644 node_modules/caniuse-lite/data/regions/TL.js create mode 100644 node_modules/caniuse-lite/data/regions/TM.js create mode 100644 node_modules/caniuse-lite/data/regions/TN.js create mode 100644 node_modules/caniuse-lite/data/regions/TO.js create mode 100644 node_modules/caniuse-lite/data/regions/TR.js create mode 100644 node_modules/caniuse-lite/data/regions/TT.js create mode 100644 node_modules/caniuse-lite/data/regions/TV.js create mode 100644 node_modules/caniuse-lite/data/regions/TW.js create mode 100644 node_modules/caniuse-lite/data/regions/TZ.js create mode 100644 node_modules/caniuse-lite/data/regions/UA.js create mode 100644 node_modules/caniuse-lite/data/regions/UG.js create mode 100644 node_modules/caniuse-lite/data/regions/US.js create mode 100644 node_modules/caniuse-lite/data/regions/UY.js create mode 100644 node_modules/caniuse-lite/data/regions/UZ.js create mode 100644 node_modules/caniuse-lite/data/regions/VA.js create mode 100644 node_modules/caniuse-lite/data/regions/VC.js create mode 100644 node_modules/caniuse-lite/data/regions/VE.js create mode 100644 node_modules/caniuse-lite/data/regions/VG.js create mode 100644 node_modules/caniuse-lite/data/regions/VI.js create mode 100644 node_modules/caniuse-lite/data/regions/VN.js create mode 100644 node_modules/caniuse-lite/data/regions/VU.js create mode 100644 node_modules/caniuse-lite/data/regions/WF.js create mode 100644 node_modules/caniuse-lite/data/regions/WS.js create mode 100644 node_modules/caniuse-lite/data/regions/YE.js create mode 100644 node_modules/caniuse-lite/data/regions/YT.js create mode 100644 node_modules/caniuse-lite/data/regions/ZA.js create mode 100644 node_modules/caniuse-lite/data/regions/ZM.js create mode 100644 node_modules/caniuse-lite/data/regions/ZW.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-af.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-an.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-as.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-eu.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-na.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-oc.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-sa.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-ww.js create mode 100644 node_modules/caniuse-lite/dist/lib/statuses.js create mode 100644 node_modules/caniuse-lite/dist/lib/supported.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/agents.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/browserVersions.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/browsers.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/feature.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/features.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/index.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/region.js create mode 100644 node_modules/caniuse-lite/package.json create mode 100644 node_modules/chokidar/LICENSE create mode 100644 node_modules/chokidar/README.md create mode 100644 node_modules/chokidar/index.js create mode 100644 node_modules/chokidar/lib/constants.js create mode 100644 node_modules/chokidar/lib/fsevents-handler.js create mode 100644 node_modules/chokidar/lib/nodefs-handler.js create mode 100644 node_modules/chokidar/package.json create mode 100644 node_modules/chokidar/types/index.d.ts create mode 100644 node_modules/cliui/CHANGELOG.md create mode 100644 node_modules/cliui/LICENSE.txt create mode 100644 node_modules/cliui/README.md create mode 100644 node_modules/cliui/build/index.cjs create mode 100644 node_modules/cliui/build/index.d.cts create mode 100644 node_modules/cliui/build/lib/index.js create mode 100644 node_modules/cliui/build/lib/string-utils.js create mode 100644 node_modules/cliui/index.mjs create mode 100644 node_modules/cliui/package.json create mode 100644 node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/color-convert/LICENSE create mode 100644 node_modules/color-convert/README.md create mode 100644 node_modules/color-convert/conversions.js create mode 100644 node_modules/color-convert/index.js create mode 100644 node_modules/color-convert/package.json create mode 100644 node_modules/color-convert/route.js create mode 100644 node_modules/color-name/LICENSE create mode 100644 node_modules/color-name/README.md create mode 100644 node_modules/color-name/index.js create mode 100644 node_modules/color-name/package.json create mode 100755 node_modules/dependency-graph/CHANGELOG.md create mode 100755 node_modules/dependency-graph/LICENSE create mode 100755 node_modules/dependency-graph/README.md create mode 100755 node_modules/dependency-graph/lib/dep_graph.js create mode 100755 node_modules/dependency-graph/lib/index.d.ts create mode 100755 node_modules/dependency-graph/package.json create mode 100755 node_modules/dependency-graph/specs/dep_graph_spec.js create mode 100644 node_modules/dir-glob/index.js create mode 100644 node_modules/dir-glob/license create mode 100644 node_modules/dir-glob/package.json create mode 100644 node_modules/dir-glob/readme.md create mode 100644 node_modules/electron-to-chromium/CHANGELOG.md create mode 100644 node_modules/electron-to-chromium/LICENSE create mode 100644 node_modules/electron-to-chromium/README.md create mode 100644 node_modules/electron-to-chromium/chromium-versions.js create mode 100644 node_modules/electron-to-chromium/chromium-versions.json create mode 100644 node_modules/electron-to-chromium/full-chromium-versions.js create mode 100644 node_modules/electron-to-chromium/full-chromium-versions.json create mode 100644 node_modules/electron-to-chromium/full-versions.js create mode 100644 node_modules/electron-to-chromium/full-versions.json create mode 100644 node_modules/electron-to-chromium/index.js create mode 100644 node_modules/electron-to-chromium/package.json create mode 100644 node_modules/electron-to-chromium/versions.js create mode 100644 node_modules/electron-to-chromium/versions.json create mode 100644 node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/emoji-regex/README.md create mode 100644 node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/emoji-regex/index.js create mode 100644 node_modules/emoji-regex/package.json create mode 100644 node_modules/emoji-regex/text.js create mode 100644 node_modules/escalade/dist/index.js create mode 100644 node_modules/escalade/dist/index.mjs create mode 100644 node_modules/escalade/index.d.ts create mode 100644 node_modules/escalade/license create mode 100644 node_modules/escalade/package.json create mode 100644 node_modules/escalade/readme.md create mode 100644 node_modules/escalade/sync/index.d.ts create mode 100644 node_modules/escalade/sync/index.js create mode 100644 node_modules/escalade/sync/index.mjs create mode 100644 node_modules/fast-glob/LICENSE create mode 100644 node_modules/fast-glob/README.md create mode 100644 node_modules/fast-glob/out/index.d.ts create mode 100644 node_modules/fast-glob/out/index.js create mode 100644 node_modules/fast-glob/out/managers/patterns.d.ts create mode 100644 node_modules/fast-glob/out/managers/patterns.js create mode 100644 node_modules/fast-glob/out/managers/tasks.d.ts create mode 100644 node_modules/fast-glob/out/managers/tasks.js create mode 100644 node_modules/fast-glob/out/providers/async.d.ts create mode 100644 node_modules/fast-glob/out/providers/async.js create mode 100644 node_modules/fast-glob/out/providers/filters/deep.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/deep.js create mode 100644 node_modules/fast-glob/out/providers/filters/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/entry.js create mode 100644 node_modules/fast-glob/out/providers/filters/error.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/error.js create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.js create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.js create mode 100644 node_modules/fast-glob/out/providers/provider.d.ts create mode 100644 node_modules/fast-glob/out/providers/provider.js create mode 100644 node_modules/fast-glob/out/providers/stream.d.ts create mode 100644 node_modules/fast-glob/out/providers/stream.js create mode 100644 node_modules/fast-glob/out/providers/sync.d.ts create mode 100644 node_modules/fast-glob/out/providers/sync.js create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.js create mode 100644 node_modules/fast-glob/out/readers/async.d.ts create mode 100644 node_modules/fast-glob/out/readers/async.js create mode 100644 node_modules/fast-glob/out/readers/reader.d.ts create mode 100644 node_modules/fast-glob/out/readers/reader.js create mode 100644 node_modules/fast-glob/out/readers/stream.d.ts create mode 100644 node_modules/fast-glob/out/readers/stream.js create mode 100644 node_modules/fast-glob/out/readers/sync.d.ts create mode 100644 node_modules/fast-glob/out/readers/sync.js create mode 100644 node_modules/fast-glob/out/settings.d.ts create mode 100644 node_modules/fast-glob/out/settings.js create mode 100644 node_modules/fast-glob/out/types/index.d.ts create mode 100644 node_modules/fast-glob/out/types/index.js create mode 100644 node_modules/fast-glob/out/utils/array.d.ts create mode 100644 node_modules/fast-glob/out/utils/array.js create mode 100644 node_modules/fast-glob/out/utils/errno.d.ts create mode 100644 node_modules/fast-glob/out/utils/errno.js create mode 100644 node_modules/fast-glob/out/utils/fs.d.ts create mode 100644 node_modules/fast-glob/out/utils/fs.js create mode 100644 node_modules/fast-glob/out/utils/index.d.ts create mode 100644 node_modules/fast-glob/out/utils/index.js create mode 100644 node_modules/fast-glob/out/utils/path.d.ts create mode 100644 node_modules/fast-glob/out/utils/path.js create mode 100644 node_modules/fast-glob/out/utils/pattern.d.ts create mode 100644 node_modules/fast-glob/out/utils/pattern.js create mode 100644 node_modules/fast-glob/out/utils/stream.d.ts create mode 100644 node_modules/fast-glob/out/utils/stream.js create mode 100644 node_modules/fast-glob/out/utils/string.d.ts create mode 100644 node_modules/fast-glob/out/utils/string.js create mode 100644 node_modules/fast-glob/package.json create mode 100644 node_modules/fastq/.github/dependabot.yml create mode 100644 node_modules/fastq/.github/workflows/ci.yml create mode 100644 node_modules/fastq/LICENSE create mode 100644 node_modules/fastq/README.md create mode 100644 node_modules/fastq/bench.js create mode 100644 node_modules/fastq/example.js create mode 100644 node_modules/fastq/example.mjs create mode 100644 node_modules/fastq/index.d.ts create mode 100644 node_modules/fastq/package.json create mode 100644 node_modules/fastq/queue.js create mode 100644 node_modules/fastq/test/example.ts create mode 100644 node_modules/fastq/test/promise.js create mode 100644 node_modules/fastq/test/test.js create mode 100644 node_modules/fastq/test/tsconfig.json create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/fraction.js/LICENSE create mode 100644 node_modules/fraction.js/README.md create mode 100644 node_modules/fraction.js/bigfraction.js create mode 100644 node_modules/fraction.js/fraction.d.ts create mode 100644 node_modules/fraction.js/fraction.js create mode 100644 node_modules/fraction.js/fraction.min.js create mode 100644 node_modules/fraction.js/package.json create mode 100644 node_modules/fs-extra/LICENSE create mode 100644 node_modules/fs-extra/README.md create mode 100644 node_modules/fs-extra/lib/copy/copy-sync.js create mode 100644 node_modules/fs-extra/lib/copy/copy.js create mode 100644 node_modules/fs-extra/lib/copy/index.js create mode 100644 node_modules/fs-extra/lib/empty/index.js create mode 100644 node_modules/fs-extra/lib/ensure/file.js create mode 100644 node_modules/fs-extra/lib/ensure/index.js create mode 100644 node_modules/fs-extra/lib/ensure/link.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-paths.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-type.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink.js create mode 100644 node_modules/fs-extra/lib/fs/index.js create mode 100644 node_modules/fs-extra/lib/index.js create mode 100644 node_modules/fs-extra/lib/json/index.js create mode 100644 node_modules/fs-extra/lib/json/jsonfile.js create mode 100644 node_modules/fs-extra/lib/json/output-json-sync.js create mode 100644 node_modules/fs-extra/lib/json/output-json.js create mode 100644 node_modules/fs-extra/lib/mkdirs/index.js create mode 100644 node_modules/fs-extra/lib/mkdirs/make-dir.js create mode 100644 node_modules/fs-extra/lib/mkdirs/utils.js create mode 100644 node_modules/fs-extra/lib/move/index.js create mode 100644 node_modules/fs-extra/lib/move/move-sync.js create mode 100644 node_modules/fs-extra/lib/move/move.js create mode 100644 node_modules/fs-extra/lib/output-file/index.js create mode 100644 node_modules/fs-extra/lib/path-exists/index.js create mode 100644 node_modules/fs-extra/lib/remove/index.js create mode 100644 node_modules/fs-extra/lib/remove/rimraf.js create mode 100644 node_modules/fs-extra/lib/util/stat.js create mode 100644 node_modules/fs-extra/lib/util/utimes.js create mode 100644 node_modules/fs-extra/package.json create mode 100644 node_modules/get-caller-file/LICENSE.md create mode 100644 node_modules/get-caller-file/README.md create mode 100644 node_modules/get-caller-file/index.d.ts create mode 100644 node_modules/get-caller-file/index.js create mode 100644 node_modules/get-caller-file/index.js.map create mode 100644 node_modules/get-caller-file/package.json create mode 100644 node_modules/get-stdin/index.d.ts create mode 100644 node_modules/get-stdin/index.js create mode 100644 node_modules/get-stdin/license create mode 100644 node_modules/get-stdin/package.json create mode 100644 node_modules/get-stdin/readme.md create mode 100644 node_modules/glob-parent/CHANGELOG.md create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/globby/gitignore.js create mode 100644 node_modules/globby/index.d.ts create mode 100644 node_modules/globby/index.js create mode 100644 node_modules/globby/license create mode 100644 node_modules/globby/package.json create mode 100644 node_modules/globby/readme.md create mode 100644 node_modules/globby/stream-utils.js create mode 100644 node_modules/globby/to-path.js create mode 100644 node_modules/graceful-fs/LICENSE create mode 100644 node_modules/graceful-fs/README.md create mode 100644 node_modules/graceful-fs/clone.js create mode 100644 node_modules/graceful-fs/graceful-fs.js create mode 100644 node_modules/graceful-fs/legacy-streams.js create mode 100644 node_modules/graceful-fs/package.json create mode 100644 node_modules/graceful-fs/polyfills.js create mode 100644 node_modules/ignore/LICENSE-MIT create mode 100644 node_modules/ignore/README.md create mode 100644 node_modules/ignore/index.d.ts create mode 100644 node_modules/ignore/index.js create mode 100644 node_modules/ignore/legacy.js create mode 100644 node_modules/ignore/package.json create mode 100644 node_modules/is-binary-path/index.d.ts create mode 100644 node_modules/is-binary-path/index.js create mode 100644 node_modules/is-binary-path/license create mode 100644 node_modules/is-binary-path/package.json create mode 100644 node_modules/is-binary-path/readme.md create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-fullwidth-code-point/index.d.ts create mode 100644 node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/jsonfile/CHANGELOG.md create mode 100644 node_modules/jsonfile/LICENSE create mode 100644 node_modules/jsonfile/README.md create mode 100644 node_modules/jsonfile/index.js create mode 100644 node_modules/jsonfile/package.json create mode 100644 node_modules/jsonfile/utils.js create mode 100644 node_modules/lilconfig/LICENSE create mode 100644 node_modules/lilconfig/dist/index.d.ts create mode 100644 node_modules/lilconfig/dist/index.js create mode 100644 node_modules/lilconfig/package.json create mode 100644 node_modules/lilconfig/readme.md create mode 100644 node_modules/merge2/LICENSE create mode 100644 node_modules/merge2/README.md create mode 100644 node_modules/merge2/index.js create mode 100644 node_modules/merge2/package.json create mode 100755 node_modules/micromatch/LICENSE create mode 100644 node_modules/micromatch/README.md create mode 100644 node_modules/micromatch/index.js create mode 100644 node_modules/micromatch/package.json create mode 100644 node_modules/nanoid/LICENSE create mode 100644 node_modules/nanoid/README.md create mode 100644 node_modules/nanoid/async/index.browser.cjs create mode 100644 node_modules/nanoid/async/index.browser.js create mode 100644 node_modules/nanoid/async/index.cjs create mode 100644 node_modules/nanoid/async/index.d.ts create mode 100644 node_modules/nanoid/async/index.js create mode 100644 node_modules/nanoid/async/index.native.js create mode 100644 node_modules/nanoid/async/package.json create mode 100755 node_modules/nanoid/bin/nanoid.cjs create mode 100644 node_modules/nanoid/index.browser.cjs create mode 100644 node_modules/nanoid/index.browser.js create mode 100644 node_modules/nanoid/index.cjs create mode 100644 node_modules/nanoid/index.d.ts create mode 100644 node_modules/nanoid/index.js create mode 100644 node_modules/nanoid/nanoid.js create mode 100644 node_modules/nanoid/non-secure/index.cjs create mode 100644 node_modules/nanoid/non-secure/index.d.ts create mode 100644 node_modules/nanoid/non-secure/index.js create mode 100644 node_modules/nanoid/non-secure/package.json create mode 100644 node_modules/nanoid/package.json create mode 100644 node_modules/nanoid/url-alphabet/index.cjs create mode 100644 node_modules/nanoid/url-alphabet/index.js create mode 100644 node_modules/nanoid/url-alphabet/package.json create mode 100644 node_modules/node-releases/LICENSE create mode 100644 node_modules/node-releases/README.md create mode 100644 node_modules/node-releases/data/processed/envs.json create mode 100644 node_modules/node-releases/data/release-schedule/release-schedule.json create mode 100644 node_modules/node-releases/package.json create mode 100644 node_modules/normalize-path/LICENSE create mode 100644 node_modules/normalize-path/README.md create mode 100644 node_modules/normalize-path/index.js create mode 100644 node_modules/normalize-path/package.json create mode 100644 node_modules/normalize-range/index.js create mode 100644 node_modules/normalize-range/license create mode 100644 node_modules/normalize-range/package.json create mode 100644 node_modules/normalize-range/readme.md create mode 100644 node_modules/path-type/index.d.ts create mode 100644 node_modules/path-type/index.js create mode 100644 node_modules/path-type/license create mode 100644 node_modules/path-type/package.json create mode 100644 node_modules/path-type/readme.md create mode 100644 node_modules/picocolors/LICENSE create mode 100644 node_modules/picocolors/README.md create mode 100644 node_modules/picocolors/package.json create mode 100644 node_modules/picocolors/picocolors.browser.js create mode 100644 node_modules/picocolors/picocolors.d.ts create mode 100644 node_modules/picocolors/picocolors.js create mode 100644 node_modules/picocolors/types.ts create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/pify/index.js create mode 100644 node_modules/pify/license create mode 100644 node_modules/pify/package.json create mode 100644 node_modules/pify/readme.md create mode 100644 node_modules/postcss-cli/LICENSE create mode 100644 node_modules/postcss-cli/README.md create mode 100755 node_modules/postcss-cli/index.js create mode 100644 node_modules/postcss-cli/lib/DependencyGraph.js create mode 100644 node_modules/postcss-cli/lib/args.js create mode 100644 node_modules/postcss-cli/lib/getMapfile.js create mode 100644 node_modules/postcss-cli/package.json create mode 100644 node_modules/postcss-load-config/LICENSE create mode 100644 node_modules/postcss-load-config/README.md create mode 100644 node_modules/postcss-load-config/package.json create mode 100644 node_modules/postcss-load-config/src/index.d.ts create mode 100644 node_modules/postcss-load-config/src/index.js create mode 100644 node_modules/postcss-load-config/src/options.js create mode 100644 node_modules/postcss-load-config/src/plugins.js create mode 100644 node_modules/postcss-load-config/src/req.js create mode 100644 node_modules/postcss-reporter/LICENSE create mode 100644 node_modules/postcss-reporter/README.md create mode 100644 node_modules/postcss-reporter/index.js create mode 100644 node_modules/postcss-reporter/lib/formatter.js create mode 100644 node_modules/postcss-reporter/lib/reporter.js create mode 100644 node_modules/postcss-reporter/lib/util.js create mode 100644 node_modules/postcss-reporter/package.json create mode 100644 node_modules/postcss-value-parser/LICENSE create mode 100644 node_modules/postcss-value-parser/README.md create mode 100644 node_modules/postcss-value-parser/lib/index.d.ts create mode 100644 node_modules/postcss-value-parser/lib/index.js create mode 100644 node_modules/postcss-value-parser/lib/parse.js create mode 100644 node_modules/postcss-value-parser/lib/stringify.js create mode 100644 node_modules/postcss-value-parser/lib/unit.js create mode 100644 node_modules/postcss-value-parser/lib/walk.js create mode 100644 node_modules/postcss-value-parser/package.json create mode 100644 node_modules/postcss/LICENSE create mode 100644 node_modules/postcss/README.md create mode 100644 node_modules/postcss/lib/at-rule.d.ts create mode 100644 node_modules/postcss/lib/at-rule.js create mode 100644 node_modules/postcss/lib/comment.d.ts create mode 100644 node_modules/postcss/lib/comment.js create mode 100644 node_modules/postcss/lib/container.d.ts create mode 100644 node_modules/postcss/lib/container.js create mode 100644 node_modules/postcss/lib/css-syntax-error.d.ts create mode 100644 node_modules/postcss/lib/css-syntax-error.js create mode 100644 node_modules/postcss/lib/declaration.d.ts create mode 100644 node_modules/postcss/lib/declaration.js create mode 100644 node_modules/postcss/lib/document.d.ts create mode 100644 node_modules/postcss/lib/document.js create mode 100644 node_modules/postcss/lib/fromJSON.d.ts create mode 100644 node_modules/postcss/lib/fromJSON.js create mode 100644 node_modules/postcss/lib/input.d.ts create mode 100644 node_modules/postcss/lib/input.js create mode 100644 node_modules/postcss/lib/lazy-result.d.ts create mode 100644 node_modules/postcss/lib/lazy-result.js create mode 100644 node_modules/postcss/lib/list.d.ts create mode 100644 node_modules/postcss/lib/list.js create mode 100644 node_modules/postcss/lib/map-generator.js create mode 100644 node_modules/postcss/lib/no-work-result.d.ts create mode 100644 node_modules/postcss/lib/no-work-result.js create mode 100644 node_modules/postcss/lib/node.d.ts create mode 100644 node_modules/postcss/lib/node.js create mode 100644 node_modules/postcss/lib/parse.d.ts create mode 100644 node_modules/postcss/lib/parse.js create mode 100644 node_modules/postcss/lib/parser.js create mode 100644 node_modules/postcss/lib/postcss.d.mts create mode 100644 node_modules/postcss/lib/postcss.d.ts create mode 100644 node_modules/postcss/lib/postcss.js create mode 100644 node_modules/postcss/lib/postcss.mjs create mode 100644 node_modules/postcss/lib/previous-map.d.ts create mode 100644 node_modules/postcss/lib/previous-map.js create mode 100644 node_modules/postcss/lib/processor.d.ts create mode 100644 node_modules/postcss/lib/processor.js create mode 100644 node_modules/postcss/lib/result.d.ts create mode 100644 node_modules/postcss/lib/result.js create mode 100644 node_modules/postcss/lib/root.d.ts create mode 100644 node_modules/postcss/lib/root.js create mode 100644 node_modules/postcss/lib/rule.d.ts create mode 100644 node_modules/postcss/lib/rule.js create mode 100644 node_modules/postcss/lib/stringifier.d.ts create mode 100644 node_modules/postcss/lib/stringifier.js create mode 100644 node_modules/postcss/lib/stringify.d.ts create mode 100644 node_modules/postcss/lib/stringify.js create mode 100644 node_modules/postcss/lib/symbols.js create mode 100644 node_modules/postcss/lib/terminal-highlight.js create mode 100644 node_modules/postcss/lib/tokenize.js create mode 100644 node_modules/postcss/lib/warn-once.js create mode 100644 node_modules/postcss/lib/warning.d.ts create mode 100644 node_modules/postcss/lib/warning.js create mode 100755 node_modules/postcss/package.json create mode 100644 node_modules/pretty-hrtime/.jshintignore create mode 100644 node_modules/pretty-hrtime/.npmignore create mode 100644 node_modules/pretty-hrtime/LICENSE create mode 100644 node_modules/pretty-hrtime/README.md create mode 100644 node_modules/pretty-hrtime/index.js create mode 100644 node_modules/pretty-hrtime/package.json create mode 100755 node_modules/queue-microtask/LICENSE create mode 100644 node_modules/queue-microtask/README.md create mode 100644 node_modules/queue-microtask/index.d.ts create mode 100644 node_modules/queue-microtask/index.js create mode 100644 node_modules/queue-microtask/package.json create mode 100644 node_modules/read-cache/LICENSE create mode 100644 node_modules/read-cache/README.md create mode 100644 node_modules/read-cache/index.js create mode 100644 node_modules/read-cache/package.json create mode 100644 node_modules/readdirp/LICENSE create mode 100644 node_modules/readdirp/README.md create mode 100644 node_modules/readdirp/index.d.ts create mode 100644 node_modules/readdirp/index.js create mode 100644 node_modules/readdirp/package.json create mode 100644 node_modules/require-directory/.jshintrc create mode 100644 node_modules/require-directory/.npmignore create mode 100644 node_modules/require-directory/.travis.yml create mode 100644 node_modules/require-directory/LICENSE create mode 100644 node_modules/require-directory/README.markdown create mode 100644 node_modules/require-directory/index.js create mode 100644 node_modules/require-directory/package.json create mode 100644 node_modules/reusify/.coveralls.yml create mode 100644 node_modules/reusify/.travis.yml create mode 100644 node_modules/reusify/LICENSE create mode 100644 node_modules/reusify/README.md create mode 100644 node_modules/reusify/benchmarks/createNoCodeFunction.js create mode 100644 node_modules/reusify/benchmarks/fib.js create mode 100644 node_modules/reusify/benchmarks/reuseNoCodeFunction.js create mode 100644 node_modules/reusify/package.json create mode 100644 node_modules/reusify/reusify.js create mode 100644 node_modules/reusify/test.js create mode 100644 node_modules/run-parallel/LICENSE create mode 100644 node_modules/run-parallel/README.md create mode 100644 node_modules/run-parallel/index.js create mode 100644 node_modules/run-parallel/package.json create mode 100644 node_modules/slash/index.d.ts create mode 100644 node_modules/slash/index.js create mode 100644 node_modules/slash/license create mode 100644 node_modules/slash/package.json create mode 100644 node_modules/slash/readme.md create mode 100644 node_modules/source-map-js/CHANGELOG.md create mode 100644 node_modules/source-map-js/LICENSE create mode 100644 node_modules/source-map-js/README.md create mode 100644 node_modules/source-map-js/lib/array-set.js create mode 100644 node_modules/source-map-js/lib/base64-vlq.js create mode 100644 node_modules/source-map-js/lib/base64.js create mode 100644 node_modules/source-map-js/lib/binary-search.js create mode 100644 node_modules/source-map-js/lib/mapping-list.js create mode 100644 node_modules/source-map-js/lib/quick-sort.js create mode 100644 node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 node_modules/source-map-js/lib/source-map-generator.js create mode 100644 node_modules/source-map-js/lib/source-node.js create mode 100644 node_modules/source-map-js/lib/util.js create mode 100644 node_modules/source-map-js/package.json create mode 100644 node_modules/source-map-js/source-map.d.ts create mode 100644 node_modules/source-map-js/source-map.js create mode 100644 node_modules/string-width/index.d.ts create mode 100644 node_modules/string-width/index.js create mode 100644 node_modules/string-width/license create mode 100644 node_modules/string-width/package.json create mode 100644 node_modules/string-width/readme.md create mode 100644 node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/strip-ansi/index.js create mode 100644 node_modules/strip-ansi/license create mode 100644 node_modules/strip-ansi/package.json create mode 100644 node_modules/strip-ansi/readme.md create mode 100644 node_modules/thenby/LICENSE.TXT create mode 100644 node_modules/thenby/README.md create mode 100644 node_modules/thenby/package.json create mode 100644 node_modules/thenby/thenBy.min.js create mode 100644 node_modules/thenby/thenBy.module.d.ts create mode 100644 node_modules/thenby/thenBy.module.js create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/universalify/LICENSE create mode 100644 node_modules/universalify/README.md create mode 100644 node_modules/universalify/index.js create mode 100644 node_modules/universalify/package.json create mode 100644 node_modules/update-browserslist-db/LICENSE create mode 100644 node_modules/update-browserslist-db/README.md create mode 100644 node_modules/update-browserslist-db/check-npm-version.js create mode 100755 node_modules/update-browserslist-db/cli.js create mode 100644 node_modules/update-browserslist-db/index.d.ts create mode 100644 node_modules/update-browserslist-db/index.js create mode 100644 node_modules/update-browserslist-db/package.json create mode 100644 node_modules/update-browserslist-db/utils.js create mode 100755 node_modules/wrap-ansi/index.js create mode 100644 node_modules/wrap-ansi/license create mode 100644 node_modules/wrap-ansi/package.json create mode 100644 node_modules/wrap-ansi/readme.md create mode 100644 node_modules/y18n/CHANGELOG.md create mode 100644 node_modules/y18n/LICENSE create mode 100644 node_modules/y18n/README.md create mode 100644 node_modules/y18n/build/index.cjs create mode 100644 node_modules/y18n/build/lib/cjs.js create mode 100644 node_modules/y18n/build/lib/index.js create mode 100644 node_modules/y18n/build/lib/platform-shims/node.js create mode 100644 node_modules/y18n/index.mjs create mode 100644 node_modules/y18n/package.json create mode 100644 node_modules/yaml/LICENSE create mode 100644 node_modules/yaml/README.md create mode 100644 node_modules/yaml/browser/dist/PlainValue-b8036b75.js create mode 100644 node_modules/yaml/browser/dist/Schema-e94716c8.js create mode 100644 node_modules/yaml/browser/dist/index.js create mode 100644 node_modules/yaml/browser/dist/legacy-exports.js create mode 100644 node_modules/yaml/browser/dist/package.json create mode 100644 node_modules/yaml/browser/dist/parse-cst.js create mode 100644 node_modules/yaml/browser/dist/resolveSeq-492ab440.js create mode 100644 node_modules/yaml/browser/dist/types.js create mode 100644 node_modules/yaml/browser/dist/util.js create mode 100644 node_modules/yaml/browser/dist/warnings-df54cb69.js create mode 100644 node_modules/yaml/browser/index.js create mode 100644 node_modules/yaml/browser/map.js create mode 100644 node_modules/yaml/browser/pair.js create mode 100644 node_modules/yaml/browser/parse-cst.js create mode 100644 node_modules/yaml/browser/scalar.js create mode 100644 node_modules/yaml/browser/schema.js create mode 100644 node_modules/yaml/browser/seq.js create mode 100644 node_modules/yaml/browser/types.js create mode 100644 node_modules/yaml/browser/types/binary.js create mode 100644 node_modules/yaml/browser/types/omap.js create mode 100644 node_modules/yaml/browser/types/pairs.js create mode 100644 node_modules/yaml/browser/types/set.js create mode 100644 node_modules/yaml/browser/types/timestamp.js create mode 100644 node_modules/yaml/browser/util.js create mode 100644 node_modules/yaml/dist/Document-9b4560a1.js create mode 100644 node_modules/yaml/dist/PlainValue-ec8e588e.js create mode 100644 node_modules/yaml/dist/Schema-88e323a7.js create mode 100644 node_modules/yaml/dist/index.js create mode 100644 node_modules/yaml/dist/legacy-exports.js create mode 100644 node_modules/yaml/dist/parse-cst.js create mode 100644 node_modules/yaml/dist/resolveSeq-d03cb037.js create mode 100644 node_modules/yaml/dist/test-events.js create mode 100644 node_modules/yaml/dist/types.js create mode 100644 node_modules/yaml/dist/util.js create mode 100644 node_modules/yaml/dist/warnings-1000a372.js create mode 100644 node_modules/yaml/index.d.ts create mode 100644 node_modules/yaml/index.js create mode 100644 node_modules/yaml/map.js create mode 100644 node_modules/yaml/package.json create mode 100644 node_modules/yaml/pair.js create mode 100644 node_modules/yaml/parse-cst.d.ts create mode 100644 node_modules/yaml/parse-cst.js create mode 100644 node_modules/yaml/scalar.js create mode 100644 node_modules/yaml/schema.js create mode 100644 node_modules/yaml/seq.js create mode 100644 node_modules/yaml/types.d.ts create mode 100644 node_modules/yaml/types.js create mode 100644 node_modules/yaml/types.mjs create mode 100644 node_modules/yaml/types/binary.js create mode 100644 node_modules/yaml/types/omap.js create mode 100644 node_modules/yaml/types/pairs.js create mode 100644 node_modules/yaml/types/set.js create mode 100644 node_modules/yaml/types/timestamp.js create mode 100644 node_modules/yaml/util.d.ts create mode 100644 node_modules/yaml/util.js create mode 100644 node_modules/yaml/util.mjs create mode 100644 node_modules/yargs-parser/CHANGELOG.md create mode 100644 node_modules/yargs-parser/LICENSE.txt create mode 100644 node_modules/yargs-parser/README.md create mode 100644 node_modules/yargs-parser/browser.js create mode 100644 node_modules/yargs-parser/build/index.cjs create mode 100644 node_modules/yargs-parser/build/lib/index.js create mode 100644 node_modules/yargs-parser/build/lib/string-utils.js create mode 100644 node_modules/yargs-parser/build/lib/tokenize-arg-string.js create mode 100644 node_modules/yargs-parser/build/lib/yargs-parser-types.js create mode 100644 node_modules/yargs-parser/build/lib/yargs-parser.js create mode 100644 node_modules/yargs-parser/package.json create mode 100644 node_modules/yargs/LICENSE create mode 100644 node_modules/yargs/README.md create mode 100644 node_modules/yargs/browser.d.ts create mode 100644 node_modules/yargs/browser.mjs create mode 100644 node_modules/yargs/build/index.cjs create mode 100644 node_modules/yargs/build/lib/argsert.js create mode 100644 node_modules/yargs/build/lib/command.js create mode 100644 node_modules/yargs/build/lib/completion-templates.js create mode 100644 node_modules/yargs/build/lib/completion.js create mode 100644 node_modules/yargs/build/lib/middleware.js create mode 100644 node_modules/yargs/build/lib/parse-command.js create mode 100644 node_modules/yargs/build/lib/typings/common-types.js create mode 100644 node_modules/yargs/build/lib/typings/yargs-parser-types.js create mode 100644 node_modules/yargs/build/lib/usage.js create mode 100644 node_modules/yargs/build/lib/utils/apply-extends.js create mode 100644 node_modules/yargs/build/lib/utils/is-promise.js create mode 100644 node_modules/yargs/build/lib/utils/levenshtein.js create mode 100644 node_modules/yargs/build/lib/utils/maybe-async-result.js create mode 100644 node_modules/yargs/build/lib/utils/obj-filter.js create mode 100644 node_modules/yargs/build/lib/utils/process-argv.js create mode 100644 node_modules/yargs/build/lib/utils/set-blocking.js create mode 100644 node_modules/yargs/build/lib/utils/which-module.js create mode 100644 node_modules/yargs/build/lib/validation.js create mode 100644 node_modules/yargs/build/lib/yargs-factory.js create mode 100644 node_modules/yargs/build/lib/yerror.js create mode 100644 node_modules/yargs/helpers/helpers.mjs create mode 100644 node_modules/yargs/helpers/index.js create mode 100644 node_modules/yargs/helpers/package.json create mode 100644 node_modules/yargs/index.cjs create mode 100644 node_modules/yargs/index.mjs create mode 100644 node_modules/yargs/lib/platform-shims/browser.mjs create mode 100644 node_modules/yargs/lib/platform-shims/esm.mjs create mode 100644 node_modules/yargs/locales/be.json create mode 100644 node_modules/yargs/locales/cs.json create mode 100644 node_modules/yargs/locales/de.json create mode 100644 node_modules/yargs/locales/en.json create mode 100644 node_modules/yargs/locales/es.json create mode 100644 node_modules/yargs/locales/fi.json create mode 100644 node_modules/yargs/locales/fr.json create mode 100644 node_modules/yargs/locales/hi.json create mode 100644 node_modules/yargs/locales/hu.json create mode 100644 node_modules/yargs/locales/id.json create mode 100644 node_modules/yargs/locales/it.json create mode 100644 node_modules/yargs/locales/ja.json create mode 100644 node_modules/yargs/locales/ko.json create mode 100644 node_modules/yargs/locales/nb.json create mode 100644 node_modules/yargs/locales/nl.json create mode 100644 node_modules/yargs/locales/nn.json create mode 100644 node_modules/yargs/locales/pirate.json create mode 100644 node_modules/yargs/locales/pl.json create mode 100644 node_modules/yargs/locales/pt.json create mode 100644 node_modules/yargs/locales/pt_BR.json create mode 100644 node_modules/yargs/locales/ru.json create mode 100644 node_modules/yargs/locales/th.json create mode 100644 node_modules/yargs/locales/tr.json create mode 100644 node_modules/yargs/locales/uk_UA.json create mode 100644 node_modules/yargs/locales/uz.json create mode 100644 node_modules/yargs/locales/zh_CN.json create mode 100644 node_modules/yargs/locales/zh_TW.json create mode 100644 node_modules/yargs/package.json create mode 100644 node_modules/yargs/yargs create mode 100644 node_modules/yargs/yargs.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/404.html create mode 100644 public/_print/about/featured-background.jpg create mode 100644 public/_print/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg create mode 100644 public/_print/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg create mode 100644 public/_print/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg create mode 100644 public/_print/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_960x540_fill_q75_catmullrom_bottom.jpg create mode 100644 public/about/_print/index.html create mode 100644 public/about/featured-background.jpg create mode 100644 public/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg create mode 100644 public/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg create mode 100644 public/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg create mode 100644 public/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_960x540_fill_q75_catmullrom_bottom.jpg create mode 100644 public/about/index.html create mode 100644 public/about/index.xml create mode 100644 public/blog/2018/01/04/another-great-release/index.html create mode 100644 public/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get.png create mode 100644 public/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png create mode 100644 public/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png create mode 100644 public/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_640x0_resize_catmullrom_3.png create mode 100644 public/blog/2018/10/06/easy-documentation-with-docsy/index.html create mode 100644 public/blog/2018/10/06/the-second-blog-post/index.html create mode 100644 public/blog/2023/05/30/helping-with-federated-core-documentation/index.html create mode 100644 public/blog/2023/05/30/open-source-projects-in-federated-core/index.html create mode 100644 public/blog/_print/index.html create mode 100644 public/blog/core/_print/index.html create mode 100644 public/blog/core/index.html create mode 100644 public/blog/core/index.xml create mode 100644 public/blog/core/page/1/index.html create mode 100644 public/blog/index.html create mode 100644 public/blog/index.xml create mode 100644 public/blog/news/_print/index.html create mode 100644 public/blog/news/index.html create mode 100644 public/blog/news/index.xml create mode 100644 public/blog/news/page/1/index.html create mode 100644 public/blog/page/1/index.html create mode 100644 public/blog/releases/_print/index.html create mode 100644 public/blog/releases/index.html create mode 100644 public/blog/releases/index.xml create mode 100644 public/blog/releases/page/1/index.html create mode 100644 public/categories/examples/index.html create mode 100644 public/categories/examples/index.xml create mode 100644 public/categories/index.html create mode 100644 public/categories/index.xml create mode 100644 public/categories/placeholders/index.html create mode 100644 public/categories/placeholders/index.xml create mode 100644 public/community/_print/index.html create mode 100644 public/community/index.html create mode 100644 public/community/index.xml create mode 100644 public/css/prism.css create mode 100644 public/css/swagger-ui.css create mode 100644 public/docs/_print/index.html create mode 100644 public/docs/concepts/_print/index.html create mode 100644 public/docs/concepts/index.html create mode 100644 public/docs/concepts/index.xml create mode 100644 public/docs/contribution-guidelines/_print/index.html create mode 100644 public/docs/contribution-guidelines/index.html create mode 100644 public/docs/contribution-guidelines/index.xml create mode 100644 public/docs/examples/_print/index.html create mode 100644 public/docs/examples/index.html create mode 100644 public/docs/examples/index.xml create mode 100644 public/docs/getting-started/_print/index.html create mode 100644 public/docs/getting-started/example-page/index.html create mode 100644 public/docs/getting-started/index.html create mode 100644 public/docs/getting-started/index.xml create mode 100644 public/docs/index.html create mode 100644 public/docs/index.xml create mode 100644 public/docs/overview/_print/index.html create mode 100644 public/docs/overview/index.html create mode 100644 public/docs/overview/index.xml create mode 100644 public/docs/reference/_print/index.html create mode 100644 public/docs/reference/index.html create mode 100644 public/docs/reference/index.xml create mode 100644 public/docs/reference/parameter-reference/index.html create mode 100644 public/docs/tasks/_print/index.html create mode 100644 public/docs/tasks/beds/index.html create mode 100644 public/docs/tasks/index.html create mode 100644 public/docs/tasks/index.xml create mode 100644 public/docs/tasks/ponycopters/_print/index.html create mode 100644 public/docs/tasks/ponycopters/configuring-ponycopters/index.html create mode 100644 public/docs/tasks/ponycopters/index.html create mode 100644 public/docs/tasks/ponycopters/index.xml create mode 100644 public/docs/tasks/ponycopters/launching-ponycopters/index.html create mode 100644 public/docs/tasks/porridge/index.html create mode 100644 public/docs/tasks/task/index.html create mode 100644 public/docs/tutorials/_print/index.html create mode 100644 public/docs/tutorials/index.html create mode 100644 public/docs/tutorials/index.xml create mode 100644 public/docs/tutorials/multi-bear/index.html create mode 100644 public/docs/tutorials/tutorial2/index.html create mode 100644 public/favicons/android-144x144.png create mode 100644 public/favicons/android-192x192.png create mode 100644 public/favicons/android-36x36.png create mode 100644 public/favicons/android-48x48.png create mode 100644 public/favicons/android-72x72.png create mode 100644 public/favicons/android-96x96.png create mode 100644 public/favicons/apple-touch-icon-180x180.png create mode 100644 public/favicons/favicon-1024.png create mode 100644 public/favicons/favicon-16x16.png create mode 100644 public/favicons/favicon-256.png create mode 100644 public/favicons/favicon-32x32.png create mode 100644 public/favicons/favicon.ico create mode 100644 public/favicons/pwa-192x192.png create mode 100644 public/favicons/pwa-512x512.png create mode 100644 public/favicons/tile150x150.png create mode 100644 public/favicons/tile310x150.png create mode 100644 public/favicons/tile310x310.png create mode 100644 public/favicons/tile70x70.png create mode 100644 public/featured-background.jpg create mode 100644 public/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg create mode 100644 public/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg create mode 100644 public/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_top.jpg create mode 100644 public/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_960x540_fill_q75_catmullrom_top.jpg create mode 100644 public/index.html create mode 100644 public/index.xml create mode 100644 public/js/deflate.js create mode 100644 public/js/main.min.8741557c571337827a7eb4977ad59c86860ae95b8e86a17138d36f059fa5fe23.js create mode 100644 public/js/prism.js create mode 100644 public/js/swagger-ui-bundle.js create mode 100644 public/js/swagger-ui-standalone-preset.js create mode 100644 public/js/tabpane-persist.js create mode 100644 public/robots.txt create mode 100644 public/scss/main.min.43ad6541a45f31cd03dd1066a29ba2595ef582b492c6241a2288367893840e77.css create mode 100644 public/search/index.html create mode 100644 public/sitemap.xml create mode 100644 public/tags/docs/index.html create mode 100644 public/tags/docs/index.xml create mode 100644 public/tags/index.html create mode 100644 public/tags/index.xml create mode 100644 public/tags/sample/index.html create mode 100644 public/tags/sample/index.xml create mode 100644 public/tags/test/index.html create mode 100644 public/tags/test/index.xml create mode 100644 public/webfonts/fa-brands-400.ttf create mode 100644 public/webfonts/fa-brands-400.woff2 create mode 100644 public/webfonts/fa-regular-400.ttf create mode 100644 public/webfonts/fa-regular-400.woff2 create mode 100644 public/webfonts/fa-solid-900.ttf create mode 100644 public/webfonts/fa-solid-900.woff2 create mode 100644 public/webfonts/fa-v4compatibility.ttf create mode 100644 public/webfonts/fa-v4compatibility.woff2 create mode 100644 resources/_gen/assets/scss/scss/main.scss_4853eb546e7a6c0898ed71feae7357c0.content create mode 100644 resources/_gen/assets/scss/scss/main.scss_4853eb546e7a6c0898ed71feae7357c0.json create mode 100644 resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.content create mode 100644 resources/_gen/assets/scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68.json create mode 100644 resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg create mode 100644 resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg create mode 100644 resources/_gen/images/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg create mode 100644 resources/_gen/images/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_960x540_fill_q75_catmullrom_bottom.jpg create mode 100644 resources/_gen/images/blog/news/first-post/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png create mode 100644 resources/_gen/images/blog/news/first-post/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png create mode 100644 resources/_gen/images/blog/news/first-post/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_640x0_resize_catmullrom_3.png create mode 100644 resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg create mode 100644 resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg create mode 100644 resources/_gen/images/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_top.jpg create mode 100644 resources/_gen/images/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_960x540_fill_q75_catmullrom_top.jpg diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss new file mode 100644 index 0000000..2569027 --- /dev/null +++ b/assets/scss/_variables_project.scss @@ -0,0 +1,6 @@ +/* + +Add styles or override variables from the theme here. + +*/ + diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..26c407a --- /dev/null +++ b/config.toml @@ -0,0 +1,218 @@ +baseURL = "/" +title = "Federated Docs" + +# Language settings +contentDir = "content/en" +defaultContentLanguage = "en" +defaultContentLanguageInSubdir = false +# Useful when translating. +enableMissingTranslationPlaceholders = true + +enableRobotsTXT = true + +# Will give values to .Lastmod etc. +enableGitInfo = false + +# Comment out to enable taxonomies in Docsy +# disableKinds = ["taxonomy", "taxonomyTerm"] + +# You can add your own taxonomies +[taxonomies] +tag = "tags" +category = "categories" + +[params.taxonomy] +# set taxonomyCloud = [] to hide taxonomy clouds +taxonomyCloud = ["tags", "categories"] + +# If used, must have same length as taxonomyCloud +taxonomyCloudTitle = ["Tag Cloud", "Categories"] + +# set taxonomyPageHeader = [] to hide taxonomies on the page headers +taxonomyPageHeader = ["tags", "categories"] + + +# Highlighting config +pygmentsCodeFences = true +pygmentsUseClasses = false +# Use the new Chroma Go highlighter in Hugo. +pygmentsUseClassic = false +#pygmentsOptions = "linenos=table" +# See https://help.farbox.com/pygments.html +pygmentsStyle = "tango" + +# Configure how URLs look like per section. +[permalinks] +blog = "/:section/:year/:month/:day/:slug/" + +# Image processing configuration. +[imaging] +resampleFilter = "CatmullRom" +quality = 75 +anchor = "smart" + +[services] +[services.googleAnalytics] +# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. +# id = "UA-00000000-0" + +# Language configuration + +# [languages] +# [languages.en] +# title = "Goldydocs" +# description = "A Docsy example site" +# languageName ="English" +# Weight used for sorting. +# weight = 1 + +# [languages.no] +# title = "Goldydocs" +# description = "Docsy er operativsystem for skyen" +# languageName ="Norsk" +# contentDir = "content/no" +# time_format_default = "02.01.2006" +# time_format_blog = "02.01.2006" +# +# [languages.fa] +# title = "اسناد گلدی" +# description = "یک نمونه برای پوسته داکسی" +# languageName ="فارسی" +# contentDir = "content/fa" +# time_format_default = "2006.01.02" +# time_format_blog = "2006.01.02" + +[markup] + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + [markup.highlight] + # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html + style = "tango" + # Uncomment if you want your chosen highlight style used for code blocks without a specified language + # guessSyntax = "true" + +# Everything below this are Site Params + +# Comment out if you don't want the "print entire section" link enabled. +[outputs] +section = ["HTML", "print", "RSS"] + +[params] +copyright = "Federated Computer, Inc." +privacy_policy = "https://federated.computer" + +# First one is picked as the Twitter card image if not set on page. +# images = ["images/project-illustration.png"] + +# Menu title if your navbar has a versions selector to access old versions of your site. +# This menu appears only if you have at least one [params.versions] set. +version_menu = "Releases" + +# Flag used in the "version-banner" partial to decide whether to display a +# banner on every page indicating that this is an archived version of the docs. +# Set this flag to "true" if you want to display the banner. +archived_version = false + +# The version number for the version of the docs represented in this doc set. +# Used in the "version-banner" partial to display a version number for the +# current doc set. +version = "0.1" + +# A link to latest version of the docs. Used in the "version-banner" partial to +# point people to the main doc site. +url_latest_version = "https://example.com" + +# Repository configuration (URLs for in-page links to opening issues and suggesting changes) +github_repo = "https://github.com/google/docsy-example" +# An optional link to a related project repo. For example, the sibling repository where your product code lives. +# github_project_repo = "https://github.com/google/docsy" + +# Specify a value here if your content directory is not in your repo's root directory +# github_subdir = "" + +# Uncomment this if your GitHub repo does not have "main" as the default branch, +# or specify a new value if you want to reference another branch in your GitHub links +# github_branch= "master" + +# Google Custom Search Engine ID. Remove or comment out to disable search. +# gcs_engine_id = "d72aa9b2712488cc3" + +# Enable Algolia DocSearch +# algolia_docsearch = false + +# Enable Lunr.js offline search +offlineSearch = false + +# Enable syntax highlighting and copy buttons on code blocks with Prism +prism_syntax_highlighting = false + +# User interface configuration +[params.ui] +# Set to true to disable breadcrumb navigation. +breadcrumb_disable = false +# Set to true to disable the About link in the site footer +footer_about_disable = false +# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar +navbar_logo = true +# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage. +navbar_translucent_over_cover_disable = false +# Enable to show the side bar menu in its compact state. +sidebar_menu_compact = false +# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) +sidebar_search_disable = false + +# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. +# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. +# If you want this feature, but occasionally need to remove the "Feedback" section from a single page, +# add "hide_feedback: true" to the page's front matter. +[params.ui.feedback] +enable = false +# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful). +# yes = 'Glad to hear it! Please tell us how we can improve.' +# no = 'Sorry to hear that. Please tell us how we can improve.' + +# Adds a reading time to the top of each doc. +# If you want this feature, but occasionally need to remove the Reading time from a single page, +# add "hide_readingtime: true" to the page's front matter +[params.ui.readingtime] +enable = false + +[params.links] +# End user relevant links. These will show up on left side of footer and in the community page if you have one. +[[params.links.user]] + name = "User mailing list" + url = "https://federated.computer/mail" + icon = "fa fa-envelope" + desc = "Discussion and help from your fellow users" +[[params.links.user]] + name ="Twitter" + url = "https://twitter.com/federatedworld" + icon = "fab fa-twitter" + desc = "Follow us on Twitter to get the latest news!" +# Developer relevant links. These will show up on right side of footer and in the community page if you have one. +[[params.links.developer]] + name = "GitHub" + url = "https://github.com/federatedcomputer" + icon = "fab fa-github" + desc = "Development takes place here!" +[[params.links.developer]] + name = "Developer mailing list" + url = "https://federated.computer/developers" + icon = "fa fa-envelope" + desc = "Discuss development issues around the project" + +# hugo module configuration + +[module] + # uncomment line below for temporary local development of module + # replacements = "github.com/google/docsy -> ../../docsy" + [module.hugoVersion] + extended = true + min = "0.75.0" + [[module.imports]] + path = "github.com/google/docsy" + disable = false + [[module.imports]] + path = "github.com/google/docsy/dependencies" + disable = false diff --git a/content/en/_index.html b/content/en/_index.html new file mode 100644 index 0000000..8b29478 --- /dev/null +++ b/content/en/_index.html @@ -0,0 +1,81 @@ ++++ +title = "Federated Docs" +linkTitle = "Federated Docs" + ++++ + +{{< blocks/cover title="Welcome to the Federated Documentation Project" image_anchor="top" height="full" color="orange" >}} +
+ }}"> + Learn More + + + Download + +

Your universal source for all things Federated.

+ {{< blocks/link-down color="info" >}} +
+{{< /blocks/cover >}} + + +{{% blocks/lead color="primary" %}} +Federated provides a comprehensive distribution of software for individuals, teams, companies, small business, clubs, non-profits to run their digital work and life without fear of loss of privacy, surveillance from Federated, costly contracts, high prices. + +(If you would like to learn more, please visit us at [Federated](https://federated.computer).) +{{% /blocks/lead %}} + +{{< blocks/section color="dark" >}} +{{% blocks/feature icon="fa-lightbulb" title="New chair metrics!" %}} +Federated is built on open-source projects. We point you to the relevant documentation for each project and help you to use the projects together as a working whole. That's Federated Core. + +We are always updating software and methods so please watch this space. +{{% /blocks/feature %}} + + +{{% blocks/feature icon="fab fa-github" title="Contributions welcome!" url="https://github.com/google/docsy-example" %}} +We do [Pull Request](https://code.federated.computer/documentation/pulls) contributions on our **Gitea** server if you would like to contribute to the documentation. New users are always welcome and accepted contributions earn cash discounts on Federated Core. Please email support@federated.computer for more information. +{{% /blocks/feature %}} + + +{{% blocks/feature icon="fab fa-twitter" title="Follow us on Twitter!" url="https://twitter.com/federatedworld" %}} +For announcement of latest features etc. +{{% /blocks/feature %}} + + +{{< /blocks/section >}} + + +{{< blocks/section >}} +
+

Did you know we have a brand dedicated to digital and lifestyle self sovereignty?

+
+ +{{< /blocks/section >}} + + + +{{< blocks/section >}} +{{% blocks/feature icon="fab fa-app-store-ios" title="Subscribe **from Podcast Index**" %}} +List to our podcast! +{{% /blocks/feature %}} + + +{{% blocks/feature icon="fab fa-github" title="Contributions welcome!" url="https://github.com/google/docsy-example" %}} +You can contribute to Sovereign Reset through a [Pull Request](https://github.com/google/docsy-example/pulls) contribution on our **Gitea** or sending contributions to editor@sovereignreset.com. New users are always welcome! +{{% /blocks/feature %}} + + +{{% blocks/feature icon="fab fa-twitter" title="Follow us on Twitter!" url="https://twitter.com/sovereignreset" %}} +For self-sovereign news, interviews, tips, engagement. +{{% /blocks/feature %}} + + +{{< /blocks/section >}} + +{{< blocks/section >}} + +
+

"It's your computer."

+
+ +{{< /blocks/section >}} diff --git a/content/en/about/_index.html b/content/en/about/_index.html new file mode 100644 index 0000000..252e704 --- /dev/null +++ b/content/en/about/_index.html @@ -0,0 +1,38 @@ +--- +title: About Federated Core +linkTitle: About +menu: + main: + weight: 10 + +--- + + +{{< blocks/cover title="About Federated Core" image_anchor="bottom" height="min" >}} + +

Documentation about using your Federated Core. +

+ +{{< /blocks/cover >}} + +{{% blocks/lead %}} +Federated Core is a replacement for all the anti-privacy, expensive, centralized services you need to run your life, business, club, group, etc. This site provides our great Customers with all the information they might need to use Federated Core to its full advantage. +{{% /blocks/lead %}} + + +{{< blocks/section >}} +
+

If you would like to help with Federated Core documentation and earn free services, belt buckles, swag, and even bitcoin, please drop a note with your information and areas of interest to documentation@federated.computer. Thanks.

+
+ +{{< /blocks/section >}} + + + +{{< blocks/section >}} + +
+

This documentation is hosted on a Federated Core. Of course.

+
+ +{{< /blocks/section >}} diff --git a/content/en/about/featured-background.jpg b/content/en/about/featured-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44c220ec05a9296994462ffb50f01f78a8c88d71 GIT binary patch literal 428203 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

GH}bd#%Pzf_Os;ou7AFN!S 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�MTlcK-lU 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

;{+{-nrs3Uh|Km)+Mz+?q|p^A$sU6V6}wC1H0 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%0AI7k(MvcjC+^2%H3LY*@Fm#nY;k+;ow~FXhJFmtR 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

l>?UZXUVTX~c_Yo)U1x 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 tkHi + This is a listing, with links, of all the open source projects currently in Federated Core. +--- + +Federated Core is comprised of the best open-source projects for individuals and small teams to manage their daily productivity and output. + +1. [Nextcloud](https://docs.nextcloud.com/) +2. [Jitsi](https://jitsi.github.io/handbook/docs/intro/) +3. [Element](https://element.io/get-started) +4. [Matrix](https://matrix.org/docs/guides/) +5. [Vaultwarden](https://github.com/dani-garcia/vaultwarden/wiki) +6. [Listmonk](https://listmonk.app/docs/) +7. [Baserow](https://baserow.io/docs/index) +8. [LDAP](https://hub.docker.com/r/bitnami/openldap/) +9. [Email Server](https://github.com/docker-mailserver/docker-mailserver) +10. [Gitea](https://docs.gitea.com/) +11. [Wireguard](https://github.com/pirate/wireguard-docs) +12. [PowerDNS](https://doc.powerdns.com/) +13. [Traefik](https://doc.traefik.io/) + +These links are for the open-source projects themselves. Our goal is to distill this documentation, without information about installing and management, into simple-to-understand guides for "users". \ No newline at end of file diff --git a/content/en/blog/news/_index.md b/content/en/blog/news/_index.md new file mode 100644 index 0000000..68f96fe --- /dev/null +++ b/content/en/blog/news/_index.md @@ -0,0 +1,8 @@ + +--- +title: "News About Federated Core Documentation" +linkTitle: "News" +weight: 20 +--- + + diff --git a/content/en/blog/news/first-post/index.md b/content/en/blog/news/first-post/index.md new file mode 100644 index 0000000..a9ea8ac --- /dev/null +++ b/content/en/blog/news/first-post/index.md @@ -0,0 +1,28 @@ +--- +date: 2023-05-30 +title: "Helping with Federated Core documentation" +linkTitle: "Helping" +description: "You can earn free Federated services, belt buckles, other merchandise, and even BTC by contributing in regular significant ways to the Federated documentation project." +author: David Young ([@davidpaulyoung](https://twitter.com/davidpaulyoung)) +resources: +- src: "**.{png,jpg}" + title: "Image #:counter" + params: + byline: "Photo: David Young / CC-BY-CA" +--- + +**You could earn significant prizes and even BTC by helping build out and maintain the Federated documentation project.** + +Federated Core is a large, integrated system incorporation a number of the best open-source projects today into a single system for individuals and small teams. Documentation how all the software can be used is a large task best left to a dedicated community. + +## Volunteer to help with documentation + +If you would like to help with documentation, please send an email to: documentation@federated.computer. In the email please include the following: + +* Area(s) of interest for documentation and levels of expertise +* How many hours per week you are willing to commit to documentation +* Would you be willing to lead others? + +We will be in touch with you to coordinate your participation in the project. + + diff --git a/content/en/community/_index.md b/content/en/community/_index.md new file mode 100644 index 0000000..cdade16 --- /dev/null +++ b/content/en/community/_index.md @@ -0,0 +1,8 @@ +--- +title: Community +menu: + main: + weight: 40 +--- + + diff --git a/content/en/docs/Concepts/_index.md b/content/en/docs/Concepts/_index.md new file mode 100644 index 0000000..6cc6420 --- /dev/null +++ b/content/en/docs/Concepts/_index.md @@ -0,0 +1,17 @@ +--- +title: "Concepts" +linkTitle: "Concepts" +weight: 4 +description: > + What does your user need to understand about your project in order to use it - or potentially contribute to it? +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + +For many projects, users may not need much information beyond the information in the [Overview](/docs/overview/), so this section is **optional**. However if there are areas where your users will need a more detailed understanding of a given term or feature in order to do anything useful with your project (or to not make mistakes when using it) put that information in this section. For example, you may want to add some conceptual pages if you have a large project with many components and a complex architecture. + +Remember to focus on what the user needs to know, not just what you think is interesting about your project! If they don’t need to understand your original design decisions to use or contribute to the project, don’t put them in, or include your design docs in your repo and link to them. Similarly, most users will probably need to know more about how features work when in use rather than how they are implemented. Consider a separate architecture page for more detailed implementation and system design information that potential project contributors can consult. + + diff --git a/content/en/docs/Contribution guidelines/_index.md b/content/en/docs/Contribution guidelines/_index.md new file mode 100644 index 0000000..bdf7078 --- /dev/null +++ b/content/en/docs/Contribution guidelines/_index.md @@ -0,0 +1,81 @@ +--- +title: "Contribution Guidelines" +linkTitle: "Contribution Guidelines" +weight: 10 +description: > + How to contribute to the docs +--- + +{{% pageinfo %}} +These basic sample guidelines assume that your Docsy site is deployed using Netlify and your files are stored in GitHub. You can use the guidelines "as is" or adapt them with your own instructions: for example, other deployment options, information about your doc project's file structure, project-specific review guidelines, versioning guidelines, or any other information your users might find useful when updating your site. [Kubeflow](https://github.com/kubeflow/website/blob/master/README.md) has a great example. + +Don't forget to link to your own doc repo rather than our example site! Also make sure users can find these guidelines from your doc repo README: either add them there and link to them from this page, add them here and link to them from the README, or include them in both locations. +{{% /pageinfo %}} + +We use [Hugo](https://gohugo.io/) to format and generate our website, the +[Docsy](https://github.com/google/docsy) theme for styling and site structure, +and [Netlify](https://www.netlify.com/) to manage the deployment of the site. +Hugo is an open-source static site generator that provides us with templates, +content organisation in a standard directory structure, and a website generation +engine. You write the pages in Markdown (or HTML if you want), and Hugo wraps them up into a website. + +All submissions, including submissions by project members, require review. We +use GitHub pull requests for this purpose. Consult +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more +information on using pull requests. + +## Quick start with Netlify + +Here's a quick guide to updating the docs. It assumes you're familiar with the +GitHub workflow and you're happy to use the automated preview of your doc +updates: + +1. Fork the [Goldydocs repo](https://github.com/google/docsy-example) on GitHub. +1. Make your changes and send a pull request (PR). +1. If you're not yet ready for a review, add "WIP" to the PR name to indicate + it's a work in progress. (**Don't** add the Hugo property + "draft = true" to the page front matter, because that prevents the + auto-deployment of the content preview described in the next point.) +1. Wait for the automated PR workflow to do some checks. When it's ready, + you should see a comment like this: **deploy/netlify — Deploy preview ready!** +1. Click **Details** to the right of "Deploy preview ready" to see a preview + of your updates. +1. Continue updating your doc and pushing your changes until you're happy with + the content. +1. When you're ready for a review, add a comment to the PR, and remove any + "WIP" markers. + +## Updating a single page + +If you've just spotted something you'd like to change while using the docs, Docsy has a shortcut for you: + +1. Click **Edit this page** in the top right hand corner of the page. +1. If you don't already have an up to date fork of the project repo, you are prompted to get one - click **Fork this repository and propose changes** or **Update your Fork** to get an up to date version of the project to edit. The appropriate page in your fork is displayed in edit mode. +1. Follow the rest of the [Quick start with Netlify](#quick-start-with-netlify) process above to make, preview, and propose your changes. + +## Previewing your changes locally + +If you want to run your own local Hugo server to preview your changes as you work: + +1. Follow the instructions in [Getting started](/docs/getting-started) to install Hugo and any other tools you need. You'll need at least **Hugo version 0.45** (we recommend using the most recent available version), and it must be the **extended** version, which supports SCSS. +1. Fork the [Goldydocs repo](https://github.com/google/docsy-example) repo into your own project, then create a local copy using `git clone`. Don’t forget to use `--recurse-submodules` or you won’t pull down some of the code you need to generate a working site. + + ``` + git clone --recurse-submodules --depth 1 https://github.com/google/docsy-example.git + ``` + +1. Run `hugo server` in the site root directory. By default your site will be available at http://localhost:1313/. Now that you're serving your site locally, Hugo will watch for changes to the content and automatically refresh your site. +1. Continue with the usual GitHub workflow to edit files, commit them, push the + changes up to your fork, and create a pull request. + +## Creating an issue + +If you've found a problem in the docs, but you're not sure how to fix it yourself, please create an issue in the [Goldydocs repo](https://github.com/google/docsy-example/issues). You can also create an issue about a specific page by clicking the **Create Issue** button in the top right hand corner of the page. + +## Useful resources + +* [Docsy user guide](https://www.docsy.dev/docs/): All about Docsy, including how it manages navigation, look and feel, and multi-language support. +* [Hugo documentation](https://gohugo.io/documentation/): Comprehensive reference for Hugo. +* [Github Hello World!](https://guides.github.com/activities/hello-world/): A basic introduction to GitHub concepts and workflow. + + diff --git a/content/en/docs/Examples/_index.md b/content/en/docs/Examples/_index.md new file mode 100755 index 0000000..efc8cc8 --- /dev/null +++ b/content/en/docs/Examples/_index.md @@ -0,0 +1,17 @@ + +--- +title: "Examples" +linkTitle: "Examples" +weight: 3 +date: 2017-01-05 +description: > + See your project in action! +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + +Do you have any example **applications** or **code** for your users in your repo or elsewhere? Link to your examples here. + + diff --git a/content/en/docs/Getting started/_index.md b/content/en/docs/Getting started/_index.md new file mode 100644 index 0000000..5a3bbc7 --- /dev/null +++ b/content/en/docs/Getting started/_index.md @@ -0,0 +1,37 @@ +--- +categories: ["Examples", "Placeholders"] +tags: ["test","docs"] +title: "Getting Started" +linkTitle: "Getting Started" +weight: 2 +description: > + What does your user need to know to try your project? +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + +Information in this section helps your user try your project themselves. + +* What do your users need to do to start using your project? This could include downloading/installation instructions, including any prerequisites or system requirements. + +* Introductory “Hello World” example, if appropriate. More complex tutorials should live in the Tutorials section. + +Consider using the headings below for your getting started page. You can delete any that are not applicable to your project. + +## Prerequisites + +Are there any system requirements for using your project? What languages are supported (if any)? Do users need to already have any software or tools installed? + +## Installation + +Where can your user find your project code? How can they install it (binaries, installable package, build from source)? Are there multiple options/versions they can install and how should they choose the right one for them? + +## Setup + +Is there any initial setup users need to do after installation to try your project? + +## Try it out! + +Can your users test their installation, for example by running a command or deploying a Hello World example? diff --git a/content/en/docs/Getting started/example-page.md b/content/en/docs/Getting started/example-page.md new file mode 100644 index 0000000..0bdd56c --- /dev/null +++ b/content/en/docs/Getting started/example-page.md @@ -0,0 +1,241 @@ +--- +categories: ["Examples"] +tags: ["test", "sample", "docs"] +title: "Example Page" +linkTitle: "Example Page" +date: 2017-01-05 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Overview/_index.md b/content/en/docs/Overview/_index.md new file mode 100644 index 0000000..6a03756 --- /dev/null +++ b/content/en/docs/Overview/_index.md @@ -0,0 +1,38 @@ +--- +title: "Overview" +linkTitle: "Overview" +weight: 1 +description: > + Here's where your user finds out if your project is for them. +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + + +The Overview is where your users find out about your project. Depending on the size of your docset, you can have a separate overview page (like this one) or put your overview contents in the Documentation landing page (like in the Docsy User Guide). + +Try answering these questions for your user in this page: + +## What is it? + +Introduce your project, including what it does or lets you do, why you would use it, and its primary goal (and how it achieves it). This should be similar to your README description, though you can go into a little more detail here if you want. + +## Why do I want it? + +Help your user know if your project will help them. Useful information can include: + +* **What is it good for?**: What types of problems does your project solve? What are the benefits of using it? + +* **What is it not good for?**: For example, point out situations that might intuitively seem suited for your project, but aren't for some reason. Also mention known limitations, scaling issues, or anything else that might let your users know if the project is not for them. + +* **What is it *not yet* good for?**: Highlight any useful features that are coming soon. + +## Where should I go next? + +Give your users next steps from the Overview. For example: + +* [Getting Started](/docs/getting-started/): Get started with $project +* [Examples](/docs/examples/): Check out some example code! + diff --git a/content/en/docs/Reference/_index.md b/content/en/docs/Reference/_index.md new file mode 100644 index 0000000..f174fc0 --- /dev/null +++ b/content/en/docs/Reference/_index.md @@ -0,0 +1,14 @@ +--- +title: "Reference" +linkTitle: "Reference" +weight: 9 +description: > + Low level reference docs for your project. +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + +If your project has an API, configuration, or other reference - anything that users need to look up that’s at an even lower level than a single task - put (or link to it) here. You can serve and link to generated reference docs created using Doxygen, +Javadoc, or other doc generation tools by putting them in your `static/` directory. Find out more in [Adding static content](https://docsy.dev/docs/adding-content/content/#adding-static-content). For OpenAPI reference, Docsy also provides a [Swagger UI layout and shortcode](https://www.docsy.dev/docs/adding-content/shortcodes/#swaggerui) that renders [Swagger UI](https://swagger.io/tools/swagger-ui/) using any OpenAPI YAML or JSON file as source. diff --git a/content/en/docs/Reference/parameter-reference.md b/content/en/docs/Reference/parameter-reference.md new file mode 100644 index 0000000..0012c85 --- /dev/null +++ b/content/en/docs/Reference/parameter-reference.md @@ -0,0 +1,212 @@ +--- +title: "Parameter Reference" +linkTitle: "Parameter Reference" +date: 2017-01-05 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading diff --git a/content/en/docs/Tasks/Ponycopters/_index.md b/content/en/docs/Tasks/Ponycopters/_index.md new file mode 100755 index 0000000..a1bd522 --- /dev/null +++ b/content/en/docs/Tasks/Ponycopters/_index.md @@ -0,0 +1,16 @@ + +--- +title: "Working with Ponycopters" +linkTitle: "Working with Ponycopters" +date: 2017-01-05 +description: > + A short lead description about this section page. Text here can also be **bold** or _italic_ and can even be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + + +This is the section landing page. + diff --git a/content/en/docs/Tasks/Ponycopters/configuring-ponycopters.md b/content/en/docs/Tasks/Ponycopters/configuring-ponycopters.md new file mode 100644 index 0000000..6f29172 --- /dev/null +++ b/content/en/docs/Tasks/Ponycopters/configuring-ponycopters.md @@ -0,0 +1,239 @@ +--- +title: "Configuring Ponycopters" +linkTitle: "Configuring Ponycopters" +date: 2017-01-05 +weight: 2 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Tasks/Ponycopters/launching-ponycopters.md b/content/en/docs/Tasks/Ponycopters/launching-ponycopters.md new file mode 100644 index 0000000..54a857a --- /dev/null +++ b/content/en/docs/Tasks/Ponycopters/launching-ponycopters.md @@ -0,0 +1,239 @@ +--- +title: "Launching Ponycopters" +linkTitle: "Launching Ponycopters" +date: 2017-01-05 +weight: 3 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Tasks/_index.md b/content/en/docs/Tasks/_index.md new file mode 100755 index 0000000..e43ab7c --- /dev/null +++ b/content/en/docs/Tasks/_index.md @@ -0,0 +1,25 @@ + +--- +title: "Core Tasks" +linkTitle: "Core Tasks" +weight: 6 +date: 2017-01-05 +description: > + What can your user do with your project? +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + +Think about your project’s features and use cases. Use these to choose your core tasks. Each granular use case (enable x, configure y) should have a corresponding tasks page or tasks page section. Users should be able to quickly refer to your core tasks when they need to find out how to do one specific thing, rather than having to look for the instructions in a bigger tutorial or example. Think of your tasks pages as a cookbook with different procedures your users can combine to create something more substantial. + +You can give each task a page, or you can group related tasks together in a page, such as tasks related to a particular feature. As well as grouping related tasks in single pages, you can also group task pages in nested folders with an index page as an overview, as seen in this example site. Or if you have a small docset like the [Docsy User Guide](https://docsy.dev/docs/) with no Tutorials or Concepts pages, consider adding your feature-specific pages at the top level of your docs rather than in a Tasks section. + +Each task should give the user + +* The prerequisites for this task, if any (this can be specified at the top of a multi-task page if they're the same for all the page's tasks. "All these tasks assume that you understand....and that you have already...."). +* What this task accomplishes. +* Instructions for the task. If it involves editing a file, running a command, or writing code, provide code-formatted example snippets to show the user what to do! If there are multiple steps, provide them as a numbered list. +* If appropriate, links to related concept, tutorial, or example pages. + diff --git a/content/en/docs/Tasks/beds.md b/content/en/docs/Tasks/beds.md new file mode 100644 index 0000000..4c5803d --- /dev/null +++ b/content/en/docs/Tasks/beds.md @@ -0,0 +1,239 @@ +--- +title: "Bed and Chair Metrics" +date: 2017-01-05 +weight: 2 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Tasks/porridge.md b/content/en/docs/Tasks/porridge.md new file mode 100644 index 0000000..71ef273 --- /dev/null +++ b/content/en/docs/Tasks/porridge.md @@ -0,0 +1,239 @@ +--- +title: "Porridge Assessment" +date: 2017-01-05 +weight: 4 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Tasks/task.md b/content/en/docs/Tasks/task.md new file mode 100644 index 0000000..65b34cd --- /dev/null +++ b/content/en/docs/Tasks/task.md @@ -0,0 +1,239 @@ +--- +title: "Another Task" +date: 2017-01-05 +weight: 5 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Tutorials/_index.md b/content/en/docs/Tutorials/_index.md new file mode 100755 index 0000000..df2584d --- /dev/null +++ b/content/en/docs/Tutorials/_index.md @@ -0,0 +1,16 @@ + +--- +title: "Tutorials" +linkTitle: "Tutorials" +weight: 8 +date: 2017-01-04 +description: > + Show your user how to work through some end to end examples. +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + +Tutorials are **complete worked examples** made up of **multiple tasks** that guide the user through a relatively simple but realistic scenario: building an application that uses some of your project’s features, for example. If you have already created some Examples for your project you can base Tutorials on them. This section is **optional**. However, remember that although you may not need this section at first, having tutorials can be useful to help your users engage with your example code, especially if there are aspects that need more explanation than you can easily provide in code comments. + diff --git a/content/en/docs/Tutorials/multi-bear.md b/content/en/docs/Tutorials/multi-bear.md new file mode 100644 index 0000000..0c07e1f --- /dev/null +++ b/content/en/docs/Tutorials/multi-bear.md @@ -0,0 +1,238 @@ +--- +title: "Multi-Bear Domicile Setup" +date: 2017-01-05 +weight: 4 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/Tutorials/tutorial2.md b/content/en/docs/Tutorials/tutorial2.md new file mode 100644 index 0000000..0cad5b5 --- /dev/null +++ b/content/en/docs/Tutorials/tutorial2.md @@ -0,0 +1,238 @@ +--- +title: "Another Tutorial" +date: 2017-01-05 +weight: 5 +description: > + A short lead description about this content page. It can be **bold** or _italic_ and can be split over multiple paragraphs. +--- + +{{% pageinfo %}} +This is a placeholder page. Replace it with your own content. +{{% /pageinfo %}} + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://gohugo.io) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. Vape migas chillwave sriracha poutine try-hard distillery. Tattooed shabby chic small batch, pabst art party heirloom letterpress air plant pop-up. Sustainable chia skateboard art party banjo cardigan normcore affogato vexillologist quinoa meggings man bun master cleanse shoreditch readymade. Yuccie prism four dollar toast tbh cardigan iPhone, tumblr listicle live-edge VHS. Pug lyft normcore hot chicken biodiesel, actually keffiyeh thundercats photo booth pour-over twee fam food truck microdosing banh mi. Vice activated charcoal raclette unicorn live-edge post-ironic. Heirloom vexillologist coloring book, beard deep v letterpress echo park humblebrag tilde. + +90's four loko seitan photo booth gochujang freegan tumeric listicle fam ugh humblebrag. Bespoke leggings gastropub, biodiesel brunch pug fashion axe meh swag art party neutra deep v chia. Enamel pin fanny pack knausgaard tofu, artisan cronut hammock meditation occupy master cleanse chartreuse lumbersexual. Kombucha kogi viral truffaut synth distillery single-origin coffee ugh slow-carb marfa selfies. Pitchfork schlitz semiotics fanny pack, ugh artisan vegan vaporware hexagon. Polaroid fixie post-ironic venmo wolf ramps **kale chips**. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header 2 + +This is a normal paragraph following a header. Knausgaard kale chips snackwave microdosing cronut copper mug swag synth bitters letterpress glossier **craft beer**. Mumblecore bushwick authentic gochujang vegan chambray meditation jean shorts irony. Viral farm-to-table kale chips, pork belly palo santo distillery activated charcoal aesthetic jianbing air plant woke lomo VHS organic. Tattooed locavore succulents heirloom, small batch sriracha echo park DIY af. Shaman you probably haven't heard of them copper mug, crucifix green juice vape *single-origin coffee* brunch actually. Mustache etsy vexillologist raclette authentic fam. Tousled beard humblebrag asymmetrical. I love turkey, I love my job, I love my friends, I love Chardonnay! + +Deae legum paulatimque terra, non vos mutata tacet: dic. Vocant docuique me plumas fila quin afuerunt copia haec o neque. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Scenester tumeric pickled, authentic crucifix post-ironic fam freegan VHS pork belly 8-bit yuccie PBR&B. **I love this life we live in**. + + +## Second Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +Next level leggings before they sold out, PBR&B church-key shaman echo park. Kale chips occupy godard whatever pop-up freegan pork belly selfies. Gastropub Belinda subway tile woke post-ironic seitan. Shabby chic man bun semiotics vape, chia messenger bag plaid cardigan. + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Liverpool F.C. +* Chelsea F.C. +* Manchester United F.C. + +And an ordered list: + +1. Michael Brecker +2. Seamus Blake +3. Branford Marsalis + +And an unordered task list: + +- [x] Create a Hugo theme +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Pack bags +- ? +- [ ] Travel! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition headers are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/240px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +Large images should always scale down and fit in the content container. + +![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg/1024px-Picea_abies_shoot_with_buds%2C_Sogndal%2C_Norway.jpg) + +_The photo above of the Spruce Picea abies shoot with foliage buds: Bjørn Erik Pedersen, CC-BY-SA._ + + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note" >}}This is an alert with a title.{{< /alert >}} +{{% alert title="Note" %}}This is an alert with a title and **Markdown**.{{% /alert %}} +{{< alert color="success" >}}This is a successful alert.{{< /alert >}} +{{< alert color="warning" >}}This is a warning.{{< /alert >}} +{{< alert color="warning" title="Warning" >}}This is a warning with a title.{{< /alert >}} + + +## Another Heading + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### This Document + +Inguina genus: Anaphen post: lingua violente voce suae meus aetate diversi. Orbis unam nec flammaeque status deam Silenum erat et a ferrea. Excitus rigidum ait: vestro et Herculis convicia: nitidae deseruit coniuge Proteaque adiciam *eripitur*? Sitim noceat signa *probat quidem*. Sua longis *fugatis* quidem genae. + + +### Pixel Count + +Tilde photo booth wayfarers cliche lomo intelligentsia man braid kombucha vaporware farm-to-table mixtape portland. PBR&B pickled cornhole ugh try-hard ethical subway tile. Fixie paleo intelligentsia pabst. Ennui waistcoat vinyl gochujang. Poutine salvia authentic affogato, chambray lumbersexual shabby chic. + +### Contact Info + +Plaid hell of cred microdosing, succulents tilde pour-over. Offal shabby chic 3 wolf moon blue bottle raw denim normcore poutine pork belly. + + +### External Links + +Stumptown PBR&B keytar plaid street art, forage XOXO pitchfork selvage affogato green juice listicle pickled everyday carry hashtag. Organic sustainable letterpress sartorial scenester intelligentsia swag bushwick. Put a bird on it stumptown neutra locavore. IPhone typewriter messenger bag narwhal. Ennui cold-pressed seitan flannel keytar, single-origin coffee adaptogen occupy yuccie williamsburg chillwave shoreditch forage waistcoat. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md new file mode 100755 index 0000000..d5ec96a --- /dev/null +++ b/content/en/docs/_index.md @@ -0,0 +1,24 @@ + +--- +title: "Documentation" +linkTitle: "Documentation" +weight: 20 +menu: + main: + weight: 20 +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + + +This section is where the user documentation for your project lives - all the information your users need to understand and successfully use your project. + +For large documentation sets we recommend adding content under the headings in this section, though if some or all of them don’t apply to your project feel free to remove them or add your own. You can see an example of a smaller Docsy documentation site in the [Docsy User Guide](https://docsy.dev/docs/), which lives in the [Docsy theme repo](https://github.com/google/docsy/tree/master/userguide) if you'd like to copy its docs section. + +Other content such as marketing material, case studies, and community updates should live in the [About](/about/) and [Community](/community/) pages. + +Find out how to use the Docsy theme in the [Docsy User Guide](https://docsy.dev/docs/). You can learn more about how to organize your documentation (and how we organized this site) in [Organizing Your Content](https://docsy.dev/docs/best-practices/organizing-content/). + + diff --git a/content/en/featured-background.jpg b/content/en/featured-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44c220ec05a9296994462ffb50f01f78a8c88d71 GIT binary patch literal 428203 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

GH}bd#%Pzf_Os;ou7AFN!S zxD&Lp;6wl|@k*Bh+d!|%SapnK-KV&}ix-jgP}b1K@oJcEi{Y+*8vXM`gw}8JMsfbMUB-VK#e}Lfm?VbsWS*r^Wa`H8 zdfO;6C4l|mw&I+D=}o6wjCy@;7(P?>?RfSQEmRS!z-qbosd~KoE97-Y$$T?SP2jIv z9ZC~d1B-k4>SLxy%41zz7be6ROqz~_D9PU65@U{0&o!<8zj0Mss)5vo z{+x(KE3P=g&G1`6;9H4lS&A=6pFVkD&7Mt1X`ewqv_KKG$6e3vy-`hi)jyQVO;vj< z{4dR3Mp9mKxM1V4?c%4BO@$@fAP~VVxlL*dgxh&q!5IyJIfDVuqkKEVkN;57w6V|X zs1eK9g1XnPJ5jT4-SO-3vY#Z&hJ6s&ygQyXm_{ie-+dN|?lgM8c3pz(eF{R6J$)Zb z`H$`<@IyIne6IDht8j_R3wCDRem7&O&>gNZ?HHV;39F<*8&ll@ z3AVTXK$|m=wTj)!aHtpDYVWQu*R4)7@wbP1(srZXaSsA}SKi*!{Cs>3`Z1@>isMhwye0#XNs$ z>%M3IWM!P4+TM{>QG1pEOf{mam_V z9kfiU+~ln4b=$xGK{7>CG6j8bPu?vhPXDLi4d5wY-v(H${}5M&?Su(9GyPqVn=MAu zLvH6Qc3y|K7D8hl2pRlH3&d;Oh~b;O@K9Z@wfY&*HFqV|Aq>2mc%$r;;&Yik&~ zo_|N2>D6_E-f8T(b`hn-ZEJ#Vp??Z{jHtnLw>!IbrhPedj=jERaBF;${*)aR=xO`p z1^@Oc;BU^IPcz0&$n7;zu66B@w9G4(kKAfAfrpji)RC0c-7w^g$`=$tXQOmIN{`Xl z+gT47i^#vISwZ)<@tNaEwP{c7L$ZK}JW1osO^j6oE>u#tHTU|tAX{Rr=!zb%Io2>W zd4D?ijs;8A&qa8A5A;wPElCrMXiiHTBC*IA9hwL)?$+n~hDN;AMj8O_fHfrDclyad zv~R5v#VRbO%>~M>I#FH{^6ZLPrgFnSo_A0j~@UWKV+S)Dq&f;3; zM&{!7T4z1pLl{G1)9~RXckGD>$3+jTXw{IH;)Z(KBFgy-CYTTxO&a)h2ViRE4s?8V zz96;N4VemPT?O>D7dn8dUeRy)>cv_`o7E;OzcBHQOc9!fxIYkeOYqa|*28_$D6|nK zgvzUCWZWHXi)0XWj_{6=9SsgB3OF%SW+E#ZLUrP@?4&(h^$X9_NjkS}Yy*!Bja^&P zp499|sX9bxR{Ez?I;zO-MSfBw*rR$`grVJ)P1{Lqig6B`?F}#Yu(YLWv1*2B39M4-K?CBq z2YMFCGH<8#B@$ka_gQ9$^``EKFWHnv7dY*N8}Fn={>qu}E<>59BMVgVR3u^o`{)R6B-A`Tos}yIE)N6io}xW?W%P@FKz9ql z>dRia_5A*~3&-42^^500k-yBbK+f=xZ6v~LfOFJP6Ea}>M?e>EQ{@coOG5X@9NMH< znhi!d6bks984`Tkej?sVv=TqODHvgrRS;q0WDH~!8a+vBXlDd%WN9JpqrYlP6 zcq;WgPsioFn1oJ%!-a;%Aq8DV&ycR@qO}5sqbp^GyfI;pt+vn>C1M?jwH-35yn;XtexQn7|wyYG5>vU4!F_lzPJG{DzpxT(MB3J z_iw#QlVR^g#Nm6VseV~Ur(5?XxMnU#u^v+cw{O=#q$Y!8+Bw zv~C3PW);2)qXL@y_X}f-5Sz6ai6Td`eyT+FKCzm(Uk&QJAATv>w^Ba4xgshwpVYwZ z>=|~W2zQus#d|iL`H&Yu2_=2}dnMEk6wVmklV1#Qso~kEEbWB@WCGpq$KH3*Z7zAc zs@+E|4}+a>LOm!S+c}dVt%%5W4DgQLt}hh2bjrOsN^F=e8kJS^aOXBGD7^jNInkX|)5}U^BZu01 ze^C3{latQ-T?_BZyfC`$i9en418rN%Z67F~*#_`*CzdGp52eN(v7p?Q+l49Lr9SJt zTEs7Eh^_vbDekKoqE@_$l%Vw-HrK~7-4vIoIFo_nwdp6#XkMhmtOio44}nTp!#&I^ z5ud)3WN>i#T%8uFiau3wGSy;^eGgiY4DwB}OMnq<)bCKiHT?t+dbJ&G;|&Bv5c+U?>(O+B2AR1b&W_ggjhx^hiXR9` z8>XsB&{1+*;w$%SQ~YktAs?+Pjm^f~x8)+ZHxEBabWvN3%2+!SPe?5V9;V|23TNDM zFiX}y^XeXy|5-0;lL782FXIachGeD=+^BXh#x(z>qE^qxeEZaCDd_#DaC(5BxL|9l zxT1%e)NhTKVAlIB!3{g!swEdU#ZKjjuJSoiGS^)1i0X7fn~xa-(pxf{kCTND zeA6_pQZ3zp70aBb6T+`!Ux(uiEQAkG10EEVO_XX~&UbOPLAZ&`2I(hEm~1DxQ~McI z!(7`P`AQj*&$Jxz{*^Qe&PLLUYMT&84jCJ98gpeYIr|Rj2WyDYO`~LY-tq20P57Qm#}})4%GU4(tMxFC zEWGKDA-tY14evH9ocBZp7e8#Drq~5ywrnghg34i`Dr1Ag=sI1n2zRsp*42y;!K!Rz zt;hWBu`vl$UQia>-^q@bdq6q7F1UILwi7e=sW2ws>GD_WBtqZEsJIpT-G3uOM2)9Q zjB>HOv_5$ID?$R_v_7pl7Tx*xn=e_C%s$Ir>A}9VZ8_8(5^U&oJag)UW~``UwNsEFUeh#5Aq?{)Rvrtr!`YqUfj-z*;+Qv{+hNqR92nq% z?^sDU+)Nxz(R-HTYM_tK&ZSSewX-@BZ;g3cmIWi?+ZN3qwFOys*!fc*>SNOKdZCK~ z!I+5D`*9MHQ@0~jqgO-Y`f*2-FE0n`{(}eidhw5kpkGG?ef+y2uJL!cXTVdTgIAP_ zw&Gc7hawZq7ol8HVTWx-UO5OBLUc9bJ_!{wi1AKOLGuZV;RKo^03PQ5NNZ09FqFA) z9`jAijj2?&hPzkUYJGmSS%*CFYN~;q42iAmoV43J-35}ZV3(tw{i@#1^=o|~zk@*~ z87R3pJsLDj)$dn$MM;DC>2$t+-w2PZCG~AyYBcM(npQUFR<$WKwquXh@7~M>&)9`* zA0=hMti4WkQuozbJu_VIzyd4Njd&@anno83_I@RATzt0Uy28p<%gXVjI_>w7WiT`!^9w{#x(H%An1FXS{w++^f3`%-N3Jo1Gj^5axr3Dsu2JH}A} zlGEKL@$0huNdNl?kH`pz_=3U3*SZn|VbIR5Ea;q2>ofLQU}!EjfVb4@sv`&)&uq`_ zO%HW;OV-)pZ49EBQ#Yl{56U!`42r8-SX~K=*&7@m!^0Fd)kp(FInB5tkA;ezA4)o6~ zkByQwj9qq|qT(xr7rB@a@G*|*J6{$Ihju{wI#(-=4IBL#p`Kas(|@UeTo0;`1_w`Z z5=1zwOO&Tr*|%B%jdrD}!z%w3=TvbbDiwSeP|EYly}0K&I#%tPx;k?8+4PI0nH#+3 zBysZ*T||$pW#WoPfLSCZ>BO!$R_Pw)Q>lUm{f4jE-%XYM-1R2DYHSp&h;dNS4o{OR zBmA8ikypZPD6|)PfntbGSO?J1);;SBKvubmoIKBjue6Xv!;IPNW1-?|X6gIGzkp2w zwF5VYj03G~G*#vyC83GroZX)}EOIgOoHvhn#W>9ruugW&2b znHy4%$x$jO?jvP!P8B!#?9lB4@WO8Tj-gx8jw+=_oZgyefAmH_Slp_2``5&;svh1( zf$eA|udHMsg&!qrrt6lw!%BSk=nW&O)9llDp~SWZurlL4rCpDw{zB)&`<8}KF&EdK z%yo{>zeCSi3mu|ndtA=e6ZHEE9t%5sgZ{)Sf@ea=4F9AbSBDQ9)aU zbk@QIN>SK*og~-P!HfYwCoR+BckTGuxPve4VFriqwWFS3>2ny}0odbu?Bxd4s1d}j z>Wo6Q`jTBeLjs=4Ma`>?;U4*z;{=y%N$j+1lP&5xK;Lztpdsa?XwM@|No3uS(~3IUAtTU#@Jlx*(k#g8lpaey zwAh?cdp`Xr%wZG;ReAjSaH%?J%*(Nfq|r!=4R*20tQfi#0K>?Y`^SIj8p2^rF{9cL5YUziNG; zFArB@5CtG%8?AlnsX&y3z%eUz%EZ)CmSs$tz0%o;g#k+n9!OoaZ5|kKt4;B*4DV#> z)9LZ(C&RF34S9L_kcxSOE|sQ*Pu)d4N7w})D?k0Fuh-3cI6lD~BU;r{P|O7Ohf&mr zy)7HspJEH!Zu-$`xR~Q7(4ByqiH^sPSE?(*p;RrWH%&b!xTyM3QFAXUJ`WsZ5D?TyV#HTT?*M($Cg{#V$e?Il zr5xHf&x`r3Il_QGMyner*uhSvaDt#%Z_pg+?HWkV?jY00cLn!CT+agZjBuwb-{T|i z*PhR8i85>~TC;)eNxb`2wPVD}AjV=+(QSav&dPv~fW&5tHNH1Xh8UpgNEP&nSA^W# ztl6EiJ0^imv0qN|A7sJzYyvy@xu{#!3%ligyFsXaM+~a;Tkofk;-&A~%d^Y14ZrO2 ziJn|bCR{U(i&q~@9C?lnPnlfL=h@N=`ZA8(1az4=jL?y`7Fd@1fwH5=8mFOWiP@39 zp)b`ne$_&1#U;Ck;aqWYmFP|`9X$1zwTdi#w>zWT-h6_EDZX-p!Tf5eh>i~aXlpw# zt?8{u+uS4U;mHKPrwaRHUI{+Z-|Ks%-w*LX^XfjZs2aO0k#{ZgxKbR<&1*F0kw#o} zgZZ6r{PF@mBbi!Kx<%In?gLnFC5Pj@+}XPX$R3j8S^rsb$8)3oXv<;qq?jX$k=zKZ z3~I6tTC$P)3q|%iD!|cKFEIHBK;H^ZQO*%<>_A>Wsq4mSf0-yA_PW$uxm;eRX^{2H z`orh!V@A-wYmeVRa0`Z0Ed&khi~;rta^z8`u(N%exbA4XxI~U9`6q_r*9OMadFUI7Dg-&=XM^U{1U40#K&oGe%qB&*wW=Oqm+y2`B6QkDqsEAqm2Chu@y43 z%Nm@05)wt-mCS!lQ6a)o!Exk>3gbpv{K|U~l2SpOYSi2rrgGYfwTQxEM{fuT#vN>m zr$wB4xNjPmco8~u9v_8@+T@#`spo(DRC3W&&SitDjfiNhldi~p{XZsA7EnGvorTpS zj)3k-e(BDw3}2Z^P8F1K)G%2&r>zi{2LZiKZ;LGb^t5W1mJ^S``2~#2uCxHRbPNj@ zU*10Y`INT+u;?qHAhlIVQ0ml?V>SicBF(l>z-gqaeBXM$(6U-*jwZ|6hP~a~psn=r zaYv0=&zpJuT@5$x%3u8HZ&b?Q!!k?3W1eHcNb+8w<;U_?q6q3Re=GXG|M}w7#KjXawjZIrj%kBQs6M^RhA2ST0%waFOvV;20S6iIVuF zCMw+$S7o*0-w*b2NoTircCL{2F4f~K?^B*tJYVcJUP*B&`;WNLeMIE z#%yX*!mGk`#9F6qTC-g%!moYL2bWY(fWBPj5}uKfY7mU;t=Yom%mi$dC!MxT7RJ5q zq3U^JfpwS&Ll0j!vt3m4D~3|YQ0!H7y0UXq)@pBY`Kv8s(-W|GqXQyu%&X_YSmmj{ zU4c$*_{(6!v3le1=&bg*_uq@ls-8AKr)-d-uYZIw_Qzz>4`S=F>Vo?~{oo?RPJJ;@ z6MC#&X#3OT%RLX!Y)N_WM`~q&1btlVW9KZ2QN|_|$&IP3Q}0<3V_tmi-UC z)w^ESNvGkd49mj%6UDO>X;7~DBXCq4Y;y)i5nAY=Tux`I(H_;=&0E=_Wjz}uKu!!z zvFRLNU9g&Lq_xBI!SDnAk`DoxF{`6`d0IY0p{Oq*J&-L1BPhN3@fu@M?Ev5O^*!Va zcNEY;3(1|R&Se90nB~~0iDn62qs!hqSF>N5{6?KtwJJ~&)X)phQ)W9_?DnRc6GeKsm<2%Em? zr+Pdk@X=k2Us=96^(3CdJ>xbM080xb;|I#9&cO?L(Q-7;6WS2Z-$+&CwA`<$GaXgS zP>qiIzf82JVt%(X+QI&;gYeYGe-_Zy{Kw4^yZlLpBTpeKGl!N>@g2$2&y6u+eP4NM?9gxkkU zwHHQ2p>kSP1jbYiN+2~kq2L-|RdF$)!GP0JqE|jN8NwDh{W`X=fyIpg?gNdj9^1q~ zLtZ68F{@j2UD8vGr>k=*zB!Il9hEtU9G88+{9eZSvr^U&X;$#?KmFqEeEp8;TT@1> zw)qai=U^q?5Zg~EDvOGbyCvpuMRDg(qOm-v>xN#(wU^@7~38Bgyi|f0nK?xu$ zX(UnF!L{50Fw3=qcuFN^0b&!owE3f=F@W|wb#dX6dfk?9QU#sN{K32mBH^DPKnj1>T$kK7!l4n8-v5ECp7VjW1Hx-If z-bGX~kRA033*T&lJ#8*1mgsc`2Op(+7ZHy+HZfm~8U`JU(fhx$M^tXtL&W#oH^`W{ z7K49ZR16*3=j>6MA%T<76A$eSXZN3ApC4;KAWIOB7WrL!E*DrTvy25TR6xu10uOqo z8Yu7oDs~k>C1y{<3+_S)VXS;wZE0@zJ(~DZcw0Hay>{QDjMbKVnv(oou=X99jaoR2 zxI+-TRYbcY{=#=?))wNz|NjB0Kvus|BC$%oq-0v0qos^4b}1~14&BX7PNL?(Iu(*J zC_=^JR;L!+j8pTW+~Ojd2(fCMCYa8xglbb#VELiaG>I<*lzlTwG`A)Pp!7CFt7cN$ zHBG|hR(ka2VrZ<|Y69mXYIU&QePOWZ4)xJp>Ski!a+)2zoac4w^ycP}A8 zmqp?=7{;G;N{yalEorsbS1Pf2kywXH(VNpt)}AugI4TJt^}Wv*Gi7Y7K|2hxT2d5? zSrU$;QgKeE$v(M^9F{g;QgW_s#xhr=rmu4uB7&xX(JFElt=T4NDXvv*D`l#R93!N> z7AaND6joYT>XY^rT+E3F!Cw-%OXFflIG*E{AFyR|Va(%O=@ z&M9*@U5X8EHw4CieYeYmb09wxUddOr)3+&-Y^CMl)&Ma?ZKtnv_xrg?*G zUXJ6=MHLAP%tWV4T!|p}u4`iY?=4|>JiT%q$4r(%Thh*YQ&?s}*==qyo=8z|sj>#S zUIStswK6nkZtC*OT*A;gV|CG&*8J{l6syAsu4xI=fEI&PWDP^dOVKqoYXw%8@e)P6 zfvZ$O<*kS}us^33XjMA!rt4J2B3OrlBIjN;d0k zT=sdBHuctYw37F0+1C_WSpfB0=eT6~kyVhnwbJ+xre#A$#o}7a@6o*S$?LYUis+W+ z$0koxD(99{s`&vC@2cqUpE?#(jYdf8$jS6ltfaN_@0KrPMi)h|$Y_ZbP zyJ5*SIoD=djNjf28S{008Tdt_9wHd{26~Xb=kj&z~;U=q@ zcR|wn=D%3hHCeIiE8Mk|;*mK?Ga9piIvUKawap#KZp*q2#2s4CG3yxJ^`n_NDbeVB z`poH-cG>ck>T{V(BFzqZ%-p9!WYH4D2a~Cs8Xx|0&t*UGt z8@`Qvb#7XfloKgmC|MSrC3Z8UXHzms%ut@~H>*yUyrPetQ+l%FYn3cMOlC0`6xGz{ zx?Sk_{Pxtn1}9_jwd*=81{+w#iz)+f@!6u(y$K^r;>9}tubOnWg%iSe_ zlPN=Cdlw3;TNWBx*%FRBSux7Kv|NR`d}?lMt#!OoWSPkIsm@m1(c?vRHm!1OQR^Vy zmFt}>RoSGhV`A#7ow6j9(z8Zwb_{{ej|^m%^p9%P=B|wMCEDcmJq~e@Z_AC)Su{9l zUBPpi-DZn+(;hc)(c<$xvpw`oQ*+x`)@NLSf?Ts9xi76PxQ6mv4VvFQ)1}Dojf{8H z&t@VCP)NHuSI;`Y(2&g4IKcI`)1?y^-tT%Tjttd$Y)!4ICNs5>>8pok+c~<^ zM4=0GgUGbPvxa3eV(yOe=u5~}S5o5{QYem@jncpp9vuF=X;@_Y3)Vs9!V%)Nqqa@}w^p{6wSuEA_Yi4I^ zM^8!5(B!v^#HuVIc%{Bmh|WOOU7N~FZ=#!(2{mb&tvYm-8x>ihGo_A^n^;GD@3|Q5 z=zN}Q(Bk%VqKlj{Lnk9r7E-#TA!sF6Hqc6484b@_+LhGL>2FMAe84TUNg*1(SLqYn zJT0Kd_+0+-lSy{V{%blGY?!Wc#XC;T8cjQvFJ_J;=v-0QT+r7SFO*PF!rL(vrmb5r zIUc&JY)LkfL9GzBmQ^)6ubClkhJskB<`+!G8#=gr#deuZn!7QlS(Unc$+T9R0dF@n zvq56jSf@=6(#*NX)lFlZbNXehb-bduy@$p{po_EybGA0?nbJ&B(%^Qf(l?fMcCEQ( zKBLN6uSxSJ54RxPJi1M0!i`yE~{WjiuX=i#F z(ek`d$G&{doaZvR%XqyJ3wEr^wz3*(6wUSWF*@ZfpUu+et*{GbeU&DmLm=zEvVQ?S7rJQHm6()HGGyeEuB|gBYdCc zfepuTLtP5$2D_zWm^+2Ww0YZdqSj4OK+%jvx=Tb}jm&4*)@?M57^6bf$O^WkVBNP= zl9bOoZ7Ut9Fw`RDp?x^D(I#qz&Vi)V%UK~J(!|*cJS?Et)@JT#;$wBO8k~yu)%ldT zb!B5PyQrb&sjb>`6EA0=`cP+|XeG7(P2LdgUB-DAnl9k(n8juj=`S>%u}L$!-nXhKL`(0!Z!y_HrlJG6*>#c+ zKn!!C)1QyS$xQ}*;d|5D7B^0?qGGuH)+YKik_6*CPlK?U#^w&=^pvfq&8PMv3k+Q zqnW(2eF`)kWZ0CkUENMbxvI9aGph1iM0cSC4VYX)EM4C)dVt+qd)3EXu6t@ylN@wo zUm~nhLSU|z)V#Bxtu(h%{WE+7R_V@JUqNm)&W~-cB@Tq& zNto-Ew(RYGkQ$wV<7*ey=-Ah4R>hH=+l7JK8PKMc9Yr{;t4mLb$=11=w@ABIlai%ZbCo7p9WraA>q^COtt-(Pg}UGZ z+9A^Pk2K#otK~0ZK89aPe8l!*8pOP|hA>N_v{OH&6|6}yr-@5r1+)iCd84{)W24#8 z;=y8x#x(N+@_}$=cI?t--s+ts>p9xhq|xT8UsSV5XqKhYv0YsrS)9Ri>KTtq<;9>{ ztin5oh=UcEH=|3DN_U;%PO+FjIv&xEDq5|Rk)>O#TEgdCFW(_kVl8R3HYjy3h4X3B z7crbr=-(<`M7CQ&?8iHw-k%xR^HTE*Zs`}I$}0-F)=t&ubvY@esflmNZN+-S-~m0z z31}6p%+E!xTD+i?kiKc=Sm-w}^aZ3&O3*A~SSLCbg+-`^ur7M3yh}AKE#GYLl-_Bo zOv24Cy+&k6J;ge;`E5JQI-*v&#<}_fuQjPHjWi9$IYu<;vu8&`GLxa}xxm0Tb^MH< ze>J4e^xS>ca}AlR$j_ROra{(g#;U)CUsPimj!~LzIhQo8Z4oYu8Ub zbaSSqym2IzkvWWuVbc+}F}VVxLNv#aAckVzw79&{P{5&8}$dM?%7#^laoiqevNwKsJkX z_{Dk&&DwS(?Ee57EfucpQ&yI@${s^In&u`bBhaH1R=NEK2frDto6vWj!Tr z9_aH_>z4V_>ob}x(k$pi1((t=Q?9$74bMcmBnr`PtS=y zY;(~T)h8~j^q}UnNphxibtwrFZR1(|;Ja2J7Fbq0EYC^qMf%#2vr;9i zS}b2MHLJ`DzF0uN?(xMnNvzD7y*dtaf6o;3S8!7>n(7XiCNpeG_35p~((eziHuDXf zo6poy+*#wzn#fJuPDO!Sk*=Qt22`X%34-Zj!~cu4NXA4wFO5 z2SR;o8&=cfBef2?ZD6gi$J(E7F3c8II=b8N+*)fk^DG?`{T5<(b;; z`GM(ncuJ@Pqj_goSy$;1>~D#2exinjI_aKGPcZmX(pMQCj&m)hmTfC6uHkC=D^sQN zwA87YPQ*Lcu@|an{{Sk!PGH?*_JxJ^maQ!rG%L7EsLULJ>#clgZ1d}-^qHGTXGXbn zTXLGr+#8)orD$5Kb<8hI>Wft^NAVcMwqrSJc{VZeYNPHc0-ymZ95UW~b$Z0je{ zLAb(`jbETU=t+h3E3DPON#^438n)HaWEF7G3azW<)l|6tNaolzg4HG}`;@b?HMyPc zuaW{)JrF&1?>yF+gx9v!#A7UaN2u9y-6t}@G$$}R(UL`%$A(KmbX{U(&{Ub+Qxa88dlot1MPbSbs%7^9$MvYM)7Ir4rDf$5r(?qYj2B9F15Kw zYu%F=j8o#rNuSnNO*~XJDWm+^olkLR^*xGw6X`nWsHUu;^0`#5dW!RVU1vE-k@UK} zaw~5&d8*5q=*9DoN95O-^-Vl#*5>xjWv@Hx`A-w=nLPxDF&O2SILo?M5}mRgQ(C5> zif2;HYPFZ3@@vO?vYzZC*f*3!YT37QSag3oVlNYKBm-D030!t@6Pg>tcq^>bXEjSk zLmM2eZC|!aC?M8!l;@yr(Ua-5*1@Bhm0wBa=9PrV_duDw1aPII&{>UhsPv4(+{?{Z ztUon2UjXdp!py0c+U)bD-O9#pu5lJzzVS`FcUKwKOOUoeDp!QdhzBP0$G0jZZw8QTSn>1WyF4XxSmaDmBqR=Lc z===} zpEoPDn|3)F=1W$cCeNIP=a%)-Qg*YGd6F7a&X4D8K~?P2%fuYDh^RznOEJ?aUS!EF z((3Y#@bx9r#i5vZ3=W%!TU2JDsUi8h zQ&TC;P6yU#@h{qhn`tAMXLNSe=TD+?6EZbR3TR7I=-1;kd9r$t+kc(K*gCADdZ})^ zjEr|TRx@nh;OvQ#^%<7gde8J}bQEIuyM9@rm1+JVYFj$zMY?6FjP2_~nQM&B?QTYS zX-!1?1tH?fT0bM4;OJsMBv%2!p z<<~c^1!a0uRZ1fiSY4OV2a-Io?Y#buN zz!%|s2SzQ`Z*O_gR=xZWidU9O*9**WF z;H@5wV&ipYb-LW*#?BPx%j|O%j#9{}Sour8XViFB9CM}%veKhm7`zBt+= zDr%3ZnG@5EUSu>BXk?FKx>gy@)ZtL-8z;!S02Zj|*_{;CDhmxL&Zi)@sDZWo#VXM| zA-cv?qR4!m=E3ypWp-wkb`D7yrO`@Pb0?djMM8?$Di~q> z>Zu1U4uJtd>RJa#*s}^=HDsvHD-5kE7X#BziF{>2+|>ee3{Wqk?49Xw*_8v(Otu5oV->X9*XK`_19+iO3Z*qGY!Q#CD_gffhKort>mcswoGzg zS4Wjga^SSJUPSt6IvXarPPaFtV+|ZFttGgrsm5gYF?47zC`mJWS2+i>oaHO3kZjQ) z`q1i^GRe^H8Qp5M%vmZsh>nw$^+8&^RHf=E&R~atQhRowI%zFii|Vi@6?qk=WDT!z z%W_Uk=F~Q5w_fAXZr3lS1FX)gS(Rx`>MCW`&a^SD3|6yCP;p|U5OF1rB2iH6p#t^N z+Qr$$*9z;IIhe|*wt}rcJr_tFN?jU33iZ=4Dv2hR)}Ly64}qY-&VE4HL9reA&5O3%$_uKh!8ry^ZdTd2-ngPNx!ttyJcg}fJk}BDG+GtYTa-hs z0#?>??3jkR3Z}_DOzx)nQFNf20#iykxp_COI=`e;KYEV z;B4giC9|Bx2ew~ID_q1|SJCm#A8i9wdXU+ar};uyT-cBrJBT|+KwHDP15(x5H6ofc zqk(0m3Thf$?Fw~zY+pa2q^zrMaXGZJN01u|Qs}jpyJlvRHJxYd9+R^ot(&pUkJyH- zG&W|33hZQcJ0@pavFFU>ms&|2#EjXdV;s{Iq`D826bVDpGaX67yIM4P6t_;E`GhD`b#hfYR0pjGgkXajQCIYX_O@Ym`YehMPPW z)UIwl)$w`OyFT{%UXQPMJt15k1!iC5lC$2 zZB1-KN}YpLwz$k&25~G8Ky)E%GT$+HEsZaj^y_1WVvmrs8nteeR)$Ru5PhxjG`NG@ z=O~s5dg?m5oHH6ZmUS3&opX%K^oAQCZG2wb&(PM12UXUFhn9%uWi7NRvGSavgQTR( z(soUm{cgu7wPR>U~i95wv=#qWb+^tRoYSD+ez zuzS)yZKH*?U&Oq7URuO<0hiZ-WPdwr9qX<{n>H$}GOQu)DXyTbon{r8bg`%Nq6931 zIFMzF7b;Y$h^3V|Lu9k(_vhNrbT2*p?b^t>!QK>Sv6b|98{P8dWCv?{42br(nqx6~ zDqwmmIEI7dt&Zdxtc^?6e1ofdX(0BzFJ{LW9oiva{8j1|D`_CKY)O%oQbDh2)YPqF zDFxI=RM-z@@u^I%qK)O`eOqrau6ZV77#f9|?V0+zSsw|NZjfCKd8*wqmwg1*^XA$@ zrP4RbM5^>JyQ9ii4%rTs$fjh_#JW-H%o8)WO^7{SDGy>PrK%!gm3oXr=37<##Z<6t zGrEfo!yLoeeIm^3MWxnkE=uoGqtrNp;u#( zUDt8Ak?u_1oWrT9jR#$j*EciKyxy-)moRahez|URg)+O15WK7*VoqMNPAaua7dW9p zrAaugBXJfxE`r*{b)1JkE3CwfXJFoUeEFVCk4cPeev-&7Uq|Dp_0DfbPkVU_29-S- z%ne=`iAu%vt_G@8(ZDkZMyyLo7=lQS=*G3K=aHikaIsrc(2_ZjU|lWZA#IPA*9no* zi)vOsT?(}^BPO}Ux*gzOsks@!$i8)%+A$2_TPU>9c#LhEP1;OM+82G364=YRBcrHQFTSu}{Aw_Lbyw0i>3z>MG*71=_*zXIE=!YXNdr zh?Szn7pTZgCoO+HSF=AuL%izSjB{FDe?GANlOxbqqS;qhN0iZ;%+);0Jm+UrlU)++ z*;}7WooD&kou{H6y2qE#^ybp*#B=tw;@s7RJCcTiO^ijj7??q9!o)>G8rnoH6lBw$=pg< zOrqGfB!8ONouVBq+i2-4SIe|wRuLo}tz~R4v?%OO$1*Mg=vv&al|GhZLo-8^wq0rX zWnT4+$jxOOf$6K}t8|N^x)*v*Ml=MDu6=3pWO_7w<|CnfiG?>yn4av>EfuWDg_q49 zg$oN(dbSFUW(b_a)v_#8RFVSMaV-~wx_}ZYGON<`1F4*Yp$1_(C`eemhRyW;Yl+fD z8v|g!VDPS?ZkFgru+SxDNyY64W0ECk<#KIpV=s5t^Vg#CL}t9tqb=`ydER^X)UUzu4a>KF}LT)btm15v9W)x1aX7ttLWfS0zZ04=QyDZ$HT zEvk5+I^#!_6{f=3j%Ke!3xOeC#QI32?N6oNf*P zbDy(qY2&QOb(yQhgG7=PB)2JH2_Ugj#~e@@N}*BOu0mziO6a_iT&-mYDlANt2r&RA(nv{p1#5Vfs6m{jv{clU zla@+ERRB{tLKjwYS9Fq8wYmGPV=O^)E-OdL?q${3B#;81#U9toC$w*zrM;$}7~QJK z$2ogcv#lPhSS`|yN{1pXC1|#Q7K4D)YPXqErGb^A0}TQiiW*po(%P*_Fg;pGJ8MEX zm6Gx`B386;3N)s~9*^^@YcF!S{bgfEh{~@(wg$ilZ3ponPo|LRcX;O;t)lult?qR% zE^E8Y-LQ7vUZ&qY+ED5xtnlV^cyBr|NP-rra^#dQSfM3IC1oOp3eHoc%1vbD$d8^` zZE;t72DyT)H_lSsJVmK}k0Elv?WiKA2_-5?3z#cNP&AVga4>;Lh%8*RK;#OonQX}2 z9i_}tg=;1ASVe4zu9_S`=_cDkI-sK4G6Pl2$Q9b15?w}_%P{ocU;s~om90;LGsRfP;VJzbIXH5C4#*-k`i(BMdUDoTwWh%%p#RNKD zf*mD_)u6I*QkKb7CQ()*TY#cT7S^m6Fk>q+9wNF3XXwmU8AHWs8(GZE>8A50LPENr zwn?H%7RX#e$hNGF=3fg_7zVn*XiTeX8G_RFtIeNQ9nDr{K9!h8t*cvBvH%4vP1j7+ zG!&pBwL^;31Gk7cDPpl|sBFjsMp!5Yq^+fr2sq%8U{q4YO2-u#3z$&37E9Zqon&0n z#J5DfXy}n^Q`2dEpDvlzqnfbXwU>#NaAlXG!6S|?ML}$ssue6)vBk(ZgNQ0{8Woh3 zWK@Q+m=&H+TmvOFl4Q2)IW4U#RIrCt@~xe2cHITcwFc8kX(HJwNiuY_vPoDtg33KF zAz+emb%`x#)r`Stc`Fk_k;oXX>$#cQwJ59-D`PpOAX`gGV3~uWM=5e)02E$`Mprt* zs(- z4=jZ(5=ml96spC`5L~%nWRxpVLB&A^i%>#pWM>|Krx95o#-t9dEki-pmI~?u(ki-_ z%)C~sYZ%E@O{$lc$4Lul9+!ww=uFDn6loZcWmeKqn{RC(fpeOWq)iM!Qo6SWC97y6 z6<~zr6>-rtOu?29C6?(jg1W61jza_iM$3?yXyA^6w)QV<6{-u{BvhPKk(nqC*dZxx zV~DDqTtOjVbrEoc5LgXRlB*TSY^hLOf(sKCIJqFg6)rWIXnO#{yQ^slV0Mn$)7G-2 zmSrVYC2uX`l#m+eDv}`L>S&miut+?l3l=!FS}s8+5J6%E$f_Jb0zy=otfu9iyi%0d z*?`q%5!z;=L0s~d#Pvy;Xdae>W_7D+Cl`s6mxv^#S!F40MkE>Ec@6e&cLqMBMsmbDcGgo%@ZTh`1)khYNO6oTbL zKN~J+72uR}O6;dTil`LK^LS8L&#$f8OR%%IUE)yzM z&RK=@vaeOB2UJ-l2_e)-CFHfWN-Ppmt8LJ0V6s%@rIwB?v^uCsCF0069-K@`F((pM zk0(Wn7FamsBsZCxyVYpCO}e_(m!g$Jh?d7i*NT-$C|0DBBdCyRre$k2jMpV%3bu}} zh$ND=Fgk(=D^`g(5p~W*_kkGQIoimQ$}1Dn#FZetgQ+GWt8B&O`k!dqHtwAIbT0%rEYEoB=Me33jYC%(j z!xAlI%4w5D)h!*&qQJhaQ0?Gn5QK=T#qAuIsVWMoP(t-yD^`-BB^8%giK&6<1)@vI zTX+>oF~=NOv_)Pj6d5FxCQF5mRW`g>*l70Dh#3Se2rg8F;7dy+f=k4$iHoh_iCfKP zTgt?@Ei5J0Q;4W22&GBIOND|(iK-9~t#rAXifapM0W-Ikvd7$rIxSLBD{RTct!iYv zR-oc7CQ^`At7)?7BCevQGXY$zsFJc$j}M;lVl~5n{k~M0Evh2^j@!mXd`_1E?ubR@pBQbyPfnw}M2R z2Dq^?#GF>3;ucehi^Nr;D$&HK?7Tr@@fAV?R)bFvp@<=1T2TI1NEkLZH`%L*|g;C8`ffmV$_CF)vtsXCZw9K5bL6EoR6w|HJ?= z5C8%K0s;a70|fyA00IL50|5d60}&DgArm4o5F;`L6d*xDGcY7T6*NOo1~vcM00;pA z009L8vzz2U{zKl*Q`o=wjAZ`+41WPQpSF6y)PMdD24V&49UrLr<`V-=`X*;E8K0xE zSls+hMagg$RBJB9n6@~)nw>xUSsQ+(%r%qEduU_Y5uW~;FswNsWEq)^&2c}e{j}Y% zujtQ_{hr{T*Y))N@hY*D4Cns<$ZBfk({#kd$MD3&)?#8}WB&j>W+o=FhfLU<>(tf8 z8@&dwGxWs7#K+P4gC;17vl9>x{CrG7t%83NrGJvCWA$8ZeH8@%06#z{7zh6V{2((i zPejcB0N_5EfWTm}a_qrdn(WQZ@{2=SzB@JHKOWV)i(S&LI#i#=`}7<>PU-&uzrf|* zXs4C>fm=U$cE;^;`r&g~&L%#%fnZ6jA{mK^iI4mMfngCuA~2UOM=rq6#^f5M7Td{sINl`IVq#VIeqqjn1GZQeG zp37(I4{b9$pV#U3tvsaVZO!=@nn18G)QPOtWB&jo6A_}rENxKo)%g6a{G4_I$~d*s zy39;WL~V@3#MS}z$Nsqbt|t!K7S4NC$^1C{+xTipVg_g8*IDJUD{BpH5Akl6-bI#$KXh|m(@z`5 z{{Z;4_153N8gqGGdo+R*JZ2Fy-9T-gk7Ys5Fc9FH_BwjyG!67$Q<5UK@sP~-oD(q> zHiTgR0B7WgL_b0FQJCG#Ok{mLu3Pl`wxBH5WB&l41QS2P)D})}55pa>+*SejJk7Zv zf$H1Y_TO6Q--&xYl8+Y0i=?#yVmsp8Dze}DeL*18 z&9xS>S@o(W(s-yNt!tY->DB~V$;)$HUwjNK5YEj89OZwa`Oio{XegWJ0=;KT7uuvoPJu{ zF)W^dCU>&VT%gW@}Wf~Swr^FphiI}Z|KT@_Q>S>B@7YHFa z`me|tjfIRoznB@C!aw>$=AaCERLg48QAd=HEn;#x74Yrla_qWmW}(;i?9E-RYuyWa zkZ0-kDqfwT{slu0XBnxnkYK3E{Yk>omU5z$;#1AAHzSA0TV^LF?fD#jNTZL<=8Gyk zg5nb5x z&SIUC-$}Gnh#oLq0PVg&&(Ve>E@nDIg4n|*W-$w~1C)tda;sba0Qy;$HEKCkajO>p z0Me|?iNf)<>75ONey7dx!TEljO-)Dt07lnXa`WOlm-=zoD_PG@MR)9O{hHgx{{TNy za(;mJD?4&{{{Xj~PA?MmU()!?Iot%|aoDS;jOuZKlOMu`r^!uNuj!BAER1&gALc%U ze++-`#`%|~%~}OtEqnf_!#tUP=^wTi*W=~!Xj&}&onfv0DUG+fQ_Q~4Exd5X&N>vY z5%7YW1+|6+=OX?sSp*GRPD%XfO8M*ZzyxBQR#W0JotG4xgf9SO7sgVJI) za0v;HrXd6jPRz69F`9Q}nnQ3iqO1hRc%Lz0&V7_^?6u?(m;q8^)!Wn%uSA`pKF6pV z5q;srKBwjd*y>hvYJa6yu)CXko^R>@0H|*)y1KvcC;tE&A4KJHuXro+lA|6XwZBtf zB{%YJHd|K`u0tF7SQ-63%hZ4LN6F~rUC8=XYf{`^J)TZS7z!HKp_~BZVjN@WdiwsI zeQ5sxs98m`kF{g}0L*fOn?HR;!&_D5d}^BhKk3)CoUhVH9*$Q8R+Mm>+o=62_OSkq zmE!R(^vBUxFsXqHLZyF}uvB3J75cHy{=jA{YKvxK44Kd1j$)2CI;#Hw zbILYy-R$NqhTbm;$>8$&=|JPs_VWJ#QK(hSS9&Z?U6&>&>J|j!{+YK(i|o}S zJ1&~ph#7#X@l~h1%rF7E{{Uay{>SBSvIT^cRc8}D_F%v#*p-+*A~IAnOX_%C1X7xgX@DE(iEXBU?IpZ(ztl8;OI7MiD^3bmch=R&BM0aP zL`usM#t_%iR0L|(r-dAY&k9>)n+H<#u-ds3sHz5AMcZ)e@6 z%Eg42xUtz-C@xwU9t(R7vp3{^J`{Ev@d*yWgJ6R_j8t81I2pmus-ID=RYo(bGk02< z<31-2muux_u zVSLQ?40}r_6Oi;jCiZvzJDFpz(;v$p#@da7@6!#fXX%x3sNvE${9Z>Puep|Zj#iLP zwS@VLqN-Y%{o`3bPyI)A2e18}fcAdgvKE!99K>OoYAIs`M!89<^*%qPn(w!#hmB_p z^xs6UWMa%BJ%@@o>}ue0tmC&Minp*ERKKOvIVo5{{7kyO@c@bQu4QYf5cl*mF`F^g zYJP%z%wh)2NZ$s%kL}DfG$>S&^aC)d{w#6)6ydgKuAkKEr4#jzGcPxh!n2Q89?nDd zws@ApKS`HytMOk_)f7th7I5urY5if!@sDvqX2!6&d1)qf5|Tp-_aiFjs173PV2$}S z9g4nOp}FUuyeENbB}R<=GxWwmPlWA;N45Rk_nLa?q3L+nnr zXS|JnuaJmQtv^7xKM=cSyNqho*1<4K0l60UHdefQ7_~|l=!s*8LtA|+Pb23OF-t5>-nw`XI7;aUaD4v&3`|0^86FPw z7}N-&0rkv1{RjpHg#is#2Bv&Zn6PyVmNl<M$UK7-jw!kQM}EKW@;zGV93akS!c1{kI;Ltn>IkxNjEM@-!T;CyepGQ?{{v?QBN`J7N#V zVKh3b$816orUW7$rgF8MHl6j(xIRDoM%iNo!e2M6Xau=qbeK<8@aj8@!sV>GdCDpwJ6;!d~ z+Vxw?<=f36_~q^WXn1(LvvIuMKmA0!H;uCwxzwfZ%N=7|2?QLEp;tveKi#6e zo`*{yrN~i>8wGgxy7Fk}RQ4yp{Jxm}ScFE-YxtS^;$mYHGe1pbiJ91oG%!~J{{Rl9 zoN#CD%+#PDPoVW%31BM7F_F-(AR|*~JaFAN49r(wybC?p2A(=5To%gRN=J z=23>)5OifbXGyVw(3Uo)cyb3BrmnVV$ayK_wWV$)zW`<;h8QZ|T%v#_jz}l3^H9XI z;ak*WB>e}%^p^MZuNk@#n(-19l!a(puYzFiAli6~7GAz!>LJYdF;fdzjv#57iHw)4 z5fE*5RbWo>n9JE19f7y5bM)#H3==*5IBqGwo6YlG!L)cd7c*bus6Y5>CLuV5 zyWg?g#Ka;poq+xfGS#F4WB6zIx(6S$jm5HZYqTSR59!%|qb|$KV9#Me--}#n{>bBzD={{VtzH5nP0WHovhygJ{X?EK;7Nc$%RHMLn=@S z64uNDABz6~HkxT(a&$gBdWAq3>*687EM{H|=7HuhpZv&XpnXPM&iOmG7z>(d1Y zne9L(<59EeRc6aPCUrA7eA2?A2>$@m)88T9n#2YJ^gmooOics>AI}pX%FC;%KTv)( zmT-A>?JPD4%>6>UYpeFWzA95?eA;=+oStVO@}0_9YhCT(-Qnih#^iEtTWLf3fzL3w z!*^y?&1jkL$*c)#7t6J!HCEO)ZPP)4971qRTx5$Y31c+=v5LuEv~MBG%!4p7Kh84` zKpE6UFr5r1zwcnj;j^$g`c{1_VU`FQ!`Q@O(sXL6teld&(NJ1Xa>m5`n8G><>H*s) z72ONuv4#bNeKKG(5RakGX45}k=pR~n4_vqPOWap`3u|rb`ZH=T=JDKW;tqEyWwtZJ z+aNBB$7=ZY5+)wVDCv1N(M<9BH@y9`>HAh$f`+kcwGFjD$DK{tuDXQc@@wO-ADdq% z>VBMxTui>(3_?qTQBf0UL> z{E7oVS$!(v*te#!Mm~q=PA1boQU3srKZ6j9$o*7pa|<8z<6_#ax|S354lttHe{83d z&Dm|P`k#r)q;cNL_Srnua%roJ$o)d&!#8f*9JtG>7P|>s{@`rPn9gNr&kq~{;2QV~ z7gAxb(5@9b1bYFJRH+v>tAk!MALg;{KN9CUlQeA`s6P;9XZmkhTLm`a%N~E4<~j-F z4^gVL!C_hCnO^FmgtmLZem7lcvEP=OBdHeuX9Icu;K~7+da?hjb`0# zGnuqkToPiO%P=N?hJLw$pg2FLS-%(QV(y%}M;^fAWpoU~BgERE@r$`kRjk=+a?!A0 z;h*p+H)aYL6&nFpCdvEyA|8R@zYkKooS&Tlu3dcWO@E7$a@_M_;2mf2mA*A1z{ zBE>}%*=cwVC3kBru(#70jK!yB6QAWv`0Tl>W~=n#3X%`} zj&b^(t!E?ji+;{T#K+W$ti%Fi{{Uh}dAv%88JoT>_Rx5IgL-n3rmD{xfyeSE3yOo0 z$l+4liq*Kaa&q?D_b=H}Y^@r@fWmFPzQX6HQZ>#cpOryC*)WY#KqFS@GT5(Hi^l?+ zX;eFVqj@8zj#XPME!RrDc=Dl7P9MFppk{x6MfrR*blx%?x%O261rr^km1`Ni71Yl) zTB|lYLS5h)n8g0XQxs*3g;%fudkUiv;v7u&Y)o`#`pD1pu!#QvFfXa}fss0%M0O%hbhnr_B zidzjhXbrSbl%W8QZPYg%(^z=+khdNa^0}5Y-I~6akokFt6lgfd1CL#D;EXPBDIX`H z^AlB1?G^5ODSkafva%9uWe7Z^(fe}1QW{{XtyPn3Kqri}_=MtQZK7a;qf?!7S#VVK zuFxnfTM=6-7iKt}Wmhvq@%a49>Z-N&xJhG;+~6E6c6(4pKZ3*D%*1J*s3%?(qos|pu49v~; z>s4V_9NS~2j5P>wN4r7l{F?_V&^?7mH&PazaWF&|^logk?7_}IOXq6p>f`JBhdV)* zwA6)WWnZ5b-z6VW%C(deu*=Pz8>|s4tl43#1Mvy|K048Uh6f857MmAGuFEN$f7I2b zZmuR~XD5i)ix$ym>3^uA9FL}di<~bq)O#Dp;{6qz-TcS?{Km4RZg(E(cQ26O;Lp=; z6j(kvU#n9^j`UcrT&=vPxgV6@x2IM{sFL~e+QdxaZJ6uhUo=}aV*M-*OmC1^dy1LI z>3wWRM)Qrb4q^{$cCox+8qdv4BfNGQwf_Ju2<=djVaZ>(#O7I-a11Re_I*KcI)OD^ zeTV=bnj9J2CtA))EJHS62gbdV`C?GcY1Oc7Yzx>uzOUZOLpebk-VE$;2b0#t$s?~> zzR|u^9Cl)-cKraK*H8@2XT<9)F$BSy!CHWPV3$Bz!uD0iUQZ{H#qgyZgyQmfHye31 zaqY0ZelOF-IF>RCxc>m9*>xYO@qcH?pQdmFRr;%O_}oHs1%xEu5!W+~U3Nc>)^QZ4 z59#`q%(d9rh%r&jI^Z&9l7^qIbT)!!aTskn)Dh$U;tks$$3IR!qSs*GKuViRI&qNM z$GW9TxIFLM!R)_FZ%PxJ$n#%Ig|mmtuack1@WY*t-O|VQpQJ4|kKvF0fcjaeubAI^ zvQD**J(eo)KT~5@H}>|k(O(i*$q89}J$SK(sZ(#Z;?43|wha^Vt6d);wq1zCxO5Mv#2+~8jK_O=v8^K3U0}9Y zeW(N%1&IM=J(f-2U1H~Lwo;@_cHI!z0eu1XbK1|3pk9?+O?Hh~$}W!WwEn&pA?fSd zD*Gn6tUgx3eKyf)oIlg;JYmJGFF%Mb;-~3+TBUqWKQEvA{tpCxt;$YkGAA)<{VK!` z6IopibgrQFpPFW=y*z$B{A^%DKVeSk`cU%oc!^rL#Z~fXT3bzcT$ZZZ`Se=fLyLnh zCN!S7@itD&4`8-sN>Z!30A^}Rx&>w8HK2?blWZ{pRmAgEDCT%YT)sWk(Zr~wJi(Q9 zZ>Q=B3x*N33x@qbUFirAR`JdQeYYd@t~WxU=C@Wos0!EQ;b_~K*#08tN1%;#Un zJf2$JN3jf&p?eMu-Y!CNYptMyW@gWSQK3M(Chm}?X+ltu^!Kl_I%`U-y zFvYx`Nb!<;LL12_bglUX0HVfMUR|}@eKY@GeCA=3w5;rT4s+cL-oS(H^*dt$ zYbfNm>9%o%*f~1?0Qp3;bNN?k^!}T}x|@EvzXVrI#CPl>OCvQn_zFu#d{} zD_W|br~agzq5K%(d4H%kn~ToB$8YL9s;4`cIVX*O9K|X|K7;9)Kk+9~{C`vBEp>jO zX?u@j-ejTR^1KgSp;boDsA#nSdX}))U99AkX|oqq_GeKo6*OxFOSZ3d_+zP*Q_-u- zXCj88&5X&Ma=5FmPA3I2ByABU|NQq(m5X_LX2e{%W`{@`OvBmWQwHwLt+mfx|{V zLO~Vjv}K8hR65HxEOM2zVj#)0qf6;6vuUqp2))9i2)(wDA7{kw55WBd#Kh|dq}T1I-C!wvWw_s@UCE>Np0oO|lXXbkJJ*gzKE7v)3xZXOYo#26Q*gOoxfu*4 z)_A8P+b^}K8`ouO&Y!rq^!hBS>Nu-I;$mbKXTvGT$(Llzk`;=@_?(;zI*Vy0+ma9XPZQCZ8?Rf=nrjB)Z-R=|Ry$@4xTigI6~qwXu=l&&8; z)-b?j+vPB3zzXYAEKNfQeMvIL>P7dVUA9@4VR?7wozGY_=yBQWd__O9V6cM|RKco2Ls>WFTSGZ}y z`qv#>Pk#u28&B=la{mBXuA1AGYbuJ`w_Q&JamNew57a8NgN~*FDaTy3t|oh1^iyur zhhnX?UFA#d6jy&b%ao=_*HWk@9E7NjcNSI2s_&r_XyoAzNn!~VwEew$nnZp6tNiiR zUNY8KPCb5$$FRX==~{C60gpeDSH*T4fIn$nWUCJ9rsGxr0IA!3AEoj>=PUIZ_|N)( zHSV15Fg99k;6D}fFL0pkShttOzOT_=R%ca}UbeSCklcC`*&hZ!Cr)+tqEY%~p_hSb zkJP37)BFBM>J_Qa(4|#8yOUiKf(?Ae)Acpxuk3QOBMteHv@-@Gne!>tq3JAqlt!5~ zO}1x65gS%5v{SWzwgj~y3 z6BS8=BZ4N@+Sg-|c?`965Y2Nt6`FC%;ioQ#TRZ@3VR9hF=0Bb)Iyn?7+co>@a z$f31ZjpSRwTK$>r`ZOBLG!>E6eFp9kh&~Y%OPhD&k>tMRN#*-=_|3HyG4z(OVx$S= zX})G6jI*fSIHW?txnbCzzMBS^oO?VLkN*JJM6>m-Es@PHX&V)#2)cqe$By0<+9fVW z3zKVoEgDVo5N0vSv?_+`XA5S*zJPlDK0ku4%@WVHdog)zDY1}+Y|A*nzp<{4Q&GfA z9qhS017}MtEJYlyO{`L%o_Z>Y?8wtLkR0Wp^C=4%1FT~+Je?HR4asrIKv#FY+)UV+?oP*dw4r2EPsu}S%+E<0K{C~7|S1ESU&zHY|cfo%dE(W<2CLpEq#n? z?bU5-UD;@Bn_L#LINpqmD|;b1jMFAAAREt?PC^A0lfq8lmq?~6h-Y9d2M~w`1$8fp z>_H1;<#O7E=tb<-!4Ax3b2MiQjfnLFHLGAb_Tn(w?4k1DQHUE>I_jhV8`+O*ZniCz z1XoLEBZ{vL0=O$hEoN1{&q3g#LG>+OIlLP zcU;Vq^%#OMS=2?$_N*nxHQ4)poYuc1mTU5HF20K{x0AyS`j0S7xIT86@;?_ zXTKXct8E=!%MDNP1dpXo6(YGwNJe`XMvI7kNhj%9_V`Lj{kzhM2b0NlhPO8D8g?i7 zCnR+R$Hwi88qc%{6821aPTP{gH_v8&kaIo{$!Sy;U>RGA&DQyCzmgB>`Ia+y2SXX3 z-}Nm_mHTJ@fYjnGb~I&ln`TtKk%?i)CnILLD}wbh(z~{^0|6MFNNln_ijY&%9lgVak_rwI4J^&fbdGjc(irE2OI?5}| zZ3f`{Q&gqZY~!sJu2|5|03_h6WV;%kc=eAg1x~wL7@UJYwjjW{DA-4~6S91- z#4VUmYE!iQY&c!|-dWT(WF>6wl&VKP+>5WoKR-%X3r?hxacAa7^YHcY^h9{1;JOA| zGg!58g=t~{2<%$qca#DZ$<)Q|a@uRx@Ia<`t01W#LNW9oIKjfSDoNDhD9Qf-6js== zYGAFB_3YO$NX;tN5*bg*({m-+Cey7|)8vgxBD&-%?Gy6B)XMvx(q?D1%xPGk*;)N! zf0K|-G*Pl^>-~X|tX3JkYSosHV=bF8kKD}SIM&-!HXNLS!4hRev%jWPD{>A~kaSWk zYJyci>g)Kv3FA7VSld_vD<>G)4-M;$PaR`fRg(IxMp?%qnUPl)j@1z07StJzf!0_( zt4Nt>_17I14(1Ai?Gwn%%cTf?YXG?8(iim+_ZtvLJ=WN(=6o+6;auccy6Z_+UmXR^ z&#iW{KKZe;u-7SW4P!Mk6y!e4culV*g0ZrtDRmwqs^qn$2@ckeve#MVvY~|rw>PlK zW>|BvL!4_f*`>;W!NxF8xP3`8y(JErL@s3yQ(!^dH z8hsJfm7T#KaQ6cDuV||c0yRvtAHuiHd;sfKwBEioYDhb2Z<$!_lwxKSObM~KZ(q`(wG4K%5|TVNE+AYLn&BvR+}PwR>K*+k zwMQMiMmZ|R?9AZp(UkrP++4-&$3&Qfc**RaZE%2eJ_rplkz0Md5T6Q-l=2{!I+oMO z-UkQv));us2B!r&tl^xasi_pXz!t%UchJ}4A#;cZ7P{E7F*_vk zSx~z%AzGkLMdheJ@*{c5)QU(|y+gHB92lc4TW0bg8n!!v*C10~r^hZ0E3n0HBif)Y zKpb9g+2$iy3{KhmgQdaWQvse&C0}il%InLjh}DfvI?A=p%iI~y9{T?PYwzdPSyPXj z`dDyQ?3-dH_t+Y%4S@?3#crq)_GmvM4#WkXPqt3VtL(|R04zTX@oJgkDHsA&4B+F) zAhbX+G_7D5hSW)A%Ym1RUIE(-%v!SS%|fVrZS+e>hq9+uX4!)kg3<_Z&@&;&MXM#3 z=}jJ2S_1_A*G92q)gTYc9v79R14x=#~fP1AD^Z=gnIt~0K;E1!o%|tG3!+%lMi4d`5EcHRW_b3hv4giK@$fb$e;c{(Fn_Gqh6=T4XfQ{Y%18R zA%=ybI}%FmLBmC_6#!%Wj)Fde$*>pKISu42=S8rFz}R$u(yl2P)c!njPte6bWBX6d zqT)B=szL$j@ej!zudGmI)#$#>D&uN=Aq~2StC#@Q`+^h?W204T6~V}lhW-Me@B3v4 z%qo|@X%CxPFXcmFEpH>O#Z=;XNKtbM=3^G&T2KfVg4~+XR$H<~w4`AXPmuxgI62cZ ze;BO&)ep6whz2kV6V#~8LHC0cyNzx*iieSDLM6-XPyYb0&F?9-1!||n;1v5H? z*gdb3svU8gFaT3u9eKk=7kkoct^=;+IbF=(jB}`Y0tKO zh{SJq0yJERXOXamGG!_neN}S{C~u(|6CY4;e1U?__N$Ct*rH1PqX5<3{=9baP%7HX zHd>VAZ>e_;4Q3BkN|y(ZlVwaDHHEZFyL@4G!sK~)24v|H8w<99K<*Vvpuxi-?(n(|qA>>=Hrz`~a! z1PuxRnf3n1U>pJYH%29%+piRt-#jR->l_w73f<$r{eaB@P2qT_QPf7 z=WEUxHkG+s?@^~0Z5e`#?iB;0+2Ix~qe*AnsjN>64VaxQ&R`0ap;le+h!ugcW@nOl zF*CFS-|?GDN`*L8e$7d!@#Nj?+Ts;M9hv1kY^vZ*H?s9rgV=pFI`NBnpOtDxwU}6T z5dBiUhZ9U*=A>q4PAcySC|c!5^3`Ja154^;f!YE!#LwH{2d=^UD z#&8wC@B=VxBC&zBHI9(G55Cfa zh0m}0cEPMl{{ZO3kbYOzN|3R{TMQ?y^#E!*F)R0LPS-w8C&Lyu#H7YK zCuMf^e`vgOn_ZGuW@}3|TWmR70>AhC11_K0FpWw1`fK);nHr6`Z*>SOt8ANayqiO& z%b;eYuO$q-0?;~Nm^%7*FjwnXU!vP)hZ}8$CnhrM{{VnuBH7k5Kye!j8SyD~u)ncZ zi;`{Wg}#jXhTOzV%RFygEU1@zF=34M{>4dBt@i#)PlU-pTQI>YPqeFw$8D(b71U0gQa|>mBitARw@_eb`y1>y`D>k~$mLr#Q;}M4A z@m%{M)d|eUpRtBHe9a!% zm}6dig#~iV>W9(CN^n!8{N3;+F1oVqXOG$P8ndIakqczAW?X%0Z*~0J~>QRHonuf3Kih?@&H@no2zw;;3OQIxOqJ&kZDQEhad zJ9#wm_`12=KP8>-X7oHp^V|rrwS~hM{OR_YRA^IKj7TbX5^NuN@TfpTL08XcK? zdC8f=I$>&AoJ$X){JROCU++}{Q?LQ&f#rgKvLg8>YYwCeOs*8QO1KAZa*H){muwC=U z`P>+7!M#pvR?bql+sfRWfnQMe9N?*g@gp_XKI^et1%OsaW?TsAm2fs4%M-jRs&_5? zzt%HYP-{ZCvkfq1X_H!g^r`%|CYB|~E=?9+_oy50kDCvua!Gf{K}35-7RQRk(K;&I zO@=LE#VN$MAzvYN6Gg4V6nAjLaIX4*z_b9E%c8T?$&8x6bLTsG(T^spTsI$xp^16MrpO|pi`1(~?*3F4>cXT=hO&v6H z3I=v)3{mJaI}Cp-#wYb>OJC!jtW)Es^KWPCX6XL_iy-Y68m6KVkmMO>srn3K8G^Qe zGK3+Wa!A6*-%}NrS^d=BI}+A0e0XXxXj@OoXnaqL$q#-_XLwvQA} zqvpkGm`d}%k9(g0FZ}J9!u(Wz5c}vBT(u%o+cv3fcNBX$0_w;zykEzlwKm(vYNx0q zj9T5C;HJ{LY*uqxtu2wB#xp)=kxiafH#(M^T-#-~*B<3t zJljG>NMd4jIN1Hm``CXe#OkUD{f&b(;~!D-enR^F6yc`XA3!tor4gF}IJVrlTQaIP znbchMXr2%oHdcfcdw%X)kVs~PkVT$^V5>q@)ld`t{{VJngtAxg9}L^FRsR4+{F@@i zj6kisiPA-Eux^X8!luLfYhk31rDO+pM+}XsDM#UjH63FeV+JM&`r?%~yQ(as<1Z>u zW>qh4Bed}_n)b?qc=8pxqvFQ~%5slqRcCrtY%Wx^sXUf=l2#cW$1GD=teGT=-G(|P zUux?J^T*(i`6 zfENBm)uxhJ#^$OWhfuf|X z?xCz;8EE5F`ZB02bUOn-cFd2G(vkyy=oVm(#}i^kNQ-@n9KDV@Wy-#U!Cz>YnESZx zK7B)2+p8uO*T)=ei?CTgPkKk}CKeubFSB%*ld%Cq+ zpt?s~qps0f4CsmtY6Wq~Xmfxw546%b#InL&FwynO<~_jH03ia+A7%I(2EM|uU7`KS z&yj4d#Q_-#!i)s|@~y@H0Ks_J}(^fW2V15IvR) zsdbg6&x}vPXEBaJOjnJG(`slEuNoT;7`q@YjMmrVn9LtlAQdVBcmObreMT`UQ0(ly zNqXu)4FCt|=QpDq`56$~mHxrX5+HfVRSz-r-z!a4B(m3$ zQ9h&a&(gNd4#-JTAUHHzVQSyZ_5-zR>gcome&CP~s}YlHL1}?Y1+^NrC?eXK+RYg9SxesRz_76`ms_}_^JsIN%uJIt-k%-?Oo{_0O_i{2_PxzAP*RI{8bpUAOe^1*k3%3Wrg`wzo`6wAlZ3N1&j+ru!Z8)SvOas2bL4L zY=AR6B;!iHeX~-M*7j4S1K;G@n2psndvYzG?3^n=y;p%Tl<_X8lnLUkQqxYYU0{7_ z{{XF?Pb2FvuvfTX)AEUr7OEd#Yg;Vh3?hZv%WO{{qJshUY>1W`reg0lQ#js6wwpp# z&R=o`e08<8C`_CcZe@=Wj&l*_rU2n>F=vUCoNIvR79!oD*^rWhIrBS8AKb%H)UHN(C9)${8v^ zOWEL-ELF{C`D%6gTUvO3hLl(ZR@Ps93bZccN=VmdD%3tOGFUJ}sA4lg0>krX<*SH# zl@q>R#AGIR50r^g3E|3~A0jZZVmKp?Fh}F^xa&X0tZuFpdie4QR2h8vR~y-dfR+S+ zYH*A$QqJYq3l1U6G02VBf@EZo0|67a`G>m-vP!=(k!69lCpFdwn!sRH4R6bQk?Sk` zOPn$7Gjlgb9=||(M2JB!BVh_}0OA}fBXE7{b57izmK#x^X z=r(27n7Xz=qds%YO^zn^WKsL4^Zisq zLZycurKnu$z>l`yBk}$_9Cxqt7GfhS7bTkpV-5R)r0hZ`j2HGSG|pv8c4HY%P%ceQ zCTkVdXWMH*mH62_NF~`t*~Ic$S#Cv+GEBa|4;QR9HU6i>7$e8_^~@?n)6iS$KQAD` zVq8~XWv0yqZqe)2^}tm+D+sJZP=}y~4;n^hjHQ2wWtr`3L0gK-rOg`VE^`M)0C1UlYht!FyGH2$0C@D+8m4-O zvBhKLJw>d)8j*(NCMv$o>ayK~Hd@@66nM&t>OGOv-`B@(G|)D))o1x-SlYpfN{3J| zLib|632EA{*#VLsN?{(yvD?*-ftWFzd%-|)H6|IMQqSvw;m4A~jh?{(ZB^Y``ED3* zJ^XipGzOrmjg)bi!)MjvY74rw6y1dktEzXAE`%QROfMGf&=*V^x5tH|i2{s!6j3dkAT^5re7M=pv|#Xk_uDOH@}iAH$A)!&af|4`sLv_Im~O zEJSmerchSI9*u46E(t8MaQ%3Hw6fbdjH|4E)cN`kpO8LJ%68URZQ`lb zy?<}@&VIFm?D&jEHs~raA0VinQobX%CSk|d<|vKSsac-k zhO44_CLhPFs0(F}+WsRZ8I{!jOmJCt45ejfF8JH(gJS0`;+7;mklKA#mvEHSvdiFm2>pSRa)5ZrTehSySyFGLi)q z_DzJ%8H+7oC(32+*(Q9@uF|^HDCtXL8q2?n49Zw|3Wl>VY?Y;cmElv>rSt_wt(luj z#gti*p?VS!x@^KW2-GT z0k4bt`qo{U>i`66OD$m(kYB4kiKm1_pUj1{cH6=RqIXgI_RykAv1pRGTd zpSM6nmpDJetorMxs8btay7Yi&Wxyq4A4JT|uBDn~n~Fk`aQca@ZC8bfD8T4uCZv5= z=3^qZD;S?5d^hFu4oov_JL)0$hY@>?GZex#rR-B*@K2deN_lWk9rw1ae!NEtY_D|O z&t!_GHg+Ma9qe+n&2yAA5aeS#xG~TUlcldACKX)hn!`P@sM)*>o9>*^7m5 zIYQi{hP1RS*2+o>&3;Mydm>cR4y|*kZngt0;|mWNcI2y*;W{gd?6%F{_#+?Xg{Kc&(}O9DLQ*KpIo9K3!qDJnRFIcf{Dh*@kY*GQU9&P-UTA zNm*7*zy!r^&vDPO?z8d!NW@%~et;WFsnqfldf@rRZbe~icL(WPVcEnsM!T}m4Ud4$ zYpxp$oi&)*szO@Y%|*^4le<5p7@k#_6OCh%&rJijGbM&kc#{@s z>Y~9eCuplK!cIGV%Q|;z^oxmrC4QvchSWT2d`*ZIL?X#!<}Hq4?1P9kX{Xw%kg}BQ zfdJ8Uusyaj9BO`xUS__5aDNzpX6&tI($(?SUc?IR?Oj^8t<0ruMq^P2#9Hf-5PuBK zb*(NME0iw#x6-HkYokGhm%hxEGsLdCMa|{2Q;Mtdj?u*fTycWaUd}4PKB@A4oqsPO z&V5FuE&Nm*wS~d?KDB)@Jgi`_?T2tiAUKtq*h0A>qV1I2CzzLt{J+vxZsMdC6DkYyk2fVIXZ2tg~mBRFW(h^V5oc%x3{{YDy z#gA#!+;DGwp3VM(pHS-TS4OOW&b}ycR4x=)RQ~|cwZT#YHn987GkD#3094m)N&f(; z%RNtGlX5Y+t7(HXgS%(xmCJ(lo8zyB8r;le&+hf0wDg^kSCLF9v3)f;|II`M`o;}@dSXsF80|RB6%JXgL%3o(0F+*DCS|xmza@*_X zHdq|2IMwVne+5Fz{d~=iKAQO8DYR-7lRF1LO^?tV7a*$Zu;eFGTqw>LUm3udW|`~{f0ol`uVt;k2s61OKPZT6 zMm|PuFtsy_S6`?&narirQR9Wst2z1;>nf_Yuf=f>QyQ$V##rwb;vvf|fFnRb07V#u zx^3_-V5@HRR0DF0Dw}d$0zHPkXHl>r`ryDi>SNZsnyAcJ{Z-1%iBHLsXa#xo*nFm> zwSu&ByjvI*1}>R@WULVY5i8i=XON77U&l5vm=P682;L@l#~=3XZy(df{?>Ys7i#TB zL$NjM70wbrjfg-^2Xx4`#J_yC|@hlm>R>kk$Yzv5&XaOdw_a zW*?esVuq-?g!=ygRQxlk12Mr1)&rFc0T!vx@)Hmi0vJ>R_Zg4;3~+a{B||Tt%V4@>>%PZMH#b@2a?n( zAUINUH5d!Dr-G#~O6Up-@;@F+u$A$NmhovK&O22Wwz0^={X%67;U-eV_W1r4(_5>j zj91-<0x0Y9h<%w?AvB9YV(4piA7-L_RunMVk{{I{Daq7|H73;%`VEulxx!Vn6{uz` z5o=}%g>aRz*i>D;gIRI~PuxM}2Ue&WnGS6N54yk={3MWm`j zX%DxRJq=m$weF<=7Pswd3g8D0VRxFE*v zIgCp;&}97+QpJ0-;-=N!(z4bhgv$Q_{Qj!NfiYWCw`WqT?M-HCN--bJ2W^2BaV!C0 zP!Iqp&au8a)xJT?9BE^8{Z^eX`Zcq&(yEFP;aVoN#})3_`i7vP#cH-GX0Db$x2(OC z3jUlz1=ng|N^$n)%6@>5D>zW9&i1s-+H5UW!Y~_Hy;SGYyng-v0R4{>F+**2yPF}k zh;RBFll4|0=((!bs-H2-Sk5M=5p%QV4v%p)JYAx^Q9?^OIW}BcRy?*^+N~>N3z+Tl z!=YbkYU^VoH1YPQ!AQ7(Vi+6)U3qI4)g6(p0j%vBR;OpK$9yb$m_Rc;ed@Kg`K&Eu zUF&6oU}{YW!CaI5*U`?iDFU~Wr|FKWw}EYzmz}Yzh}IukiXF|~);6LQ`iaM=1w4ww zUVZ0S9;L2w;g~f)ZLU3j3u)eHRD}R}^1BlffXP;#8)+&RqT1^?>A}^3~ z7@%C-O;}=tGb<_hnZzG)SBY~QDaOaJj}(gez`cE!IogU23nrC+pcdn0QkPP;T@Y4b`4MrIK;tSJ{UwS)3ULC3Zz7=b!?=RCAt`5sV5+eJe25S$ z=`3u7)q_`Bs$@U+L!g$ZafirI;=F^X!TV}QRB@ikZG~7l7uRV?Wml@1DAnqAo=V$$V zD6;%4;n-Q9<$o&&^5ZBB$?VS9`k{s>*_OA(j4~<>{FJHM0;lXUJ9eSbq{T{J_it zcCZ&_f1C)|(E{s?0X(V-{l>(0>0GR1mD0>{-=VtyKfBF)N3r(vEX(fHI$Wl>8XD6Z%v7?V*vHVD?jL7K8 zQ9bQ!v2E~v*4B$s*Jai2PC)sD<_Z22%Vfb;wc7bk$sZe*%xq@{E9zd-!nX*2a28i{ zSp%R}O9PO>*bFG|!GPmfy`2oH{mXen*1#%Tf}|`;!c|?R;sfXLVcoT@t!pVD!~jw< zjY@7;gn%6G04rsq2H#byb7C6Wzs{pseZr|&@vZH@D6xJ|Ap#~%cMo}kGE^;OvNzl} z7Ecqr;RVHqB!AY(27iwp79^ja;3h~rn6_eM%ML^&eMisK98HEP9-kLkISRF;82%dd z5pWoT2hE?J3MG+x0%I@_V7jk*u{ilD`DJ6bU1)gjCx<8)tOIw(4OO$tQx97)9|U$D z*B~}NoKJEKEYWO^yk$EjDsOWuxMH^VIQ`!t{^!ie#;54vmQl*BMsS=_{{YSi9{uY| zmHn(E%Dyr#9=}w(XDW`Sz)oLw#fWTRlFNR#;{E_WAH^{IQxdBoROhFG^%KIQsvy57{*ei zQnq3#*0l9iE}*bBwgdKc@;&T#7M-rRSu+Y*Cj0ggg%V%$O+`cR+}m- z_DXu!`L}IeNq@NoU=|F~fk{#wor@nMs*rW2uVvn*w@ zwkCIuJLRoF_E}D6?btQd0NTVGo3p)3wYF=o6mQJI$}SR?*6T5v*Cx+!2W+@Ff>u`} z#1 znW2uQPt!vKYZKZjF>P=+>1=gZyc%o!jZ+7nBWqdG*Ly4_nVkhOISrI!xIpl;17bTy zKW@^v1$DBox5w-P>l`sxc7aSesQCjgk<3&x;m5)g3blt&&8=%O-F$YHu4jOxJXUxs zD^I~r-NBjuB>k3v;jGKB=$7@{GpNC4yMLy+cLRMf zJ_sG?blge3%wmvT9+t%mTZS{S--M7l~k%M{HWvE zd*H7dkAcV?!C))L?~!-?^Q6bEPm8S@*#z964T%8bvOk5svj^#tPVkPEQhcA8@OI41 zKOY}KGuiq22zIf*ZZc6rFw9i}tr=!ts5tuMz|&}pu(GD!E>cFnOcnCA~;VVyX^7qEk!CoX;QOF0#g`|Gl8=iO6_%vvtkGVmOIy7 zmgZ;psAmiR06JGQ<*+emoJ0I^st^khTahJOt0Bebb*I{I&FI3lG_| z57^lohT#6*$Y@|O^aN#Gq!y7Zw;^H=U-5Tv{ODR&Rsc$tS?V(?)z9t3vx*)XYp#3? zF(28QyV?qIDyYgw{{SOECx9&ERAW%+Ag0Ho4;RRax7v%JEuXi`{0tK;{ApvGE5at^ ztBkV)3)!pL_GqtOGO_WROD1(RXh^P-)-G6qI}BWw7?=@DD>wx_Zy9E%_$ugA8`e7C zEn^I4xHBqKyB#C^(Per!yR~*?(PKoZnAnVJ-Ii3?t=zF%S6@K9PTjjM8Dcl12g`!h z^bzgSJM=uPY{LrZ(qHti8)!DDMt+Ev(8W@Q(bo`TX~p$>KmBz>j*4MK(&zA&ZZ&) zeF0LznwKHaY<)qn%N>jzMGgS02rBgbn1+y%{VPg~hDLe&V=4<$FZTd|PP;!~hM5xv9RC0jDywOxh=`_@s|Ni+QX#UqT*NG3A&QZ=u6iQ_B~iiR zRMYk=lfiL6Xmox(s-f8@kmt-=c-`4}Yzo$(V@9<`tbl`2%GgzFy3I|V{{S;pA+eYI zyvN3XDuxI+juyqtwH2ecu{j`0xgr}HS;=LN7AJ3^3a#&HdApkEI9r$915+xpFgjKF zE}m1X)v0vEbZCVTQ!RXrqebJnYbsQ*XvN(&tz6c@Fbk=8M{@@X(H(JKu>Ai3emqS< zHT7U-VP|IFnzR))oN%svi`c_{k=Vyv8c}?9CL4~sGx0%*M~c6TH)9o8&w;r#mJs;X zJ+#$TUDSW**w`hE2*jox!bvdWeUN-aT3cuz_0{;plL#Gxpa8O2&hZgo?%;V%I!!!d1_yTA+^4lvic^ zN^DL}Y)f%ZshyYKXPgXl@uSMGN{EJztI4H{afSL08sb3Ia z)R6~ALR3~ZR%0ss-2iqaRAf8Wpo=YL@hhpVrCF}4c;hdi1ewIM1CkSJDiA(nSh#VB ztrem6S313?W2-WSwFgjGJcwx)*zLI+HDQf!Uh#!<6_cuXDSX8dSU}%H@TrN63v$hh zjbX|lZDnWK?1MX2L-KWPyiGivdJv|%LfPsyj81-H=RKK&wuHJ;s5Pl3fn|-OFS*%C zYSEYW>3#hPb?M`VW@GFEZd(z`O0` zqya6UVArZn~*%5e`5XuKzlO=%xip2EenywE~HHP+y^ zte_=jTv#1-u_$B zc-%E`Gd#7ha}eThk$v4Rz};1PKV1$x3x$l40NO5%T~ z!mV+Nvm)kNjT_+LE}pg4zCyuSSo!||abc_`>!nJp3k}pO6~d)ZS+iU69Km}N<*kX( zg-u78q4MlE2(R($6o?dTC`%W|*sTJ-1){-%rC>{g+~5OdrlGKGELP00t6bX`I|12* zl|GE60iEi+aFAuI)RB_L+SF4;K*AQ}%QEWoKU~hREcDz=_vFMDkr$BJZcCOIj8kyW zM1~sdtgGxMy_xvFeSzy-O`lLu#;&UraDf7XmKvLPbdxqbv_loDI3ALT5_vpy|a5JGMGuoug_?w!W$q~MD@e*n32P*H|^{4 zEn0%WA9fbDBRHuJJ6{T# zZs4wkb^$!sPWk zfD`n@$I~;o2@x5{YXd}Jlgt(-wvmLIjF7WXLZ@BF3=R$y_g&0~_Y0pgvn9X=N7Ba zvlEmjcC>bDgs%qYi$phZLx`WuE<+pCZx4$1adSqmPH;k9Y<2ZRi$d;T-l4<$|7qp zFvVfR!Rn|)F4-lFBeol#>AO)B1YP`w#_V@L5N*U7z@Wt-C~yfqv={+ZOk~4$6u8OR znBYgtkiNSVfxVk;zq~WgAV6vNTHYx$p8LSJvR^MlLA>Z1&Uc+D^^2;(w!>BhLi*ObE zYyH++1UZ88kxOU8ynKk^jHrc5@K(YCvN^8Nmg4d1($GzUq6;UEZIRfD4s86ttieC6 zgbW1vKOaGB14kio`^6A)L)f>C*!ckRc@deNY&mPdg50+7SWHsHY|tYVvegG0MGT`% zEscPX1DuZ+dNQw%z_@NUS$LRz0tOLk>FQmDUfV!-2rwpc7h?+)JCiU=yeXIQGfXHq z+N4j3fMs>4J~Z9ka!%>_2g40A_W~ETXID_h&5KQTFG4DL93PhQklT4hm4aCYE1^WQ zj>>U@nAK}dMSk8fJVI*<&gLeb_?p5YNR>@G@xxFv#319W6>BsQC@Rx9hgXG3TxCx{ z7A>4MJ)OE|pC@b-IE3aHgfx7|Ef+9tzT+9q!MZPzyi(ZD+)vGcBoYteHyK@Bvz1@R zZ9@~52UH{@|{F+JajO%J$76=khE$Xm{>5U#_8a$zynh-15SToYK z`826RR|U=E@a9*=)P!KA6#%c-UDVPGFB_{;v1iF1poY(Z7?tQV7pxC11Zox4D8+UR z#%&mNKQ}sg6)^UF!$ozo*;jra2o>z2pF>gF%KqY})5nQ|NywOh6ErcCNT85V>rr6p zRxP8*w3Nh9IgSF7Yxg}HwsdCk!9xwo}vFva%HP}P>ZQgSn;%_-3jo8!0V#;xLJ!jp9IBIo z0tl$sND2t84W6RX=Wk{T(RDD{KcLxa@Rukd7^bc61yjZ*p^MVG_-Zo&)ao@0mV*reV01nQ$ zfljQkKOzjQOc6AhJ1Vxyhb+06gQ&y2dZLnbA3&p4RWOB^5Y{jg0hbf}gd4KJheJ>x zArn|qc!mW*W`YFLc*ZdTf;EM66$WuJF){Shyg~%QGfwblv;z^8eK9oa`=8c3)IyV3 zR});!O=hA#a*OS(b-@dmDSql@kCjVp;7Le8cMpVEqdAiW$iIUFhf9B8`~!FeWnv zYRAVhnXkXh)Dl+@jbg52Ct)G18RE%Q#41B+4O2)2*S}RKS*V!oh!QC401bN5X*KT< zq|$5BfT310shVVj0&6e~$4on&U_moJXHW=4A_1~>U_e3 z$W|KTRfuctkO&rO)`k`DLT0m0_3K{rA}v{($4tVrTtK2|pb@0VFm`q5tkPq)8CA#` z%NJSr9g7l-4SI;jWzIs3&p{goVqi|h!4k(I1(*+XO-dl@`YEo#OKqkselclQ{tY~@ z-lt7gw5od43i%>zNwBK_4M&8Ervc9DQe%Gkkau*F*va%idAz!s|QIl9pG=UM$v z?Y+)$xD7GhfJ{YaSZ32RJ1QvG9b#c)L)X!Jf}>$G9b#kLj`8X~Yyq1S9U+>Xao^+y zGyP*B#$Z6EYt+_j-e87nh6Al;A&d0RCT2!{CVrwCDa1dBvTnu)6V2Fc z&x8H0Ni75V=4Ky?BR;*UUY;0}RHZ1g& zDuu1n&32V?&54bRwhZ4#ZpTG++H9h=KI~Z?%ZcS+>0{WQHDPT!*6Nc`(;%ICJpw&{ z6#{&~kdIYP^4pUfz{{H~5J8bW-uDP0Gdo_I36Rk*;RZ-^mn>S&Kl~df3+FpEB29ncoJ731y+| zv)#+=13N6R+?8@{XRrHYV4&s}iP=LsF$`v1o4DORo#O+!@VmfsF_3$Wm|G|M)pRk8 zQP+%TL5&5GYXy?FjtF9gwf_Ji+X}gJ>W9S3Xq70iJ_0irT$EyLfP-GjASg}j+9lh) z=n2=?jZcz;$l8{0W40?9Gj51ts?+-UgwFNvEeBSAc*ozj5eK4 zjOd&wtk04CFv-^w;SbDZjsb7=uX*oL7cjvV0h7=e8Ej99{&ChOGCmcQ=ixv(!7)c? zv#utwgwyG!L0pVLy2hP`BPa4Ec0iqd3Djm{D4oxUKLgaj!~o+=Ow48pt|97ojGT7v zS*A?etjy*ig-in=c7M0b?>_@3e_dm|mY6n790;gOGHO(a2Y4G}Xa*3D!xKLy&a6*E zs1@srVQ8K|4~?43>-!b&w;s(1O724 zvuV|!=BZ{%umunuR~rh0DH_*KJWXKFA%iwFuAn2FKpQ8ylRvTWaSkwX8nO_5J|;3X zjJko57pb1VzJ$gVmT8mzdf#jxAo^w(AxBfWuS?r!6RG{r?aVpaxKw!n_6wLnnh0n4 zKZpAeV8GZ>mR+(Z_wz6|#3B#{Mq+=TfIVRRzpQOLoyF)dB>Yc+vAddr+JZlzaR)&B z4A02IdKe=(B!d??{)fTt4xv4NY9lGZh$qM(tTRoBJ~qKE@dzMm>x{qzKO?EHSTp2* zSj;#pgERKVO^4OTO|gioqPEB$cR%tfW-X~=-G51$8Jv zVDTcdk%m)!jplH|y%@|fnw>xY5@W$pOD1N)ai`HMkl>b za0!SFuwx;9AtdwvSTh^Vj|`z$QdPYK4;32)2S-Ch$50-);Wu? zTxwj!5yl{4vt^tt$Y#V|pa3adpj)R?=RpnQcx@c1p!`JGi~> z<1IC}!hvBb$zlA5&p{Zp&>DjYj_gn$$Cw0NTBDUaSYrCUR}Dq0HddMjkHi|bs}*xH zLZ}9!H=AUZLY7uGS8aB{+Y9@!E4f{)2Ux3PANZa9+1l8^<@P7TVpiLm8_8OE5-7Eq z1K3W;`vMlF0K@o#xUV?xa1MXOJ-5N`52m7PFeiUX?a^2Mj&SRU0M&?A+~nsja#ZU- z#5iZhLHWTb7HflmAO+h)m#Ywvsh+iHbwLJpBNOHclO4ASW~xbz78Nr)AM`V7B6qUL?{ zRfyuEgwbU?0&z`FTKk8YR<^mVD?-<`@V@5ji4xbYSDX)A z5T&s{y!X(GA;53SFal#R4W_N1=ygA@kPO%}oJUPnSSg)k9?oKe2mpRRLQZuiYH7#&ZK1W@K8f1yaVTk$C*9HK(ZZ#c5Y?iS36}Fx|$`&E8 zAZ1h5w$cqX)LuOR!&ah{`;0anA$*X5uV&({VQm&#c_tPNzR{E@smeY>)V5{EKpmjY zH9H?#{Q}t&@^ZQA0hzbkm?Z!N0wyvE0E}P>sU(mA$&7tYu##pP55#l@eWA=9M#wsY zHe3Ud+dn}YIqqt>Bkfmiv+-5+v!ca&>;SvLUgFsO%#yhzf1s24P$Mv9$l0cI903Am zvy&At*b3R*k7w5bL@2^2g=RH?&yvb>)_TG9KOp2B!SYN8zQjL2Az`1{5Vq^k7@KTK zjhUP(V5j8*?Et|ofzreCTLC_1Cc8F+6|Nf@EQLV_B4fP5dd>$}_=n{%rppt^Y)fT9 zpOIxu&3zgM;^}7KRb9f$+KuNTwW+V7Q9ug?*4&u5A#O z@#o1^w3K!GHnsL{9Pec%VX4-13W}Ku4Zr?riEhe6;tVvfOn1lIE1CUrl`)JiR1LDD zZ!fdKs#LABS6&}RD|o@MZsSu`W|d>AMeSXZx_p~UPpTF1jzO+k-v0oLvhO=$L!$WX zvMpLljcdg;iPK8gG5%G$VA<@ZaRZR5zUsOc3l~_xiGojPp@WZ!uVsO+8H4fE7)NL! z4dMy_RqO><#8&J8#C1C@@f!?NJ66pQ1%uGJ1h-+xFt8G&B~B$|D8mMGL>=@JSl8VPfGZRb&_l&pzdoepW_WYR!Tev?cI)^i;xZG(KGCaABVa1?fyAE<)khKG8>_##{>P1#DwsmET7muso8yuNAHenKsOv zsx?*i6+tnTd~0q3Po@QH~9s;p zU#zmV1s8TidhKfhKcC3EE-g)C`&6z`jVDoACbiZgGmb5-$Cuj9^mufw_GK6##=wUf z>L>Myk7Hh0vz&SngcxItuGoyas;(Kc02+nCT!`7(m(_ph&7>ee4u8vFm%*?Bp7H(T zFE_&^~o7@sry%*So(6FLFipFLwaRtG6R zu=!AN5N2c8_Xkt^bBEXnRBEtUkgPR7lKRYc2YH(Yndo!|4CplZDtaRZ09C)g@;YTX z1C8ZwCY3*(#}MMv2&zuRDS$OInAPCZQbu_d&zJUS`#R~;jtC6rdi{gTntK-MKZ zJ8y^WISlMqDz+4-@d~{R?bfO~#st?8vB7Or;3|L20T|+GtU2-Pt9~u6CJThZs3e}| zzQ+Lw(U0YVwl;ir-u z1RxpmbJ_R=LyRZDh(^rEA)=m@rrlQ=vUBQiRIbouoD9}5NHZS4*Jdaf1dEd*;_PLC zmR973?Y>|l5kIrh`D_dq>GQg@eUh4-EUbFhR;Z5E7Pqc1-986fYrgb*KTv*GBBb&S z^@#Q@WYuMyr&hY#j_q=I*(-bO;o6SeM@p%wrtBy6mMEtV%B9$A4nmCibvOj=$XM9{ z%7c|KcKI86ipOZWrK@#hd8?j9jNpQ^QH2qQOY@<@GeLntd191|N~!yenY+~0y`D{p zn+%s&=hyOOxWhrVs_NN?l2E~3>nnEDwDzo{3EcIrw#>;DR@gqG74#sCFAJL*QuEE=g$Gs_W>4S7mNVKZqpFv3L8U!cG{ zDPkKgc5pQ(6UG9On4W;-AD9zSaYXfWkdd zJIAm+k5bu4z^DdbYw*6y)m~c#&uy;2 z?A*GlsulGWHc;VPDOD`@UCg4ThvCg=*gGpJwUl`34Vu{DdrsK7FqK;N?Q+mm!UQ;K zvjUja;5Gq0!w5TQ%^QsMRc9foZG4bdvXyQ3R+((Rt5LAkI(ni}wp-47f~s6N2Llw$mUev1Z<`7>qWde3kC2 z5Ec*BWw9}otO%-iIsm=OrHnY?8(te||TzzvWUh&Zml&av1lyz)bp5A6aQ4l+~Je73s) zJ%Q@oS{m6=Sn9rnu?<~$HjE1cFI!^8EEUdc zVd=3Awn}3tzODqUD39>OBL(jpS36azY#!{N7-iUCSlSX-7YjRUiEqS@#=NZc@@%0> z<@2bqzUH_&?>HW~+t3o^{M_WLKDL`QACsQR$X=s%s&gw~W1O+>e84q`CyedzTP}!T z8j=-kV}LCNH?a!kEb_o|M!q7su-A!bO;45FWA=%BPhxur&8hoqXw)bCf#_g|Na)VY z<9jW|PMW8e%PlJ44I+KY?``;}j8d}g%i^aT)5>ls=0dT$;}+ zu~M8$Q;%Xd>Pw^E*4w4W^B7u=Gw_mZG9G2>Mc9eJk~WD z?#+k}C3Q0|$?>v}BX4MaNzqcHtRDpBMl!3I_#vAy7kdKt{{S$~+cJ$Ay%z{NvcOEI z{$5X1&Q~!P##;{pjCk-#^+Tj!C5JO58_TOdwCcceq&6u8i#0mj#JTrV^R|vGQaIww znX%NB@si6cDB-QvBkUb9G}aHnm3&PdPL^g-iECg`50|*IuGY5y0OPI%U^e)M$hpD7 zkaEqE2$iTLYRzxt%5WDU@>}ps`@dXpyDo+|=6Ys3M;i>p@-mkgDi(GiZ&Bz8EeA`G z4T?e>FwXIlu$x3WT&%A<@>6DDHRnFA>Z5!Siw%{VDy{ow-7VFtw%6GhGEl5we-acb zbkytF(&C#FTIAXl50z}U#tRC7VhS4@X@xfTmZXEWtFdKU7*R(e;J4r9N<;qJm1nJv z7$L0N$hG-1_NXbe3S~dEfzp|hRukCxXq5pP_9LoHgBCX3M5AvdVvTkdE;uJf4gRO z2Ou)7wcI6#(Kf7j!!?|1U6G#TJ}T>b7NYiVDgD5Up>LQ%SfjOIbwtT0S<#1mRG%2H z+zlf1Ky6RRY^W`fjP03%RCKzQIPlDtYVyj&WSB>irL#i28OO6S%Rb;5M1G4bW%6Hb ziv`#Yt*TlDVGCZ=s?2!mExfzY49n!MtI?RiVcNdUzmbCy<-X>P;&#o5bZrE!XH#Fa zf))&4T{JTRSfQ|bq$kS;s-fXv5EU?6-%ebGOya)7>=-V(S=0xmE2}nP?gjDJur8pR z2WZHcVG?PSZ)L&NVaD6#bs>}CoCvJDoNjflErp@i2!88ohx%)Vs0^itgs6&*FvuGP zYWYI6*lcH;0Uf^Cd@jhLK-Jgm*J-k*S5>k8<6D7lE2_m^Gk}Dl4171ZHxg?I+pDml z(+$Nnj!iY!YED+l>s59q{F}_oyg;vRe#`keHgAwF^BSzPF2grp4rM$}xqPKXR@i@$ zwz+(1s5aIq+t>On>ds960QrR=p{^^WM$F92b_qEdW^ZX&g|jwoLsrb{K+ss>eQcu4 zEx~5sLVTw-7>H7GEJV{XFO<8Qb!EF3IpPWj+;EHbr>Z$K^g(kaH`-w_Ywa zbcV!dA*ohrVjx$oimhyG0sLsD$hK`X*3*np@lh54KHSHCQ(6TO zGZi)pnQSRqwqbs|VOY|~!(C%HiHmr{s!IO==zSuL6&Z-b$G)!Ui<-h3rE*-N9`ugLo#kjA?KA-D(S8-e{{Gj+b-Oy^|4CNVK$E4QYN7xH2 zK$g}9hfMVt;-Rvwh!!v1V2Nl{9z*P^MQM0w=6OayVHsRcCXsJihJXq6>)JY8;U{95G@u*7HfIT5y7P0cHPov6cWiI63o+3OVO*OOY< zb+2BR-s?^ypSRwhktn5oR%LXEut>uV|@Z z&Z>2(ty1P3tzn9|Hh5_pJM=tK(*|N+j!B40}uJBT|<_O2V-TZ-Yt6-U8@y> z)mQ%j$-j_n!xbeS=!Lo4U&~aN$gy&qTwgp4oNXf0mmVQn>4L=YLr%OV{{HYmK-&Q zRO#D%fk_cjYDFF==(Cb+v4y0JP{1@q-Z2aiV4E{3Cb;EvtvW8Ej-3TXLSngK+F@3a zW39?|UA2zN?`FvZva*cWYS3D_T2p!3K!((+yHVUr7AZL+6f0_-PsSXXomRYR-Kq6g zSzWlF^NcYGDPtYyBVcM)WwOAq?7$wYW@)h#!!pHA%VplMF2O};ss=K4JC|MUwbNvy zvQK@QQz-TjqO-9b*>2SehigzN`!)Tm3lW9>I`Gz(Q2ceJdcaoLpbR8}mBUZ=&Y+gdG_*LMQj zTmoVUDMKk4b+D;zY&HOa3Zb;AwYr2X-vpiQ7z~@62mN^uhDx>!q=Y~vRf7u#9fPPA zWm5GB_4zYdv|{a)2gQCh)$xMHXVjcEPm5HW;P)6HSAk%&GSmV$s8&%K+QzFv1B9!} zWv)CSNFmUxF~P}EZ;n{aTPDu_z&inNN-Q3%O2!V*6TKX8mb!s2w*tLc63n6OST$mz z#tEtufM<(FDz>Hr%GrPiEo*@Mh4Lr0l=2HW;<d8212fvfejv}*x75XIwI0_l-ct3qojuZ{v;(VEL`!n>~V)Vn&n zz@?xA$FP|jRl2C&*rg$pK@# z1D&C-(F01*5u;}EX8Bu5E1jzywd_n}81>D=y~%Kpj9YaDEDvTVdo-|CA*r)ogtF{B zL`(!+D^bW+dvmG4hzYH|SzBm9)xJm})HZi4EW-`DbFE>$azcW+z*S-J{SrlLW1IV%GMZA>h|OjU{PEX%~rvqI_vG-NE{TYX$TfH0+H z)xMSPr1g3h09+WB`bq}_*hR!y%Tx?2{TAdjc zlkpi=39xb*s9QICe#@$ow>k-&Kw@^I?ZyYn-695yKPy(WsIBxZH!!{ERf$#wv_%`! zMN5#%Ma%5lR-wX|cHb5_MAkWA-;_h5XL_sJ$oB5`S&G?Di#dguyZp13K;Ll|!e0gr zNc?QAFzw^bYJYN;c&+)BJ7at+kF}FMHWi~wgS~1SVn>d{+5(e4n`X7uV%x0F(N`%; zqZ@!VR$8X^@~?{y;PLDg;T7q3W=ihjFlDOB=a>k2om7;P4Ms8A5rkJ)L;y9saEb$}1X`@4%&4l*O|=_UZnRiD31wk^<8H0yU93eD z*<+MLp)}wG49X4}o7t4JR&IU0nvN>!rj{yd6;h$LwaC7`$T@aSA~hmUlzaBH#KRjesGq_vpWPM5;W z+lB@;Kn(u?UkWfLK^_sZ)WRkpA5Q1N%rJ?Oi#75#bBN#uMFz{5GpXqD{F2YaG}~!K z7I^P#F1R}RcB~8k0R3^Whl=dKwhERdniFAPWm4LrWrq46C{96k7K;amWn*sEH)g_d zZF+)gc^)r7nJD4UoD&8O*^IjlwyhCf0xIMTE%=H+ zh@Dwjs#M5FosqA+@+#fMS16P;vD<$n+u5&T%V%N6x$OM!?5D?SzmOm>whQugHnFv} zaUTi6S0|9TvNn84pAsM(bu5CbCGBP{*$@`XF6gXYpmL;b4;W#%wrYwJc!id|K&vTs zwQ_juC8OQzQUW!RDSKtL_@!v-`t2j~jtFpAC(3=Sr@U?+--&s z9pdE~T$mgm;os8}`>}IjPMr^pw#uCwJ+V4@nGX0;Mx(h!?Z-FYD&jD)xX(d*c3s9T z)5T4lHoj~nbqtm^c+Zn3$6~Y5<^|UH8}6L#$!s|cPyJ%%#%wFrFf7nalV6p!1P7@w zEK;xN>oKFTT3}djq1<*Ee?8R5dT@1x` zb*|>`#PZ7eZIV-xT!JRqI?o+qtBbrSrh9oQ^-56ZkDmd1Jex6>F=V!tW9si;yz+pQ z)-X+Vx1}>{3a?eDbv9(N>IPkhCdzpwz>j9?7;j^lQ+c2E-*D!oxb!vfkTk2L@#4D% z=BobF*cqv?d6~Z9eH+N7t0D_Lj#m=Z(gUgTYIC?}DxVEt?U0f}uuQFtJt%CH!|{iS zC3TgwWRh6JcEZ~OvbKwi0r^rksqFhA*5kouT~W5*Hzt7Fo#`5-R|Z{LB9(t9+gH?o zRlRR4tt+frlq>V@v1_)w62`UK;#PM!9BR1_{{Z9lRO50gk zAcgU{zN|7YY3C@Rn~y^u5@TV5SUF(Y%4}7hKYf*zQojowpZ;-1$)CGlrBsb$WFIqm z>Oe-`d+yZIl0Y*!aj>N2d=J3J;843LsY& zcxy>zOzzm#O?IWVVr!{P_=g~|!Sdj7Dy2)URU%ef+xsO^{bic4I?E{^w%ZcS{@te< zl#tD0)+VTxw^fbU(W=ye+hFK(jR%;bwIt;dGu zUG61QZwajXk%*0fZUWM+i_EP0GiDGrEH zuN*T1c@3>xyc;%mu(2VCk8Mw14!i#VQ-9R_9CO9B5>v<=WjD7Xmv*uWM(t@dZcy5* zb#3JGpICO)_(f{{t&2|(wI|9N-Z2ak+%Y2-GuAVf#9H==!Lh;MULfOIB2(Ax-d4pT zB^FQG&|s>X;MQb)F)=mhWKBfq4x=X$V4d31O$;^BI>JAO;Lpod`OY| zeP94ZvoocfV!JmN#Zcp+y0#_x8?2_!9n~q>w!&-{p|mbkQDbSLVdX0ZBMJTZ)}U<7 zYhps))@9{3{oFBdjpn=lf6*sz66C(rkG8<%gso?nXB?uQ&kp^MCtuDZ~io;8;qseE9$hui? z+}c#(NCRrej@=LjZzE)i>`N8)D%4nYBe7_eKaTE2pj7r{7x3vB^?L{Wv#dSwtg|If zAs*TB*f!ah-MwL-rE?OVJ^R^jBt*G_vE7NfsD$|gMh5_z(H(^G>^T=y%||5V$r6_R z(dJTk@~RY7Wx->ul`^)-P=hOSka8?$TDfS>c>vOvk*8UuWB8Tjjxms#V0 zw{Ri`whKx-w#-R-wcf;SQzvy|%~@7ra=UIk#U(EgwFT@M$ileZ%-EYd%W%gGgS17r zDh}gtwU!M#uZ)j`7R5!ihpo)p1?4w{_A~)CBDeRkyM$s?2t#^^pqlMdnakv(&26=JYZ(4T%dD=w*wu%swx4xi zW&kwxF}U=x{gqgL5}8#-ndF6pETR^!X1wJgO3BirJS#jnEl$$TK4Vvi{m#tE$P22n z?yt174?#lY7D=cYdd&Vcb9RxcnJdKh}|7nQNyZZ;fFJ~bebTCM|< zwJxU&)>&B)q{AfjfVhQrPck4bZkG=fu#W&fN93`(^%x-gkfe)4&7C7JhFX5|v)16E z*GC*RmvTcoD@zo-0U&)v2QOhZhq(ofvj$eIadTKUcxBJ&GBMV?wLE;8pH{J939+>buN<)a%{W?hN91jhYLXiiJ#1Rj zSs{~EsF1C#koRJt+@hty^4AZtaAN*GJ)`RUW%g|4j-@clSz57GnJS>Q=W6zMcCD2w zR`WGt%T>mURiX{TF-WCz_|4@Y5ZBbxAyv6OI1GtD0FV}0 zKv);{{8VCPw(iBBK;h>dDixZyjY+Llbvimq?khZ$%G@x_-g=l3Ow$8X^x9@-XX}aM z6I$}s(nFeTzI_Vm5XwV!G!m zhKFC=-xKo!fm6Q6bF#2SdrMCalgZJ%>RU?unTnm*T}4Hhns*#Si(SFw90WkQRhWjHhpE zi-TNMWjU47%#0YJa%T20OVkUm-SwyzOA=RQJ`x|mnbxX}_L_Wglff$`qM}+8dd<#O zx^@6JjUOV$8qY4l-K^wy02Q$z+%#MVu^TnBEZ4}vH6&JR@iwd2PsQ?Mt%yoy(%o&6 zw;5;s11PD8!s^X{O=rhXb9FyK`P#>PlnU`dI(e5Mfr9TjPh2kXV>*T}pW+{{U&Au6i;S&4Sj?kjJ!$ z*m9eNHJe)6^sdkuhE!(kA5l&?+AX45>{{U*#uM?`O#*XaEU~0UWEXKX6wGWUW5z%~lobLh~6@#?$ zWbANqCtB=KTDe~>i({~#3scsT_zZ5vSwVzqXG1Wuom_LkDM zSNTWvw^Hy|it4bU_9FMkOEPhz{{WR;hxiZeomt6=i&xje<5pV=CmU8@Lt8m`7_drr zjGiU6+RF=9P-hl4a~<^=2I{TDTH4$#AlZA1D&f`0YdDX`oNh6DTkYB{9wTy^lD{Nf zp#@Z7hbgQwy6mE=?AqHZEoEFLQ_QZNX?gq6-L~Nzt87rju3? zvLVmZ;y0`ZF^nj=G}cw#i5PCzq6c%)9yEZZt9(5}k^bQj+}jHpu`uuun<*fZD#9T#faWZGKLr)-eE zBoFUl4Ap1JYa}5{lvr6_mA1y>G8_1dqf=!$Rf=&b)tfseXMxSi z(%3Cy#=Gsx`(p03)~#R{Vsd?jX_6mT30j~b;W^|ootCU6g;*8_zC#2d@Et(0TT_+A zPvcuH1}~(^5Vjap3_i{a8J)&*qZ>KazRaeqOB-VLZ%a7Ww3Z)UHG4I*gs6FHpXqE+ zwkfU~b1~|zhb}QiYSvZvEU~iHwq3H#rsl9xHJMsctvz;As`5)y$6jH2my)IK6v|W^gk-%$XflHkoJ?tu_YwpeEmLVt2F>?H95h9dEEA!8N4pjW)u4%bLq8( zd_uOjk;qZUr;PUUtfPwjbK~+Wewno7SSf2Ab*=D>cbsvAuVxH=QCAE+fR)3%tBY2N zO4S#Khw-gb{{ZMoD_P5IxW)kXJHXkCj~}UFom(PS;S>>KyJA~cundb{G|0^fiDB|Y zr8Q<%Z!jRBNJra4V5x3#EV0S*vxk{5&nVFiMHpqyN!>K*4XnDm8)~eZCFs%B)b{mT zzaETtwy8t0siik~sli!FMp$C{_lf~rN0<1J%0 zvin72j!W2##@ntYCRv%Bxv*|orQY``WN_bbjZK3KUWSsTOMu}JGO?I5V574=if6Fu zs=;EW!Sjl)V;{Hpnf7kyiOo*lE;bz2kM{8T{!N^%9*mBNHrtH)l>Y9@!hYT}9F=B?VzsEw;u&_c1Z3+mBBjJY00+>B>~2mFBYO>x&kO#k`uA zk9Q$;Ws63|$VsP}S`Q(s_QfO8PaGqLPaR>bI%e-JDS4CzvT@U4R}C?55D|IND97$^ z<)+qg#fG|@8%2D;%4WmqnbZPeYc-m*_L=%(AEpVK%|!7d$~c3^%Av@rzuPKXuq8^r zEqLR}#A$tCH92W>?CWt!#tc`Ia0}pm;N$+5GHg=DqSS4Yw=H$7Jge{oAD+OWw26{t za}b@Cv=3(FmciLqFg6pWWV3SqJ-P%c>edkIrl?Lz)=+1rC5^3=P+FSu2h3K$!o|FJ zu(uk{6YZ8>!4Xcj;aHUMswIr{64OCr@)d-o8E&(bwo3q0nNeRIKFr^axP$R@gyIkQ;{Y`4!oUf>Ly*jmp)S5ny77}36+W^0LA7hj!JKO} zv8hC!RU93QC?q{^_$=!hdV(#KrvIw^Qm5j>{}u;k;(L`1RdG zu=i`OEY6Mldc2J0#JZ+W2K;I;d3hI}LFL-2*SgkWbG3taG;w%=?G>W(0Z-mL%Q;n8 zIQCa>BHL@Q4K&*4UOyjRHS}1CRn%8%GjgYo!(T68Jli5$#ML!5`cGVFCX*fOFwipz zwBN5R7K!8&B4%wig~akKJcJYXAkQ$u*|Y>fkk}FU`$nq3+@3k8gX z)4B449hYAwS5=FYabwpk89Y{Gj*VHtB}@dsGIO9mJF$ZTZ;z#I*O+%zUg;R4;PaPOGtnw;oYjExxJ+iaMwr&=p|HsQ#$e5f|3o z&im_a#5=2%k6WV8nNT(*b(EVGZzlH`tG$hi<}1w#MB_TuZR*DQ7(7DIh1#HjBV^1EY_j=Zl>NYNFS`;&F?ia-NG(D4EfxcJTvG7#YC?U9ZrY4xJK2NOQ z)y~IkK+{ho*VOvP=xwqh;g3)sBv(2Md}>Z%Y}Hxuuqx3qVs#al_ROKC=K%XK_FkZ2 zgZXRkZDf&{I~^kYvHWQ+TE=xpeT_#Fy}Xydl6a{_@_I0wep%wR&E^$WiE2i?GFM%I zKjk@Om&AJUa9owwj&F8aS0-^kPjN=*g04vAayfif;@QRJ+@Rjq*JY0BMHR~GuyS%S z(@iF(Xnva+nd?1ft27hGnd6=_JZ2PlQo#tbB}`-{1z{|)o)yH~5Zz-+*~uK6a=e?g zzmzSjiDe;wQoD`F;c=@5q-~3ABH>S|g*O-|qQXsUrHsOh(-yxVx19?3luw9GA+Wib zRi3k<^y)4ewGgkl5F{`OROi2Xf4;vz z+=p{`&U4Q5aC1M`eO;gHx;~#-Z)kM2#n~ZYdzxp6nlVUK%(1m`&iCY7m%bm54yNmO z1$3USXFEEbe*EZBnqZ9f(}u$joxG3K8U;TIzb>sopZKj~cjecQsXwR6o?1y;A87(D zePg|$K0Pw9_UCb{5^CV*4zlZ`~cN{IjA~?EuonoPMHzg%3_&|p7~ zJ~Lq1ozRB#C@cH)Tie)GiCp00;YT9HUVai$bA$U0w@fRP(RQnJI#hH?SM`#at!J~s zryF#Ss7DQh>O)>(Q7zEq20Qu526=LF3JT%gW<^oV`3lOyF>eSS^0 z|NInRdNXxqu}|xg3ZiN6#4F6q2FUUOuzeh2}=0 zULTJ))45y!_E*|v;YOtqY^l|w{=0bN$EMh`gMLuKLApc8;TrmLmuobFCFF&E&!B5t zLM`M<*9TTdG}$BwqW%7a8LjP6%WvSYPoV0Zb8(xB=bSui>aIkd%CUYN>tFQpapS9u zwP#P$Z^K+_Cetp;!jpPs4&IlvJ;aC`cb6aH6N)#KpP9LsLzT2M0GlTRBUm) zD^Av7b!Wa|JUCOXY`E>^lWvh9K5pmE_q**!__Gqz%U&gGP_t8~s#X9?`(7O%@0ARf z%Y9ETF?tk~-4@>B2TK!*x^iUuFsH>#5NdvHwX*E3SDWbJZ;(5$?v~wn4vhXbnu792 z`(ZqKW>#k7pU222xCVZI4?XNqG4F?*V34ItRxRUQ>`vFJ6m>s7N*M16Nx{wh2U|A| zlZ(~J6VkZns@>K9IK3M!Y-p%edCqFpidfb-3a9=PvbKB`4L;Z}wl*_5ge9ib8=U33JmDa8)+1wG>C$8~u|4}t zz1&#^d6LOJX0&6Le%63!!?NbUg3j&N==`E6%&c#(j@Bt@^B%<;5D@_j+n*0;Zv^Wf zKcc*!JXk`T(9Mj#6Bfn)9$JZr`!1tAMUU5xGMYqIopGN2k=glt?dT!Jr1kl-DvJ=u7s%tU(KfZ39B|c(tQ;PQ+2|FBSovh!%Z`9 ztzG|lGs7L{qg7efBvr)fctKzaJzlECosMc!(N`$X+a5f+%dTqiG)m0>LlSxI;2UQb zd~#(e@YBSTIn=j0?3p`yMtc$Fdq4Fx0%4?l|KQ~p{6Q1Bk^7y-E%N_0Uz*qqE|*ey zg$eBk3`)u!)|oeQ`8KF{WDp@}bEqgeB0L0H6#HoJu&BrUGP*HxFa*v03QiP#C!T}Q zaF0`mpd~-N3%MV9>QKm9?{R7OGX|9(I-ao=kDJTKMI685{$=s-)Q_=&Lzy#7OheUz z9`YZ$G{(3Ri&RK6`zJo(P0#bDWqJK)Mjw7(lb(9tZM^_$o7mJj^#1Q5H#ZmOfC@)~ z&cRdRlfoe~6PH6mXppUytdt-$xI{~!T9%c;gp1HI7S8_Crh!oneMfKiV=iQm6_ z&~o^npZlUkrwEJ_jo&QT0=R%d%WDa!+$FM0TGmzExVfwLQG?_UM_6Lry>M3K(FH z8UR1`a?ZuUx&fb_4j ziMTIf3Km9#Zw+e+rAM=K1SuL?T(ZN0^3{G+&l*j_h}!n|~6u z+)Hq#TdEy$c!d-x`4)dE%Dm9K4CvL zv`~c>M31eVc}w8Q08hv71-~tkJ6dw{c*tdgGqP26Z$DgVaWgC{nYml#iaAef$3tV6 zF88oF<&dXlhaZ(YJFWJizeh{!v$9KEQIqku(fpqT(0}&z_$Bph)lV7_RzdCR)!NKDWoY9@1u|Fh#1CMaa`L_IyeGphQ-E`Hp z+Jm;7i8{ZPPYx>Yyj(88_&H=V{P9Jqg?h;4%y|RVm5lo{IWIFMFP{Ph;{#9h1(<;W zmZmEc-|13nUK8tn^X&oj#Fwm7T*OeIhF@0TmXqQ87QD&xAWM4Qas zD&0>sux#8vu~@pF0N2Z~NadVQOz!xR9J<1@X)5lzw1v- z>?gm-H%|R#hb#FOF=}N=LF0S;kzv)jk3VL#Ohi0D519OVb}IY&z?|%M@4E!iy6wv; z2DiBuNxa2l>E!xDt1CZ$`|8&a!ymU#L?)_FR*l6ZJP8_pw;y^k-n94Knbs-EZDpC% zm3{7;iPFB|3v(vJ+Z}uC6*7@z^upUY!041#Xi%f7Sd}~KlOlI`b?NAj zsX2)2`uxg4*=_zkUnF0S4Io{eL&eus6a=eU!Mxkdfyt> z0wz2*e8OM(?u_{MRFX%-_;_yZ=cTC9)@h*RwFi3krDxzIE{~<;?T?V#!pt-K`fp<8 zLc^5wP^*9}iQOCF^e?11um3(~g!zRB?n8f_J_IxlS&~S4p1G{?o5R)H{@+D`%8~q+ z&tEuh5fb{#b<~NA2(pl=3jEfA96bE(=qD#$$MuLcABJnNeL!(nN6)ZO&)GewSH-ed z$M=tx)QG)${kcWndY^h7%}ub}tvX|U_@4_A_Su;uN$}S%_HygTU90MMN=-{kQ_#?$ zyP^k2mtEV=mKvNfK2;u5H$Gfq@lT}B;kdmy^c`b^n3U0T)L6c$DDzSS%S-&HprCfv z)8=RJxVM)s)ZXFV^RqNl$*hostw*w&u1F_R-?_ z!>J9GlZ4E}Ry=2aNpfQM?XpPSm7@wO@=gEo{n5Bxk(yr|FyiboHB8vQka*o@Rd@V& zLf2he=@UCgQ<8%AFdvdj|LYB1wg^FYe>^bV?_=!ufI8 z`Ea`2WkS*2x6_dpFYZz&fh!9h(mkgVTn%_{y~^+g3i z@aC#dR+mwWpBWAL|NV&y)$%Iqcn4)148QkY6sN|e((zJFrQ z0+f?>t@jLE(PVhk!t&vcrNJLPUJcqC*Y)L7sSDhM-1NVP>=qA_{@G6+*(L2h_}uUi z+NL{y;ZN=e+HC-S70;*l2erO$%T2D?u`GHK!o5(sr<~8>cD(p|Xmc;Y>Oa+{x}Uap_j702I#-+VSG`JmXc>LF?7sg{s% z`MPQ0WbYdmk#FSMgRIcM%tH|ILq`rDK7DzD~)~JB9|1EEIn8?8TLJD;X=;(<`V~+Q%&6hL-fgV}T48oNu10 zpl0}np(R0dPP-OLXeHn=Gl(&xF}UhODUV|SM7?bxPR_~mVO)B*GTmXIvA=Ns*u~G4 zR|bQ4Y@~{h-QBBGU0B-3b$RvdQ08giX(Xg}?3{$0VHrkK3X1VbV8aqwQ0-iQlRKB8LlO5wMW9AW*V{Si1A&{)Eo zQ-8ssQbW1p)D2s$%ftY8*9Qsw*J_?CKSx=_&Zk=O38nBWg8hBrI0%((jl9^{V3{?N z?sWM(c&~nC@MAl2IF^)iyb*sY%l~-lg?FuD7t?JQuD?$C`Hl0VdbCH9#G;%w&Yd^Z zFJO8YFuz-J_R@P5`BjZ#oQqpi49NP|(Z3q@!nnT5!lH(mJMi~aWAJImalLr66)VMw zuJh4I7e}cb#q(jmByUApcz=B0vThWjGL<~5J^bOZIm2T%V8~v&I$$5ecT4=7goWAH zTx9z@;-&aFpYh6SmL#tI8+1(hq5sm0`_-T9%m-B(Ygg4m!&acmvtLsZBR2-g=RF(u z_!IbJvgS{OPF9|E^RghCN>hDe65O(GfyoP*W93Gj3X-X7gVn@L*NKwJnk0&^jisF; z{_7=3PBhu~`d!gie9;s_F6YYd_*hTR^E}15?RLc4#CN{SEtUEEAPml;;Bsb`csHWK zY4@f-zhdng>0EW~t8d!|6}L6`&eai#x%o)~;KCS{>F9*fVOdvO9i`etzU#w~A?Uq5 z0PU*R0&;Mo^qdgCTRBXYJhPjqtaRql*h3l^H+h86TO8!~+ zZ5t6=i`XNF_Z&Y>RF>R7(*E=GLF_bt%$=;d2TU7Z`{mwM%)cKWXN9Kl&+!azOH87n z*Sp}U#7kcl6>YYqYbxiIg*sns*Eie_Sx(_^z4eKXSxhdlp3U_*k5dI0yL!h4zNjb; z5|!Og*!x;`Nwj$-wYQ<_+Ig9-^98@X7H*qNC)AIfZ}+uZ4V)h}$#ri!=YIOumHlrm zt-sKN^*M9N9F1j-l*FUSl>vm;TXQ+M<=)5so)&9&Le?t(aQS{|aOxj5I>p569+qI?cq^ZdB(5M zXRje6y51Rh#tq0|m9uEIw9TEsa8cu>JPk2wEj?)0c26C2i+zjkXfz!a$cZD`(!ASUEu1t#&x@21P#C_FH66I@MO@#EI z!dueo`TBC_0x1}{d>9sc`L4%{nQ@izY#V%jAKzs5(q^9RchF3N(}P%hRjDy@{d`Ww zlZ*}PA1WdeCS#Sd?TihGp&g%q7<^{z?B%gA-qqCe9YF&@*(Yo5O+ofr+QF{E8;?5` z1!k>d{;QalaIQ&Y#rDK%+&xW4v1+&9LEj1IIX_4-1C#0YpphrWB$aB!$|-M>xqCl> zkstQ5FUUC0zBSJkDvo1_IWJUH8?S#&F(;SJIX1IG%P@EHoNYFtHRQ5%cVlCo#VYS> zD9g4Z_kjyu$dMlFAB*{Zq%}WT#@trCS3!^6RO2akBSkMqYw%ZH>4qKPy521fvsQm{ zTAqms$*Ok4s)lr7UBc=}>qcW}B^1x#&x?9GEANMDyqy;nG6=hq7pIp}b1VDC>(<3{ zPiFbb(t6g-I{C!xASONb>SOkxkZQO3e7DBiWrMcVV1&(-Uc4`_oc4^B%*v^;@KY%w z>iPCH|NBHV7?zztG@Q!PkV&zhA$0;%bQOd!ZjVjg{K>Ni=h>UKBR*3%uh8YCYR9e^ z$z_L7c}Js6Dnj#4Gd6>E84I!ref@ zWdtdkvTR$b{X|}HfCxx^3?!1#>qQ-`L@27-h}a4q*!P>gpFzts{{#iQkSAjtPL4 zHkT>0JvrVr)ce0*!Xcrmt+T+aJlUhIGetecZ(2yUH^4y}WRWRED>;^gAb=xnsRAwW z{(;{%?TvY+wj6pYBH}`36sYb7Rpd1}!m>rgqKwX!19arkz3$fVNY9EEqQsW;!mUpK>w{|Md z_qQ3|3kQT7=H8vUb_Qf>kr`}zqaff+rJ4G>aK?0$MqcDPNapjX{A8tF@RQp9+|^se zi{mO%DpKdu&ORW6?8#F8k|D$DObMGZ<5pI+E=XSLdaPkt44@5c_@Log^3g|izs`Qd zOCcgtJI^{)F1=988QKc5w_WtSXRBQ-p$@w;I8*pYihQ(o#L&Zggn2-e_#-(jkh&1P zt3o(A^;~_VxuQtt-W6%#t;Ucs=i05r#*(!P(dgquH$H)?JAS?n6?qqWpWiF+z&1ZJ z66mtXILNMfM3q0sPe#4R@)2@YqHdLp^M62mGg8Tq8axRO&JS0Ai@ttE{asiOky378 zU-Kx{o{v~3=9#;1uY&qCAD?Ze2&%dAPR(2@Rx9LffU|m$lU%RoPIrWJdDnICiYmVR zg4?xQu`@WjX<)VX?DZD_^mcMd8wa~vA~ZFl~-wqWO<%5mbaql(ggA*M@Ejm z`Yj)mqPy@eq*`-`_%PrEf^8_~6Wshz?FE;xD?f2yd!-y~O`h~r*)cI>zkjzf>=664 zHuH9@`gQBUP~*LqAY1AtSmT-|mOtVKN?vt9{9*<>kH2+NuB3$PTVz6$FdVaJjwwg1 zn+vC$Nx5d~<|+8|16iU!+(?e>dWR_H-+owj6h#q zKJl0P-v zsVem#Snl#|bE7MmwTDf|$)C-gUz>kC0=~L+Mfw+{#&C%VI5Vl& zy~j?Uc>Nm@A7JNI4|h9}hnRtbryf49kn%FIekyX37U{hRFjZ`j!(1}pBjipDA6fNi zUYAErhsvstIgwlCE@$J@oOw!I1%+l>srI$9f#qIKi3Q`avi37I@$Cq%NI`CVcma-) z-Pe|ElQV`W)yT7#b!EYa3>o_c#=1=XN^v!gui7L0Fjha?oR>nAGd`8VXU<;mo3j1R_xZEH z`twJ*$6xrwQX*OI>hIgnNs!;Siqjm%jgEcqT<+*Y#FTwWoIv{yHO!16%a5?3(Ui&*WXQLyf^0E(^Icr-XkamsW zaM?PvuH=F}*vh>t3J4Pi-YRpbm#JQhEVtrSYvw&OaxQgw>-Nj063UjYPFEm^GmC^C zn$m7Qu5~wQRkl_?zOWNetkLJCD;IHVN5!U{DR^QbSSoxEIG1J2GL`wY;bo&0xz~TS znKWi>to{0lgM`M-=*z*Oz}m(uAOr(nMST~Ey#|kyRoJbvhYyv`)$`hS`DB_HTILWWW@JlhE33>g=>-Sc}>KJw=!dT zah(LwOnVc%?7oRxzENu04h7~l)=pQWY=TEUNN;M#V*eKy73hls$Bl5O(80q=dRg;= zS1`L8edi)-S{w#3@+SwUit?s^u%Bp6O(}GW$6X0~GWPLL%fACb$=9HswHb}ZTEk!XW174JDB<2Q-FPyqB{=!QeeA{TI zbY=@DM>2*29gmgu@gt2Baw0eGN|s5LgT2;FOkMS7?_Mq_ytu-$;^LEHPNkSuBnqVz zx_;UoTCty9J6joc$5qgk_SkjggW<{_B@O4_P8TdW=x)&1wf;TRB?zBtsIL+p|gyI?8ZS;dvNyDnNO=vWK~QRop-x^jy7>6ezf+U`z%SENLFuB z9o^Ra1Ie5zw>sLuyxBfDhV=|rMz2yfO#?R_f5c5i*>ALj-kHg?9x6AHSGf*j@O4ew^` z$A1~RIUIDicj_OX4-z1hE5minO+MQQT=zcr_fX?i^^8VVlsqCc?9|^wz3Dn-G9xdf zeb2tjDYuXceN|ZLHu!Ht1=xDJzfSBzo1#Z>#xwDwhFNtBkE)K|T-w&c`lQ@vN4)tR zKV9HS-c}(XR_@lfuYpyr>o=kY-hA8v=kb!Os%ZFe0_5Qsv)6CKM9uKKSq~&V4xSQY zpU45@<|~Q0?JGUSM`Oxk!7 zHZvCBXNW7e^@&~<4*$`%UK`z>x+I}yLOK_!rL=JKx!NoI5Kalv1om*)wDKzaNam<; zhL1=~ZhGaptA9+X3pW3L%*YBPFU=l|_B6k^{rlpNXWw4SC3m{puh~1tUF`QP)SM5_ z@{Ryfc`&rAzLK8PReOhVPYUTq)?HJr>z)VeE*}svDXJRSl)()!PFm91nq?Y7*(ujJ z8l0c%piuhiw{33MbuHe8`b;R#eIYggZz4^0$4~--u`eW;4+9j4vwQCdfo3g3$8%8xF zQ6E#QV%^?_TZV}L z%Ko$Sj+GX^Ief%<$8hC_n-8b=C%Ah4pvAZxY$PvP_Bpq@I$ZJT^Bl82|4A*Lb^a_K zbK!~lr2UKMWQE2Q{)sSBt-k$?ZTBNLrG^bgvBa(lY`N~}m-HLGN9K^H;i+Ab_X|PP ziz|1(9_bMQi}U<=E1qvJ&dkj0b$|H7tG#bKFo4gf_gr|Vm;L@NZ%FpEj&$Xpp(5>> zJ6KK9u>0vrkMbUImW=C@O8(XZIWrkXq1%zVa0dSsesSZJB65pinQh}sBcBtSRsG3Y z9tR9b_N$tkc2?UL|9t!QHqWMZe4Hxy$c@k5J$0EPb@q|0V~UC4J#Dw@C&$yA3k;18 zM3~`KM+2UUR-QrWVU!-(jqY__T`P)n#qVkcdSivtE|l_!QDLWUcN>B1TZI~YQc5G^ zRnEg6g2a|>F8pXHOhW~oBR$&r=zMaOaHF?A$7b-lZZS7|{b@sR7OZ|e!bs|>NAovZ z^63_>TETH@8Tv=P5h!vB$NrI7kmP$afDoKbunxQGjMs>jRM-b}Yp$#M#BY

tbIj35lM_gQgjR)tL)yT)}MVYzG7g0DO-{^{VqCsLIBW)jh*~DNP%D zrKcS(e-DW*8{Sh>Crj9?_vZ1h^??h|_hqVi^>Jv0f9lG(9xqwuj}SIukS-OmaKkB) z^DBxE{Ddc)u0IduXyr4D8&e+2YLNaO!bAEjYM&{+QaM<%U-zte_hvi}zu%g_Ec0Qy z^We3;MqYfhww=|{z)b=;FV3J_^;B32|Eb))|ACP@JTUVAzy60s9zJ~N=%K?$#Klx3 z^iEkFJ#)cL5)`C=@dk|VvOD_j|G|+*{s%{19gycDOliquDD1wW8ysMH(hkBhKqr@C zcLTGF=acWKSiVITq%}G&Ba0Yl zX%9+w-9U9vbnE8x{K-v$zglix97W_!WH7lCum38}=97dS zShWsSsI;Kk?CmBf=hlCg`kQuB5a9paXKF@6xC zPSQcfyxXJ*PXTfQ?_+mRCU^&OgSnz)nHofOp=ZkuCcjDR zXrp0(&<>M=%)f_RCKi)~IuF$5=h8uGH>HWd6gS)6foz zVI`aKB^6)%F*$P+eUe~4C?XJgU*G*1numBZP{|J6ETO(c2fNLU2lxvcc&gqblfJTxrN%jK8nMHaE^#|4^50j*~TkU}X znrNbFVde}6hg?81d{Q^z0O&byT}}~{(L|Hp5t)_~MsY6>O(qx2=~HGWtExd*K@xU{p=|1a%rl~9to4TLcO-fMs7&OZ-BX@>o(sn} zDIQ2wsqN5cK}qh)AA;8zP^W;PO2`-Z`u8^7Z!lxD-J;Q*|lm1(`jSFGv?Wmjlth3t`TCjPzXSrSI9hi!v zNx=SjA4_lE)=4^+bW~U9;9rhLOGtlLKva>&(k8>tOx~1k8urrMv^sZHcrw{*e^h>N zeFMsPMl=(d;2bGGt1*d+M1F{e2nS{y)TOD-Ok@n~K{o#*K^d*8)y4T(sU;?pTUHIn zP&Zh!Xvh#(_j|{{H5Os6nThIi)0!5W*0g37MN9rElFsky=5z>gu67*hkfLUkkj&)o z6-vM)SviOnETO|>+rft=d)hqLMPyVfl*6?+g_(}KD8rwcB;WY%WOZaR^P z$SR;AsRP^y-PL=vSQ;*H-k?xnD00p52laKv#;yxmg_#FpMwHWYTpOoWXe6h_`_u0aySbpejS#~YL7LdE+LORQ@fa;8lUx)hSh z&nEM|WhxD~5WO`&i^MIvbBc)r*hRNiR8qup)A8O-70U*bUEOYKk8yz3oXNU$SyTmF z!6hKa6W{)}F)hN-jV1LHh2|vNNick}_X}qOi~~Pe!{D=tw*pgQuVzBb1bKFV$h^sP z?5s#C*c$oeh78aJY9#p-@0=Xy+H@+YsxAT|i{z_I{b*h6N4mzolGdRrdi!4K3zJDv zg>wv`?$A~;&oFjY^g<*dqVOfw!h%|k8uq2arw#9$usdag@@5A29HUS%# zBi#Y7Gc$h;Kss|fAD;zkhU(d))2ndNZ!h-m`N^AAq%V9KJ1DxH#<NJgdFM5Sh9qdsCz^PQ&SYBF}7fr`+{%7p{^ zrAgozc!4X-r={s6ysmg+PgPmS*c&3+nJw-a;FCSepfK1pULit&&o-T>h7K?-xHzdb z34rg=rlm&*pkatGiohHL$@pIU%K^p+%#XdAwiY0?Q7+H4RZGt$i^HG{sGGH&b(>nL zEweuOwU-iWv*DJOBZVh2I%zJQ!qa+TkvPE*Rp#k}&OU zNsuRPU2+53HAl(>c`zhEDlIToo5au+op;5C=AfNXiVDv%Y{Cn?b%;#2kxGpta{WA$O&{ob%bKGl z8R}WmvZl>)BHKLB1e;O>q6k04`U;mSL&v()2L=IZ+aD+4Aw6rTCTgE+us^9&bOVKY zBB1Z|N$1V)+;#D!_}NvMNC8q^ML^ z!%)1vDBlUcu~AYA$CT6{CzEc^VkElTZp6C3y_aFslKT-3aI~o%3ii)-li+GLQU|({ zT^S$qvV~n)OIzGXViWE640kOW#4$Ta*OQ)^CNY|hFE8=Z&cWVXISDEa4lvEK4n6^3 zTBJprg|NPAPJWP173)dc$lyxHYl&16Awc+I^Z(qikOHfS8t4nGEl(38HIt3T!PB(9Cw1dtu+(yye%sbm|$PRPLIn+U3 zDR!CEA*-X@3%n7KJ|E1YXCl^WJ<0v}4nD>Ndw<(#ZVN5Xq9s%9j{WR-f~UP*m{e%f zh@}DHU(!m5oJO;Ywb3Yy_@=``LWH*w+G|#aKOPXAdHe>zp?jlAjt0FrQk<5-RuTS5 z>h6YZtcYqh0l~V*bx#=TWM31I+S_b;$m>47H+GMzMr_GlMg?3GTBm=IP*RG}A>_5$ zK{!f7YT~&hShhrVWoC>D1xxvKb_)$Z31X6%Uw*5Muym(oLrP(R8H}17Rnj(W6*JH+ z#>(jz<3bs2(SsEv7QPx!b+n0x2z{sYfs)nnPuH>m(UPnn(ojYV+jYg&(C{KjSG3<% z!6xnXv!D8zIR}}AGreFEodE&dp6ewr|6!e2LzV&f(u`w}uZxN7qKR;2N^ zOVMu_U7?}OG)BOXX+UI5=H^++1caFd=LeC6g&M@DNN9!yI+c_#>z%NqzKV1VOKN7b z=n`2Ti=#I#2j~>zDfcUxIckXr$|IhSR6>%UM8h;$7!^D%okdboG6Qk2Sz(SATN(&=TDwFy(osaXU3!c?O98=g-XY91-U6}imxInV zIxxyl;~(G2CP^3Zp5}sLsyQ~XRbNe*q7F7yaHJrdqQ#Lk>4j-A26D{>wz-@Sy~d(R zWoZ1?HOc5h5DpX^229JH@~??+MB{09nw(ES!|w}$Q=KCD5oNPnLhAGb3P+L5}I!&hokBw z%Bz7Ui1hRYCS&r;eJNr;*B(^LoFht;pcqY9Y#22sC(^aJFpD1X>jL5tW~~}WR(EgK}LV5vds(oKOII{dAi~pX}R{Rxz1jE&S1y%EUj} zH*jdvKx86okd^3-QRelQ)NK#d*w{O1#@9OWlvjm|r~BV#An6>1-!t?fB2BvVq|cjSbuA5iL-e#y$`*#)5`3*|c_9OOb)YLr@+$L78jVRQ2g5!@2-AQTv`OY_ zmrq7|Ml>~=E*`Pc^pHXcpUDdi#7Y}RzR4eKyj!F9*J9MCdvUE9VyoY z=1828#r;-qt+}DV2y&lD(Jd6NiJGHI3s7)_OJ$BKQ!`1%7q=M5$w=5RI*_D-{&*i~ zm!z+V4=@gpQ;=WFvacFg_G7IJ=p{egF}&`!?9}4gS-fo)qAQ}bK_F3orx&RaR3fyb z%48VS?G10HO9wm0@N+ZvCpR1uIJ&W4GI<9uW7r%RcIz-i|rsh z>FJ640y!ZQ`G%Qbs67b?^-0xis%6|4D7x1qFP%!p79nZF+qMTqtVJwIWXC9DK-U2Ennfui{NuS{lvIRax^KSP(T4#sOI_*U5 z5aAMH0#l_^`yoISc6J9En0_Fslh+0p6aw-N$1ad`g`>9B-~v7=oPwRIVL9dDXb00c zg8OGoKai)ikOeABmu3)6jiqRmy;}u)vA0 zFE`>OJG89_m2&5<(N1g92sh`@Z#bezb;nnC}_YgQ5?A|i$etH z=Y6H1bA(#f4VuQ z15RInY)t&>NmsuajK%Gq1x=Y5U~wp9BlP;g$Kuhjgka4PYBNJ~8q$Yd+)NZSnqj(1noz|b&T!cH4?YuHT1n~G zq<>ky!D0E)EIC7{8&)dAaFB9)Hn@yx=kG(GYz!2IXi8 znagY`pp42UWX)^6A`09x1Y6)kwlql+S6gr7$E(WqZx%u|mIek#d$!b*H6;J^O^Wd7 zB=pb4nNnDSH~htSB^8zrYy!^Xqr1RN)uI^t;xwLjZ-YUFA?}sFrF&nb<~a1ZhFX4r zK2;g**#o?iwo{)-JGUy1`_x@@9zQXj`@=+~0xmZ=cko!Z%L%@|h70r%W1e#hkWMc@ zD@mJ6vmg0PMqSO#|8tu4l*R?C_^QgSp{}N@u-&^y#kXNG+!9)B^6V!uh949cX^qC^ zMa~(rsYEUDlx|hgNfvlL;WBu9g=jWzDw?cG&=`7o9F~b4{Y$F)h=!rvN5o1pkGN% zT-&@Gjf(>e#W3v&S(CB5UX-vbl7tvbC&$wPLGZSdAdAxyA;PrtvzEs_#5V7}=jqn$ zMgu0=RH(WV;>aRA?IGrN_M!v~j?*JxcwrO=#=+#OJNl}<7x1+(bu%_*Z%0xL?q!fe zSQ2UJjnClO)bnLsngwo~+gAq(`lZ5OMv>RLUcb&k<7oQaDTn|eE6Id5+W6tDnm$=7 zgQl7X+S;@xcb?AuzI^Fb5sj9u5Xtj%?$gzz()1XVxvftUdrIf=D29tROCc;T((A~{ zzCM)%^4sZjjZrw!rpEr>s(?^uk^TS;Hz+UBKisEnhxP9J4^JUn{D4J=Ld?b9=NPKm zfprBH?5L{ZVNPYVK51aIf6z-+(;UZ9EwS8|JXl_$G?G%c?10FsnciS+`{aTUtI|1k zn`)C>_Q5UPLW5oLLFrjofDq73p&STaPBxGphV5ciCxNOJcB)mssMq!;>OwbB$F(#F zF4}O)JLO(kp}i*xt@iEET#Td)D~UmHIt=`?_E*dDMj^u4-eaZ$_Kdw*=AHuKF7^4B0#~2Ok-()Uy`( zSd2%$X}x%>B@*cdGb!2_Gh^`-iZl_JUGcZc>b<qp?oM(?EeplVLPI5T!bKNHmIgr4(D=3D zUS&JZeF1VW=ds!yDkR>*>js4tXJHO|d!VxkkfvHnw2SqsY{ONF>hR^OebD~pokF0o zy7{&fu~DT@(3^zSBMEg<8Bp4`8_WW({s)j`r8|kBP$ba7pT&1iSVUH5pR}=kA|TjL zbcV} zV!%0@ObLhdThhTgvFD0edJY1`>Xr8FqD3+HjONP1)K^KyBL>B>T#q67) zbu>1c0CLuVO{@etKqKcSxjeVJ=9Qpjbv}Vh$I^m8Ev+UQU#ih!M8kIGR|JX9rlH+v z30KZzUn#a!TZi!`_!*46Jio4|1Y}P7X)ZEz2NLr`S$_{n zTjNJaoLHKn3e+h0b%30F^d!K;<|><3k-=3EI;&=Ay>H2L16TmVYXWZUsLB0i>UD~t z>w>FIoW?{sFjj%gE~sBr0e}Vo^*8CFnB}F${ML(wC$F;Gt>r`YJTx26Az3*rZ8e=R z|DydlbIoP?y70Zy;1~q{OZr;$=#<U0-VLO6*{cpHOVTn0dl5fYiJuN8{jnMX~mm{ zVmTEN!L>0dKuI2IE{9+|;Sm+^&t!9_{bx zqb`twr&R!kWV<70!Avr1f~ZOR_YqXMFDjx-M{xWWb10N$CS3cT9t$)w@kNF?q{s+^hQq->DBw-bu#pO69o`(||%_=Gl7hN!$D8&|$Bw3Vf;~StZ#-jfYPg^-}P)Om8|SQ3kYoTx#eF=RHD zXs24rjt20s%OPuC7>WA75diII<3+-~Uk8gxyaAf7X<-XDu@#l#@QVx4K;WgcHQtR# zLTRsxc-gliht1N#*&uw_6aFN9U_V45k|MRxucYbJAqdoj<3Nm}NL(0>&NNChDTg}2 z0d4^RJzf?Bh4UAC!H&CShrZuW>WXa)%*2hxn+Zv$^(#Rc=hV_kGSmG7vdgX`)FC5c ztB#&YEG}EYLm}){k?qC@kkMKT@6Sl~CVCpociRC>6>LFij%W&xf$}#&kvtsvZsg~YcU{clVr^ZZw>*%CDrQ87f_haVojOpMVybSieb}0>mL6P` zo1U{pke4a{kE3((XZn5rxDLuWhau-M%sJ(JtR2jm zIUkxnhD_uXB0_T5fjN$Hs*U8#=1>hOXH&9@tWp_jX%&*3`|bPNAF$nz_haw-zOUEo zdA%f0Q9D5bYJ5%kE=}Oek zEJrC7Cj?cXAXprDC0@me!}6wUbxfMcXN^%?^F7R@QDNrXiEKmP;Sz-LQJm=lI*JY= zY3Wcb!QARy_sLjeV{?QVTG$TIcwvTvz6Z##(TJF63_g6 zHx1uw5rFBzR)BXZ>T%4_1u~|E0qXNst?hGSBcx>Veql@>GZ-ZmNu87~S$FUADyc%Le;juELQ*-i z>7d&$38#rOHSF>lBO^9q)Yd+P%U>KhEb)lgUlfj^!O80sPhUccq8PMHTPiTcST|J2 zt~_4ZDvSa{O;;#xUKfMdu_#?v#X-zOzrI<0fLjh?7@l0@Kl0j&NbSyENTQC$>98*6 z=E?)(?FE3L{)*-!er$hk2#LOL%by&aw&GrdB&6&H7NAUBecdb(UR{G##4#qP8@9DJ z^r#ew)SB;d4%>GCV31@0bKAHs8y%-9UN; z0`HpMXBh8*6)B;TxlCVJq@8aBeQj1;Z&W9mF>23DL=0x-48YZmt-%*5`g1?f`Bh!M z9jqx_nj~RDSCV_tRq>5BR`c~Og2{V~T%t_UJGzYHz%mld?}OPD5C$c^7W^W3Hku!> zx{;zNI;Bm?bCfQ_4PlQkjmo7wL_d+c+XY)f(LBbdD_9=FJTOS>bA0q|8>!?$g0=zrkHJBbJ%W3+IfdjO7Jf|ySxz< zx-1}bHzc${Yqmu zihMiCleN`(%e!2Ykli#_P0Y>em@Wv#J0<&~lyVgoDwLpC)A+^Ago=l4|AvLcBPRJa zouW6?hsO)}IH=GC?j?-xFHBgn^jZbTFS1C=@8iYnB<2WCMF%=PJ63AXm(-#!9TK={ z$}YLAp>ad(0!+_o8TRhfez8YMy#9)VXA6Q`6l|oHgtuu3<{Q8>O}Oy0D$rmLImmAkU9HBDCl%Ew%5xjO z!)NzTb};EL_jLR=?J#e%FHg~_c23QrHG4X^ldDAm#wweEqp7zfOLg<*k@D$bt#T@^ zeZFOrwUOVY&S-~GB3lbO3->@!-?7ikV7ckrz2+*TXSi-A+hKPQR9FN=lgL@?xS>h? zp>0jX`aho0X<{*!53znfKIc_@V54A@=>W=$so8+7Pc1=wqRL@LLA`)>h`*eiC+O~Q zWhX%~+bJ0JQ9d_Xkvhy?iqjXAF4Gi3ftG4iHBpmRcmeRx^p~Q!3fR`%Ukny8TuZ`Y z-;YIJH=WKQtXpz1GT3(Q$qlCGe9JvzIJKchHcb_^W5T&@|Ej5`3 z0b2U2u?ki8>DdaTT84B#3(nD4Bxt$NTH95m;5S(e1OUE7Xf`ZblK}BLn9`O5P}Mi8Xl;sV!nxR4U0V!%+@;x1(h#9Y{Np(;2TqNTE!Pz* zP#j^Xn`r}C_w&mPIDR2r7|s^!ZJ+VvIu`@+HUh%TLCxU&AcF%2b5>hW$SIoNT}E+r z*feo(OFBWEF%E$wPh4pa5{Ms2#Q(@x8g^vN9N0w zupQxhE^ulTn)THiaoIoY_fVaY1~tl_vASm;$x0niAz;iLBa^u7&KbvIax*xDU$vkZ zRDzE5fZ-t2QU4_JHwM#oElip9SimqmFMUB?nX2M+qd1*Bfp)qs+7}T#><5Xmk{@W~ zd&L|ozeIzU(OZi?1-lMFeJC&U>_#xG+l%1hR)Wvmt4LOnWMn(EC(eB%(#fO8Z4-E1 z2Uc{l$HcE!$9Y#WNDY#N<+N5yot@@tn?ZO5qAzuLRKux%kxc(6`}|69rYo_4_>U*6 zEL+hLm5)Z)=M_x~7g37e0YDDf3OHap-#;GS&YKLG03{SbDFiNO%Bi1YG*q!R&I8Sy z?f&r;1JHNj6OTm^TQk9#1)FMoSaXhBH0mw%fUA!>E~S{>uXAG|!sNmPUI+%Bc*a)* z!G&!iiwf(EZPBqeO5@Q>`m1qCp;a#W)3rH8?NDT1E5malD6;k%oNV_H%U{g&Boy`- zn~wC0u01A`}FQ_1QsG8EkmV+R2<2@@lSlM-jvXLKJ2yW)1%W z2LL1v>i+RGovKv%$J3}wdCxfD_cP_VGE__Kmh25UIg|HDZyj%tVhARaf7tbZDZLE;ilYbVr$-!q^X%J=Ji1?sl8G*@<}P zvbcT)@%&B02Ber0dx1mofazaqhn8jS3kLzb6$^KUY^PK>=uP0#7$QJ#oCx_Yys|on zpB_kxjO6-)`P2Ez9J^LQ=w0>={@yMPG`sYTBR<5Nj>I6YMY71o0c7UK@m}#316yaj zV^Y=D-N^|w;(kcr=$}v~eIuV?YUYshNDCSspGZ*2*Ah3Kh)*qIZHsLO#K*b9rE-rs zE>aCzOrSoSoy<9!nw%8Hu4U82&YLbJtNo3o)3O#!7;oj$#A#U-#v`(0;<;MVxqAYYR9dXJ-mCtLtL!>VwD}uO-7(rxn{eDS z{rSRe69X6X{yF^cQZXepeP6u#ipUjCTsIfyfh59qtZj?MBU?p^67{#a+ZeBO=ycuf zVaG59VQ+13Sfl*urE}X}o#c0F&Vl-~IuV+DKPn~zrzUMS{_)tUTxaJg@W+bF-@tx? zpRrGoxDdI;Ofk9Lq@Xw16b4d1>U_G+(eZki;5H6w)Dnd|xtkTvsUmu=zfi0t%zBnxd9+euJRz)!IBO*YhscsS5Z z<;=c#A!j)|Oj-FvaJe+ZrX-%i!O6$!=y-|b9tfckfiFX9CNE7D0eZ~@qeib=6?>oa zM~$FU0O=?K^8_AGMLfy%^kKWnn*_7BYKKcbB<{lmz~Zu64|A26jFqDJIO*+dS%1LA ze>{-X>vB##c2JzTqE6N&Jn;5L!%bAPIu3=d^5SskqxOcJsAHUf^0!(N={M$v69S#e1C3-QLq&7lby4!*kem(a9;$#Tj^C_pe}!K zF@QV@9pLy!oA(CSj43gO^X30mi@zhGmu6)Xtpp~mjg7*@3x`Xjxy9oc0~{dt09+gp zT#Ve6ke~9Avo@gt_lt_rD0ZYPfw1aDLo0p?z75#~6)Ra?dHRA;B0$MLg3<2XoWFL2+$99*A^cqN;b(}>Pj%kukZ z2n4ERDK}N0%@<<5Rz)$*cEB~02uM#WU`&!Z{5Mbxc*a0Oi2+rG49x;Duah=>sCU=r z2|Bhd9(q&8AYrNlG}!mLJ~-G)DiKaXPJfgYCz1d9^)+!tu5|FEu|{PZ*1;)nnKO^A zsxXTq3ecW+ENh4bNyS-VQ-*q?)OxZHDzu+fnz;|t|7ICMz+0S!ap(9{N|#zl5H(lU zlTZ{rtET)zj9VOft9=)0NyUWgIJDT|=c;^1ZS{M?Nh5*TidN!R42tYp`KBw&iUOpe zL@d85b4*DU)+|3jH5z6$U!qwA!>}dq#FfC_>7PgaNd4$MB-8UuKNeqKq?F%A?^piE zLk=H?u|JV}9QUk()Lx4RVs$a$3#ir6*0}=jaMdph_2Yv!>#zZcX;mpq`<=$RtyNLE zGGPQ=5@wwG)0>R>$Kx5OKTTAT=Bz-G`GVB3GY0d0HpevnKFKmv*A)(4+D=-*03U{} zMZozH{KlGTFPH4TWUF1mfoid1o>QPZ|G4??37z+|41^dTWhNPFm$PfTRE*V9^d=>W zuS;l1%e<3MMrXDSPdM(Pmtk7WwMkF)iEy#&%oAn$zU_Jz>uAV(GvO3#jfqn3#NGS; zfJ75$Pa=NgMD3!dHiS!`vh=u%%nj=-R|ykT6)2kks@TilDBTq&L0dWHVJH%mG+**s zYeYee5sv-Pu(%%~e=V3(a_~;pDP~4V>56ExVwMq=f~uS7nYw@&cSi7wQ$L!WSaO6a z6xhXn75m3?pfMJn9`wTZi6c?v427bZm@7vd&-TVksr%`YFxTwv1l3KlDD-+?<`I1Xr4sQiq{CkwwuZ8isKjKtG^C+N4(*ZjS4W_=U_r z0rnb!*?3hQ?&kY2=MhiQZEvU9<&=DJ1^8g_A;Sxb}CI8(&Qfl#54ZmO{^ z)sfLQ)`0VFz(I4x7GQqha?bU4a`Rp3;|F{KS{5og4$kprtgk7ck`07Is|e6b*o2{& z^G#_&%>IROs{2JQT?{F$gD>{DlTbKquGV(YG?dhSj9_f5#4Z92fdBD0fU1(w3*fCa z#SV6LU_nu|5Q(*>&Y^bDhSD%^DI;zyV;Co{QT%pY?4}>+=Xfu0i*zvrT`ng@KnG~_ z7ohCoJg;u3#|;kEV#7k_B`Q^Sl|mKx(Vs$qbBupHvo`wzi|`>u8yR#tR~>)m&rI}+ zhjIFAUPuI|FuEzPFAz3Oze6Rh@*|mJMa+Y{-{zVo$b#_k0q7M4PWhfok@_dNjBhnO zOdp)0SLdgxG)961$Tz$a+4Ynfd^eQIH<5Y-DquAB!rt87>@%FPGHXG>+!EkZ@diw}|Ha^iP za?{Ucw7}D%G!Ycz>Dn*m#f0(a*NkwHa=DPu{RTMNC2MT%qi*qa$^POL2C6K21Lh&O zfwW95>WXb}mu0mU*>g$-BEM7Yuj~KGVmmSwd(17sIXimG;~Dyi8YfPOzrlOP+k^J{~eneW7zwlxx@ zQlCwRU$YSyHM~O#N8joPAnZzQvyjC(U783%4KZL1R%09||Ils`RnO%J8Kf@1zMdE5 ze`Z0olv>Oan~(rD6NITHy$58yA*fxtxF!w+X~`nx?R{semB|r1<)LmRy=q}(PRVr3 zB83EuW&Yz4yCMz2KY;oGJR-tmG4uQ@b9Hx^?EHrmGA3M%Txn=7p{Av({&51BU-l{F zxTLpHGr%_T^AEpu_&a@XZ_XENYEcAK&D*AUxX7OBK$F^4UE|yrmXD7ed1Znfm_^5^ zW83_p!TadgjRXcji)uq+F!wI65~hqd98~i;&TcylPtyRcYT?L8I9OdR_~INAU}@-` zqt_WVk?1g?D<-ZFd%%dq*LK197pkhNRkYK@WyioZ1Y=D#W@=I0l=G%py2m2nM`xh1 z?~9}Wv(BRQP}ZcJeiG^pop9jWtB|2mMgf|`3R$ipYBRmPl zsjoILCY%{;kt@^8v|m0M9x5!X60u>LhD)Otv#+ISzcRPBH*@kPTe0yQMlaaqe?0X! zJZ+}CbjwU853qnMPAPsQd?1brM*ly@2cxP~z3IS(Ys*$q+d#5Nn z60~WB-v=TMBCkQOF<@e=o0s=|N7txpN~Lkj>yovYQU^74+l$o6AzS*MpibX3*@!ec z+Q5#ZT3Fkgo;lMUA%83z5Py;LnoZ_LzKID{CU!9W7Em{b3J=UJY@TgEZx>F#nx0Wn z>+@II(irai$HPy@958kH(b2EP!fGFqUm3w7(WDJsEZK9krAQHTJ~5VzQ0cP$bSdYq z%3FxFEAhO*HHrm$TOmF@E}pTfX+n)Etm_vg*3OlHUnv;$#%DDP<#pWUly9oib^g{C z^cd=M_uVTB!a=o(0j*^=9J*uY(zRFS-nJLtaV-v$S+ztzh{O;yy^ZnMv$wv~eFOMb5KV%7cS9RqT7ifv5TEc zV@-=8>9Ym6dp#gFq<~Xf_D!Nl8U=~>0|7X8KEH&j=IU6jcVEm@4RjNV*46YO`>N$f z?R%`M>?U-TbOLNz(i^yu7La{{D^+)%vJtb1yoM7Wb4sCEo9vpB(rabYFsM!S``k2d zAXb_3jXxbFU$-Vc2~@WpEeMocP>1D_LHS$7%n4sM&!i0>v{ypyEbqDJ)^rv<0a;hA8itvHqUoLaK+9XLcToKmd`!>vQpc`^_y}L{D`~&)!b*nA+)N^?!n`nb zY^w3gMfBD-9ImFn#esnEC zJ+%pgj%J{_2l(NOs_b;t;D0GvGC2y`@mlV}Ftn4w)d`q(rCulCBZ^kV-=Y6acTBwV7e`u8Y2MYoAy)85 z$@H05fG)CSIjGmslyC+vk>pQ}hG4 z^{UCu-A5OvemC?Ub)(J(p6pAGOLau(dKDr9tX+Rj2@nw1Ay+llE$UMZmSsb%Z5I8_ z&GaY|m1&q^vRh}t1gA=gte-L>LNom|9%;XTGwQP$CQ|~X{LmrZSm@TGQ)KKW%z`Pgjl)ZlPH&}bnVMLr@N^0FU6Mrm*Dbw*KDRVBDfokXSi+s5)PW;RHIK>eWF-8x( z#mok>Pj%pO%x$>E+5|H2T5TrIitXDRj8*hj_o5U?5{47-N+|twq>vwp++*{5L~;|M zqUlI(rruD*_$S6i9{@?c((LlV`tz{|wV~L^D@sbfIXazOTQDl0>J|$h(}s*lU0n1_ zlhu?3k`%*xm{^G4?G=qb;N@Z*Qy8M7J(Ym8pqDUExj) zW29Mn$9|-cNJL85A%nDJ(#fAtA-y^{#gnsslDT(W3t-!yxXLEz_HWhcC)<&Ep!iTp3dW_Fs%fiHMRpbaK@q55N-C(K z5Mse%8%BfiTZ6GS7;EgiMsi~jgjn=FM;+?k$tP#B#sclrkdk-9bj$k~V^eNRzXJuu z#on6(Kauj$Xw<%NBx!i-wHQo$r0hC%d?A?YQAkJtH{Udg3M;9_@W)AqFW zf27|Ebe!sogsjzmlo9Wf3SdewRUU?-aQ}EZTMV{z7m}5~1_BTlH!v;AT+&=$aPQ0a z6F-s3vr5G;6|fQFjwgf}>6@)VWPfIeq(Li}I}`_zaiA7PpdsSoZEF4kAGsjOFA1{e zul+*&#X-c$Ph@nUcB= zI-9!!GEN)dt<6mvkgWLa+gYYFK)DgUdY9WOH~r*6j?D;HRZ;V8f1Jc^N94vD*og8R zI&$RjQSRs1;X~Z4Rc^AuVKH%KgY$?ZqAEcWXJT)j0vC}~PrFl&o;`<(d&XFB0~D{W zK{7pp$%FqNba060n9bqvRhGyKX=ta(F1ll{`2Z0Cn>x?6D9bx9U!=!t^_d4&ybF3& zzuzwrLVE{LIYPL#LrVyhFp}1+vUsnNh79ydNK4+*UxV2i`)D27yTkV*`&6MDZ^;#b zjPIQEwg*Ed+f^CB*NvX5cZ4?%YJxmt*DkVdt_t+g+NEy}Hx4`qCB!u^tRWAMa*t(H z)cwr1NfJTCT>aqaytGlqp{8i*<=drmDm{Feby*C%vhQnVt({Mc%*k&RA3r_FGJC8R z^X-=N2Q{;2YkpoygzDwMuf*TuaoK|N*Wf#jk~Qvk24fqlUH{yr>%m(8i$v$QknU!w zL^oxI9B@;ojPjdaywUscvsH`UjthutP_xRKuLn3OACdpc9jBDp=OTYGdapr3+WSmp zj{`b}$LLu1jKN#}Te~HueHuJ#Wli#$tV4-=*RZd=&K%9+KeYp@ItaS@1Y0|)@HQvV z(QV=J`m+b83QR5OcRbq9Xb|^jTC(3fwN2Q=>|vMQJ&Dj*wW~AKJgDmpNvg8s#JgD9 zl~B=58px7Zi#@%$lLzc>EYT+C;dxR z&(SZ((i`iYcIwO4qEcT~xw@~Qb?4fJe*sJ;wP4%DkFrNwospY*lXkSrKu^)Ya0_yb<=ncv6nWPPTa$zlD6Z7$2^DLg-PC$EG*4|5NU@kP2WShgHlYh28K9*PN|HE3;e=&56Yz5f53CGx|OAf3)$Y*)X zHD*oEmYj5!NOyuxEU1PeME+{&<8kBwEX&nWk_L z7%DVt0RsyB{S%f(5Jrc&f6kjILLdss_|{0 zHxsJ;wY2i;O}e$bs+SPrE)_@HyoL<*XCA7RB{CgAhMDK5)q7OS z{H+{Lnfn{eguKO4DwWtYk!FmhdcyM20GIOx9meiy&FwF=CdC(v(^Mg3&%T#>;~8u` z)(I`Xu7`+EHCa|p_V)?k+i*X6g0Nz&svRe`_=_0%UQDzb0Vbfc=b%S z&U!Y_wGBiluMTBpT{zmYx!!Ey6+cVK3#y_0(R?x%kl65_@7|+Tq z*`Gjzxj0t(iT_a1S#OWLfx9_d8q;FF1y zV5-s&iJF)So-v)@k7@svWh7{JJ@FG9j6Evsb@XHK?+=bz7E$=55{c6dSMDbSmi#$a za&^WPboIzhXI4zo&viBmaL42g`5R<7#oy);Xzko)VDN@l5-?`NX4>q7JFwAK@~``8 zyv3JpeAfm1N<-tu79oM;CYv zvC59Umf-(jyJ1q-bqz7ZN|T>E>N{Cde5*-B-a`1T(E0lhE;O0O`B$vSE10GU7y#iJn@G&Sq2)b|3|*&<{QQrZ$ZmE(UjnlYjXH3Jw0Jo z%X#g#=E;oQ6N3X+yj6d%?A%l3A3o0^(7*LvlDk|W`K#xJ^I}Y09{7aCZ}xiAf9hr# ziogVhuqrMc(1Zl{>xmI){%wmIZ(pWnIub-?xH(xZ*%|heQOd4 z>TA4lcE9o7<)svE-fMD47xlP6h{=q!>C6Ax8oy>|iNOoO?4}OfExNU0aa-$h0PmMV zLf=;qF1YAzjb0t^r!u{|f~afml9k!E8eTllL$aC1pAuZm<__#iw6S+YBk`KLG1CV( zqF*O`?sFRslXX32qk&hRzv34t=d)xrr8F>*{vP!|Og1$8 zY|VE>8(8L7w%wB98*c>ywxu_h3GQvH(nY1c^;=rhr!qU9Bf`;DL2jY949rhKd13_` z33r^YVJ-+p$D7_{@VA_vePQfcw}E$fNF|&^_cWM&fLku*6HSTj32O0GwPtRj(MS`X`kiy%Q0>Tb;e7wWK@Q^maEXHPsvLA z<`;#d$Ac?VHAlY2`=Y?KV>+IuTJL_66TEy}*an?8Gh<8diNpiZOUbw@hDE!SYL-*? z3$5n(JNyKLSW;==YhJQPQk8FzFjlrrbiq!pG(DGAjx$6~&Hkc6Gq zqyZ1hpJ1G}&>qz}f}6B+VJUJQUinga9&{{~pjwdc!<6;*%x3o{`VrrJsJ&lq58LFG zD%tRnt(Cd>{ccZV*F%`qcD9SPcIuIEn9+YJzX|M&@7g5#wziGXsc$Qwkxl2wxL;EU zUI!xLrFN>>)`Q#fkNV6`yTuqFGR?vo!WPPpxO^uqe8hzlP4kc*|9Bd#S?vC)Vwx9R zkk2cYE{&~csx_T2+Wx2>3`+OdD&v(H zYVtCA%^WJFihO<$Q$1+?EsteQI4j&+Un6n3jwu}*=;W(BywIaby?Z8+k%ez{G7}s<;;WK9OsmO9YKalSHa_}pA#xX_`np|F?>Xil$t?}_7 z5B{_vYvD-QesA9C)O#QweLa1nC?XpIZVHcig0u7yn|GDiT!P(Gj|EP?$nfF?YHDMj zp8nE%!|eDGjVp!5rAiUCo_0(RkBVi8-Ra6ZvuPTpPfY#W)I7w31)H~mhUe)=yFbCf}>l8F%JnG(!M0ZzO#ZBAhLruJy&s>_dR#wc8mAtyuwd6+h z$lngIk$i0Ma`5V?z(X@{Y4AF&BhMEkONxSjR`v3zWb8H|$h4cAZcZt&_XlH|v_wrA<-gc?`& zdKvToNTP_n$ueJ%esotVm8MQvojPSDa(HEXE6Pi4@4T$Ao6)g6)vfG$>*leP&@mCS zEf{VVKvEx(?VPd}ygPoo^n{S@w?4?;!^?)QLh%`ql}WUmo_{a_a38B8WhxAna;-08!byIy;|@RV!QiJSy9%~R!b%>6;-3uNm< zp%R?F!9;;oi2$vN8_Dx_M*$%YgQpsZ^9hPqE!zuVJbPl>XUi5DvG1)tLOuMEOexyE z1rpzo?gLPgw=wfv3Dcfl9lr!FA-=itI1m*iBUlH*H?IpX+7Gy3E+|1(Cl($r|Ce>) zaNY2&2=#}VUlZ>O>dv&x2-9AOKM3K~;`2myoS9+FxF_kqnt#j6@P{AF#F+gt zJ>hj~e6Q&9+L0UJgwS?X!)(dJFJE&X;%%Vnf^={8{$TQH8eHT*nxxKcpTTtD?ECXG zcTuMW4&;Vob1M^F!d6>aDSFkS5q&1Yc6?HyZ9Yi7dx zS*&|_Nr$hGtD>(&0(3^U^*A{rtyzM3*wDE)`@Aq_{=D0nm|GbMf2N7Iy@Yi5eIn9u zkv-6Ki9N`!SGMjM6Qx57G2_kgp<6!Dv{Rkzn-P0vvuNqo%L67e(-t2XX%(u%jch-`!3_Jbhragd5#XUB2V8N5IC0Xq_;<6 zGSIgQW{yL7m66w*+a_uEVp?hIxPj0a>znSUgiBpKquR;EN4!1bs6XqUU0N}F1{3@( zsHE^XthC!Ju41$z^w4m4#I3aZF^}$f@;rk55aoXus>|QK`aym%Eb37R?WYZND~1Op zo!?yG5PW_ztQvZ{J_QAImQYRLz?>b>e@N? z&zyP4dj?4C*3<*yFsmcJjOS)d*@`s8F*rRBe;u$m^i*&QC#!Bg;k9j=@p1d0>TOmy zS`io~=J-Amflz^AczqPp29WWB04n z%934`h4{~38keQr+T0>DZMrW3O!uX0?zk}%mt{{v9Q5#7O)^>f*#Z9NLB|CNSCzv) zb8gP?!0jiNJV#1NE{L*c@4fU465Q6GJ6Od18kg7c_jI~BE@=j@YPd^N@Ify7G`gn_ zRhQ}YJ(@XxakXCxhw^-_Sd{_gaBogx92zZ!H`qo3ws7)xU}dwuD19wyO8X-+U?$(wyX#1B^B+{+oVNoau&7=Ry02-bAzrj^aY0(oDD~|V;(tK!5%Zk zlQJS!szhdy(iVEE!Zjc7wGqZG>>oMv7(x6Wm|wP{4+gQj6kuuiU2K=sd-u=fvD*d6DNJ6u_SpPj$v{(9yi zX!Z8OyrQ&p9o!yPe*yMPa3~^{Oj)*zz`p2$F&L$mw()7>k27AT6UuLZPyanOBh8dp zJboB85}(`)u=KV1y5oKc;Py)OdF4>_QDY-S2CbxWs6qrB&Wic5lLKx#FCKSyq-t4; zE_y%zEDyae>uYtq2l?j4vWIhtFaHz7Z!@W5nO=s^+@YM?kuJ^mFK9nSG72wS+&e-> zoUvn`ZFn@HCZbF^7Jkmw<b1`u413wPJy2f5>r`4t zqq{%t3GT3Jh&^vWl?WU^TyYKdUS8`G_-8)?h{tPG$E(?UPxyJeWg*YQOSR(CG>O@1 zK3n6)KU;jd)VrSs&O2uP;~9!!G&kp_O|ITP-jq3N=C$XS{66Qs5yUiaHSm(mlvmfT zrX@DyV(h9DaiK)$qaLYXVDQ^p{&_#aoaga*8ePt+2`VeDJWup>8Su=_zm|Efv}(Xu zC``+KaKN$LzES2F{Z7w^dNs5Avv-uQIr~6LOXc@01d^hZ?OlXTBj>GNL>IZ6)=XV6 ze-s~Uq-%VB&LVquReHhPVGp8b?aS~;y*KoFxS)M7T7j|9i4Qn_#p7NV=hK!K?!Qf+ z1w)&dN2%6aHu9?LZ@DJX&*|1_`h3X*L?ko+uq5$CX(ql?m0q!U- zuMTXNZc@8&-{Ds;NuAI)5f}A%<7`}@1NJ=KSRZYoF z`g2HokULvpUNy-?y}|m0rl^~T-({Y`(@u`=HNnQTs+T^6d}GD$HT@zEHJm%rRP7PP zFwVHuQ1~5b^`kpkemGkhX_wLM=j~@O@06@p2) zJt7p2Ba6=PeNZh$9xE!LTKb6!U2_(>=2FbPncR9GlT1s;>nglCK6XRmR`$C{w=j{L zho_(gpbS<#C}wNQT5dR(cT42NuWbdjSW~ejC9xxLo-`4`0j5{?1#K}AgjBH%iAQGC~&ZC=u_p)<}BI>)2q!5|1;A|Iq#y!;}cT(F<6XZb> zf}VVi{%GrzVOz80OtxvjiQI?J1TI*;t*AStI$U!5{L4{HZzS(v5Mba7keU8%AV-`B z$GGD5x=^~jxqQu)_4)$j`~{nZt&lnXJe_sw_o*QN+p=6D>a>MkPx-?T&4t@Lyomi7 zec?k+4e_76Qk5CuyuNqIY@3U>(h%#VUuOLu4D)&pB@eF1uk5BKU&NkDyqNX%u2<~% z$()1xug8=-Mdb%7?0+Ic-9-x9h5zwrE02YV@2Wr3O>5nExEj~zB6^l7B3B`s?lxnX zrgjP%qA!$*lyV8i>TieW$!&c|>8<0@Y0R0a&GB+U>or~8cW9G9tLsvAS*8`$0Xghd zSxtP$W1C#y$8mcs_w{vu7I)JOVV*s-V3(;UQRUq6s2^OmQWfzcH|>J;5tUK4Ngu$> zT<#6hc`8X}s*TeDQO>+4xJ-A6l{U*&s=v+#da$NDOW7yki%vGwX6i zX#x34{`78hkc|hePLED}V>P(()m=ktTs*32TIF-l8E3lS{it^Opg{DH-XJ#Po;E*- zD!PWPLqE#S$B%=XYv?a{R8`!5Ja;j2o6K^RI6_lADR6npGj4@gI;BwoP!yh4Je1zl z*rMFI%qq7f2?K6I7Fcg~IT zTVwGi-RSFrnC?mN9cQVdnr+8c?uy?Zjyy7N%zqlMwZeo!kL)-^*7uo^%9>6$B`5qj zms>`8FHp|geNzEBgD7{6dz4v-^z1epJ?C74IL@hB6RMWbOwRwWrRaS3bdk_=(1Uw{ z(yL3>WZ%ddr=fe#YsVtGziphqH$P0L#8l%B4QIIE8W~RCjZSI&d?YeC&v(tUZyRYG zsPj#;Mn^6f)u$m8G>IJ!!BSI1E(J+zHw!k*oc|JH=h?NfY}6X{Sg`R`&m|mB9WlKH z6kBK(lsVJ2M8 z)}=H`e@%F$O9yz&kb66F8pd;`ydH-tf}`F{^Md%dV5KV+yf`{BC>2~BGI%zAB_``T zc_T1MyTLVHQT9q<=T+L7NU@tY0PSy<6o0=e$Zc@bW8HsdT9$aE^lIZ6(-yOwT!d#r zgPgq?zJ7;(YlAG?yo%h-LhWn^S7s~q6h<7Wx83RjK9`dm&C3xyn{LpbnAmg2#bo!c zojXDlS;$q87r1|OiiIzAO!6#4nze>=>;@OR-@4v>E&fU}bIpG)?t7AAAIpuGgg&-P zdvqn{r}X;Z%F*5C)JsJMQ=VCTVwRiW$sv`1CVC}m67yvQnF;)u;N~V!@j%E+;inHEo} z&t(7jac48poXeriAv1?0ITLd}?>wg| zhb1M%MiMzK=TkOkVh%eHS_g03f zpU9CR#Y7?E)56~Du8tGB-^bvmc+MG*@WG#tKgW5*4}&#<=vjrOXRr#Xsw;~lxgv)! zj~5WR9L22%hL$%3@qLS6QJYGYrI24uSx;@nq+E==5i3af-ePS6zw4u7!Y*C(dtmCw z{C=3Ca%8++JF8~gRr)s~XFc!HTxx8v&G(L;Y^f3CTiaeMY{-VKmqViD0bnI z_7`6;?BNSLVVqoJU|)F@LXn|pD(AU^Y%$v%*wdKqG77?sqFqaAZ@evAu@xr@_tMVl z{+v(Yvz5;eJ;dU|xAbf`$j(kXZV#q4i-I<^{9By{OsSbWq0d*oSIFYg$&MW_7a#2h zd{&0L{bH%h66Q*PIBc1lzr_Y4dv@WmeG+gFO%%cp3;X7T_MkL)%TO)PK|3qQrN!U) z5J{BQ{_l<^LcFiaB0~$66Rq6ubu7Zn(Om!4EfnyfY9UoaHhJJ7Z*!WK_Uk6i=uCOc zWy2Tp4rlT=GT>dU87sd=S~uaMX}Fz2|@iD zrS+~pqz^sb;awj|mJT3J?hZD$;_x;S^p>q>CvdA=iQF|rJ@aNFm}@42EOW|vmRG^VJ}{exe^Gyf9q zDEiBK+r-NQ9g&xg80kZ;3OdH(LO-u5j^`%A=!U*1ph~j_dG;G_TC;uTVj6Y!{XvZ@ z>e5LF8A?Ql*9q!WqM?*SEBGvMhU`P<4O5Y95wI>Vn|q`B9tpkK3ct&>@oSv}(OjlK ztZYOgBsUQRvfm-(vKOzoC+2*ql*dk5)iZK{DF(=fL4#&*=5Spc?JeTR&9&7}2)&iQ8VY zYH>ajf*9f4YR59{h%Mz^kphLmvsTz)X^py=P`N&;?qpMSh~M z)&_%V@k%_&1PK!aNz24;I$R?zil_+G%~lt)+KBHnf~#`V+LG9n?z*&pbObqdt@C2W zvK`L(Q?5XY;Mvy!eS8fy$S#?a!50LTx*9!$OHByFR-H=Dvu$*s*ALun4^6_T-&)Rw zKlK5rM@>9l0t`38BPHm@YRkvQ^r&u&7M8hkoh)h3#15oY_iKTKY|WWQ<5QY0Q(TEv za;+c%mOa}nVP?Bd2xc9_nlamV(6_Z+)PLmh5;P>cm|7dHP{d~m6JNI^I#2{WH3Xjy@du5*NV-Xbfhv) zEO3UYfH6~kFz^Mn#B27Saos*-!M7<3zsb80^;mc+ zlVmR-=4I`V3P1Uk+Eo5y7#?%Xgs|VfFhG+2K!0t`f|}jeK_G=fX4}XfP2zCReS3%5 zh5?|luX7WN?1C{n%S!x~?o+%YEzh$-qI^|7`tR|-B8DNJ-g_?cQdt~N=I^2(^MKG6L@XwOu3wPCHt<)Eo(E##{qP~STe z=jzgN>4?V;Lge3e*K6(JdW#U0yKCIEHKIpBpbcNGCz=^3bv>Ghd-LJR55;5=r3QGou7Gpfj!5?QtTktHL0 z?SvA0Xvc7f!h=WAZ$L6D>49;XGM1tz^?$+LoB|Ec(&QKuaa;O22hJm;IcrMnF0XB% z_M1Co)XQz`7~OuhwOX!Y6d)%U<(f~#dqUM{L|b{H{q>`A@a8v8mSBrfG6sJX)Za-d zH`r@>)GsUyAI@wnGYOCMR8H-i))jrHKUN%_mVEwLwgcGO&zSSfSxtGGyAM@bPB`wL z8OZEX5oWr5#RAlmr7ytec|~EGcV06r`z5_@^>?n(Bx&R0 zFQW(S->W~Z4{#eXt*X39rKPu&0sp7V-Vi`1?F zIB8KHFJ99CfoU=>jF85_P_bZZIt8@MU>iwfAWa0=l~d$spz(elrxqGp%W}X`0XuFZ z5Ah~lW`3Jws^lQ+&`%iA$|2@8`qoJJUyeht7OIA?+x;E)w+hE36;kEVwWTUCzV|CX>?4mp$e!$E9sN4}3VayYfy z!=GDopN*xR-Alp8ten~^Um~(4kZy*2TZ49b$y5D3-1AG~Irlx#a4&RO?_LZP2-#vY zm;$Hfsxgvb&uUNB>0>w9klqW*n6NAjS7_@caf}4##--D`d4GkDb=;1v&N*xvsz6ct-s;^M(ElAZ5`+UP{e3MVU{! zmdaFq#tQy{r^v%{mr(&1(mE2nYg#qImy;F-pk+Mci5E8s@qn*zhbyDg!77eQ@JggB zLH#PL0h@o9&UeNTW;#px$yatVAiZ?zXtRcel{hy!B|Cc|FxmuXBA;u~s$tl*In;}m zNKl51v|X1n-YrZRgTVU-yJK4@;ZtgFmV#*iYx#rq&p*t2N3@2uc@Nt zxSY~(rUB2Gbl8+=puLw<4M>$bJYf1hz8Zdi^~-W=K2;n>0goSsZW7T8LQ_MQ!v>o)wN=W6%WcjX^B#T@O{dde;<04-<6IyE)u zJB{ICm(`i?e4A~)5J}(80_0v z_1=c$xKNA5tsR(#J~#J&PR!?m{lj!qd%V5d9?`((TOqFXpsp*$?$11-BS?P|%Jd#a zBjA=|vIvG?@5&h7e zlrDOPM~xI}G{k9Z-wyJBE|m9-*(LomomQO3_h4(8UkhP35R-D4!-;y+a%vaPUqfeY zRJz&e-u$G(;S2^J?>@%vvbRU&h(^D8)d`iE>Ea_2aP!KP%8f2jaXjvVw-0=J-#LDv z-V|TSskfNeTReNT2qL2{sFVDetk1IkqfIB?6LJ41Q zfaRHQFy%nXw#^!-OJrrpKGXq*Y;NIzc_lCMqpgj5-x9Z0VYa7N;gM8+g57OKF=*hV zxRDg-#Fl@YJ3x5N;;s!7E;LMssIA@|#s)q30rlyg(gdY4dpp_sz&kwZaozrEKWbnk z0Y8OKD!%G;n4lVOrlD%I4Xe}sLO|<^h7NH0Z;xsznkFzE!%wWDi-sm!`rDU$Aj$T@ zR_7EJ{d=gF%NS#3;0MnXpWJe+i*Rc=Y9X5dja+s3hO*tHQ)>A_3Hj+LHxl*fV3~;- zTc@`z*txvD`2Ab2LbyqiJ1EB-@1CR~Sr4`N=M&W^40es`Tlo~EGaeA%03n6aonKO8 zEMr-G(85w;#zxQUOp_ zs}kO4|`~i1mLjx5Q1Wgc~SOeVq#3{H3N*R1Q=M0dx zz7EKBP~UslMc-^m9wR;NCcbP0#@1HaVzNv#Z|A9)>6<#*N_(#9r|?rI(1yciN#+TmRvERk_so#EV7vQkwjZB}|}lG{ZB z40Rao8Z0Z%qg76$5$9P?xSwV0*!8vN>bJ?p?+pH}i$MpnLfE(XJQsej>v+G&zw!cd z-FJoPe^9197Eo(^hCQ`X#TnK6;fJu>=wCPRo+#EMyPt<@2b#WZxWXL=UJ32*3p99m zF_mt7LccxY5V6oR@^r^5EK-u}pNvca#*0RXcN8|$huwyBWTUc76tvWw4Bo2Zzj|uo zPglILrFPL~Wa8^E`Zi{K==)cCG_SBSTeH~o6S-dl=wP?{z9Emq3*fY ztV8~57?67f$PgfOhaB~COvjZenp%)&jkcjtM+FB3piP|TLEEy&N|PZ+axz!47!q04 z1$6Q^A9#CDv85q&k}djqhN0^i53J7|Yzkjq8Xy?_&8U{yRIkr6NMqltWSvNDoig#X z!A`C&XCPexIKrJXv;dgdagg#UTkILh>)*TWYx4@rc4VDLe7w)!QhU+slzchrHv=VNtB&UXetWzZ&cTL!E{-{6#_ zC-&llTe_TMSR$FKzjY_>8e5*MU-8O=^&47q+GDfgT{_O%7%QABZ>FX87-XuRv`b|& zmQz>>SJQ)>Q8-YeW3Gnzoq{vQns*7swRu7iPdXKruwIo3CJ=oD-WN`%9bNoOr@`cVKqS%*04HA%^~$~8Y6 zH7sPDM66r>n+1Y6y=nD)tG~yctA*4y#TvQR+M>GP3ZB8$e+ia^XJs9Q(5inY=fzh} zCMHUK31(DBkuOv(d3ex^KL;NIXKqwIIuF@;`A6D>vcDA+U#M6-Z8xUp>EAGjhiT*! zBdRIx2d;KIoy_O1I?TSS#6n+JdbYWpb?(t331l+g@vH^kuyL}n8zrQC%R_JXq@|U} zv$ysV_EA5`n5OVnwH6sd`3Vx9CB&ty%(%grgQkOL6OXFJIvvyX?Zb zVqP-u-&c1n_a9TqpzG!lezT4_vV27?`F%kFT{j&&tup?`RZ~{Pvsl45fy>c zpfIWY)05V8&-&;H>XQQ#seR`80BMr?TX)E3gLF}T zVCbAjjky6$9x|Le{hF+1SVL@|d1#2Sa~+p^|3z}ovCJ2{CiYBeXxtLXzWUy*-s4^U z!?KRotlNu~epJ_WSVS2=q`0|At#^m*cpv$J`b-?-^p+kWN5upERTSETtxIH>j3HJ_ zHr9%!d4KUAp30R*pue?vw+Mq`9a#a6u#J}^Q!BnAw4e^CBg12oCwbB7#&)HK-QR@{ zyhBa~=K-3vhMrlL!s)zCP9BymT8;I2(BssU{z!R(~M-g-(Z)8|0mH7i%2QRZ_h6lz|?Og$ZvFg+p6biSjai`#x9W{ z6FSb~9rANmo%3q7d`|nb(veXfikyI zl71?j+v@xeZkz;pz{K@-kMkTx;f_v%!VvA%!zfnVr8LbClV*BpA9OC+W-AK<_7t!m z)l!`UA>g46po-r&UR@npPCXlk=jIL|{|ME$R|XO1`23o3+0@|0-2LA4U0B`iGn-vE zv>RYWzOAqfmB-zko0Y%l%MZ+j?o#51b=uM>o4U!=bLDwb_i^q{cK92ZzEOA71kuHw z!voXr{i^`3q&u6;q3AZ1=Jz>J98R*LVT~U_Jq&P&#%D*C&s=|-e){4)>MI`zb?(!3 zxm{Cx2hSHHVEHaqeD@y8Nl$1c>sJS(Q6sS=YuN@e)q+fPOqtH zm#w^&vM=}YRE|t=?lPuNWj-rLf8Hn)cVnUz)%qqi$aVhIS%pIV(@jH^cfP7|vio42 z$Rm$=61N;}JgU>nTnUIHytmzI2jXVY4Z^UDP$bb?35vHo!6Rc9(fw5Nsp}`rvj&0@ zHoMSMA*5Lu>i5cR#qNm*srNA2FBdtdm~8z!jK6mcz5wpy5bF(v5hl+^~tU!xkr}4Yr|$Ki~nOHmL}^=uU92t!2!B3 z$!F1Sf$x6(iRW$>UQ+27kyZ);JLsD6fb(tZ5=tuikn|DNiamHAyI}*dFYk46i^I)# znLEo{>?;rRzsvmax*%>3w{c_O(*Y4U+WjwL1o!8q&;p(>r!l+%x%ZJ7=U#`sdfB#Q{fx4f2!z1b?8 z-SfJ+?`KkgCO&xGOQ4*)9lm5@XbR@Zz&}yn-DpxKP4w zJ@T)oNm!guJrTswr#g$j5WS1ZgcU0Ax~n1$_yr-lexCCsI|ty!QK88kXc%>~-YWNm zw)fXcft9JaBT)P3u5?cn<yreY_sMQ)Qmie1+Z$Q7$D z?d#n7#RRBFj;MxeWHSGu@}#F~IiC31YgXrR`qky~mGFnDW2OyI7M=KEX74Wc0v4-g zCWXHB&n6B1W&+klw%_c_#MmP}sXtlkT}douDs_Mb?ujL#Z8b4}SnmZAi?ZKaF2^v( z#cp@hBX2hZ+Y*jyu6#aR!k4_=ajZS7Lyc1;4b&s}0N?+vUyjV9Wks5!Vy3PuZ?a0D z_0Xo*;!=##G+mdz^n?~u6?yom`;1mm|0Y)CL;=_TLvS06istbEp`qBY6*A$V?40r` zDV43)?FfcPkI&c#vI)dJRME@d%0%ph_}_boeyAw8kVeSOJkdJJePCHriK5$Hr|1lL zId3?GvYH{59iP*K(v*A%Wui_%UP|V;!c9u}TWgXDgtB~T{0|crm~RA)r+bE{GIJds zS5PgM=A1f~C9~BQ9xJDPJ>CtEj6FISB=J&{bIE?ib~Uiq&{4)Sa(&W9Kzv;oPj&W7 zBO>kV7g_*2DF3J1Fum+d$3Kgkw5|3A^pW z=ZRo1M|#SeGkVj^DHpUY<}Z$kG%?`;>qj;wn7c)`TuR~9r|jCnbTus>G#aOe!ev+* zA|+{2_ua1Q_NNY*kYzR2mEUvPiNxTt44fTIeYJzJAXJ2vu&YYZJq0wUUp57;e2YWf zEB8g!p8s;bz}C`Qu$c1%YBQ_%w0O!rz^P-O2TPP@2IaytK)G5=e>tH35`c!CIv+fy zT3`RGS7FKpWVs*L2+Pc&>$9`~U#l<%BGY4=?Xtk_U**0?%#V@`{gbBiZ8%z6>XHm& z|M#!ASCC7a1LT#ii(hiyhhZQ-bc1fpw~eM_p=9F-N}y@nohV-S^Dn0 zvoT-CSl!&`8(ODRyZ?C2nD^74Rz69q8;%@!l5!v~tbHdnca!Qsj_};Z2N_a&OTsJ! z$F37!&H+xa@Bhk!w6v;I4LmULBf0GoY6EtN>cMg+QK!q2GG!?NKFd>9>GrcgUKkom z_uz^WMFqpAi}qrA%4?{}TxSE27nutNX=mXtTPttf_UjTjoz0AA9UhK2DI-96GnzuYgTFg6>lAeE6N<`~7HkJ=S3olttv9 z(qUb(3I2hMlrosy!9wdnhIK9M8;Z}3#TB7wIVb6*uOHR~zFG*HWtrWw6)e$|s|j6T z`f%zUlCDz%;yEuVcJf{pUQPd+IkWrw*mu@H!MZe{-+idB9F(Tu-4_{HJOcVGmij8e z^SGCUgo9KU8$AOMgcAEF^e+w^&0)yDJn^Q$6=M|b)&g;@!<`%U`N?J>v{p#UOGA`o zK$Xh%gNqOL44t<#1i*tFOb7|KysqJ?tCz=BV>wC z7eDS*$@^M$8nXa%xmFDXVx#GQr^>mE$iA=Tored1U?LGpfSLqTb~0yqaRI1v6}PN2 z@Hj2Oi6QZPo^s`vK3ekk5A+w{Vn{xNEm|5DUn}w+pEhwDzStnYG%Sv|)@#64)AUx+ z+~rWIsiuzoyQ!8_X@BXT?6ehR%u~#Zg?pcX`n$|BakyJ`PfQg!o8*p|Uq6}G@>k6+ z893xkf@EZaT(|l_M6qSat|4O`;@>SHpJ%*Sq7|i$AQ>dR`%zD#i+B01tK@ZxDX& z)69GXd+6s@gV#-hne+9p=w=&eil)@i6;WT0GFmcwPW5J?+b*k$r|{D(+SdQJ#@3K` z&xPwkSX*5ZdF^;qm5OPVu;BBv{MM1{yB2Yxc3ml6|(mIFR<6 z&%VXEdeKV=)j9P`NsSP2PRFDkAjOlgYD${r$eiG3;kDF2O{ZcZ{1ilIq0VZT6?gBx z(8Ky>=xL$caB>mJ@>B{MRVjkC5$h7D2k%tp$$xXmWNniL0e6MmHDo6`bdRj7VfL$= zqOMraC3IiZWr&%c*8azufTINGcTNuCv)yd9$S}3M*&?5w5J}JdzA{b}vp6&ME9y$ih;lZd! zKgHHfbGo~Z3;*zP9z`C0zY*M7caQ%ZxQUoGBn7*B?mfzZyCJm@&(sf~Xa9vr zO%>nz%^%5*XhT(ce3lJ2IRL(sBkFa(t0A_ON|J&_aTg)B+lbS^>M6P2Ppbzx)Wdm- z^dcu=*!^)ImJU_f`;_JtP%$~+je@pV=TVid4=5#tY9AVk<@+Xji;Q^JXk`D@Tr}z{ z_UCmcf2%w|@HOeGwU4@w$C)fvqReE31K%Ax?`g@`)tJi(UqsMjMh}XjfLbRWvb8c0R`_wtA z;eQfatTNsxrxv)Cj>$$Vje6WGg+_8PA2g0bw{Fq&@m6~N=UPv^G@YE5yZ?}KQZ(>G zwfs!iFHIjxE5nzsN@E7LAvh$n4}jq@xub(pqbPjO;a;TE|OHD><98b``;KQ8Q=W0 zCJl9y3=3$bQUX#M5Bw)V6`VLIPXLUDg=w>kNUa)uI4C#Kv8M0LUGI^aV)rjc#~u2kz3%4bCHYX5Q z{0&d*Q2z(2CTwPRf+6u$`1Lu}`F8DTk-Edz3SL5{{+SPdBf1uX;gLyqx0uv2MYGs? zG)sbabTWrgcekP=lCe)=v*8HA*w6VNp6?dyxYJYp@Zf(=z z*x``z4KZ|dFKI=LWr&)1pbz%nht%3*wx>6;T^XYf5FXsFDve&?wRNl(4ETeh?@@ak zZcCnh#<2av+5j|_!Ouqe`F!4&m8!PEX#@v_NXL2VEF;bqUQE?Oa#&gdhq{s#qO6q; z`$fAP9iv`Rf&th{P=sD#E3A5($xmI)?Y6ihtNl5OX7}!2ZPED>QI9h%OI4w&O+a$G z_};lx?ae}t)F4}KT-~_n&Il<6>w?~O*Wl<=8 zlqBpu>Zr|v5cod<^2JWLuYi!*ya6{S_KZ=Wzx@#Vpzx1!|49(Rf=BiWU-qvks?q`bCPjGP zZ)RQj>9E_3vpHqG-M$wx7>EGZQk$sQjVk3oWa8isbQ^EC;_*&NdE7eD8?D9~O^G@w zUcV|1{{C3|(08w!*(}eBOl>mHOcDAIno;u=brs#%!ZoTLCmNzJf_I5B5Yk@)hmLkT_OZKF zgv3;iYE__Nascxh=QRVacaWqnE$TDge0?3ZF(ge=ZPI;~drYXAk}qO66$bUUuk0H# zv)Aeyv+TBZf+bO6j^xv%Bx1Xon>5!713rx9{{7 z{nyk)OuG2(^!L(%wZBVq4vp=Lj8eJx|L?+j|MfJtje<*l;-!XX*J?>nTgWzU*R(9h z-IL)4jidTM#2)mzfVkR^N+ZT(W*}8sGQ3^*FYAM-UMjOdeFZGeiWZoG)E5)ci&L4y zI%7^!*p2`{w4YT!-?+=*?o8P&jN8}uc=^WjuO_;Cep5XRJ^$JYE(l&LD6*s|b7V5+ zsdl@+j-BpJ8PfMM3rQ||3HVy5WQ+8gGRSsNTtP=bB+jw5v=*7l$*<5LKeu)9LhVMT z+*^T-SgtbmAlKYYM{^e%t#2l+A_>|$r^q?!RC39;aI@PT?6svUy)_#eCCWnEh*(nc zAL^gyFVm8`w>d+7dviRzPQ8G1EkF~Fd;KS&s1;?lGYC6hsF=qd*ceHgGo20%HOW5= z8G&?TEQdK(F~NN+W_82iPe7aKRt5 z^Pfo8@G@x4+Ud<+q7N(U$!i#A`#bOcwVFN}33*CuVtn?<+b!8G)@%C3zA!6E{?*JA z?`n9#EMuLB>RJk)WRFq=@UJ%e)f+__(sz^7_$?}cES78f0`Q!5JzsA36WHxiUR!kcvAiOVvv-k}la8g{ zfXTLZrw%g~Y{ysaG1_Idw!M|8mE0%N7CR7ev{%l2;F;w4B~X7-;r0IZNK>~rPu-p) zzcqP_d{hVA`oFjGkEu(a_@;1ECKy)t(uZyIk#92zmt?#4_7zXNC8XLU(4NjYzz%-u zv_;GHocwDqrGcV=x0bp!XAho>COZEo@e`b%1@$`}#!!?ZyT-lbkJPXXm;g+QMw2|0 zhHkjcoBY`snp*c+e|cAo>Q|*JQGQhndb_o1Y2A#2oVRZJ2)XsC*eLPZIj`AW+HUX5 zZEoFNjHt6%@Mi^n;Q`;vyLFy2`jZ02+xoil2KEe(cwjOvTHe}E+%Jishs z7$SvkMZu12-IkKqG}$Q6>O{u<7z*Xs6}#h4WquQ|w3(U*N~>Sx2|^y406HN0LG7t} z2uB8$3hrtXad|r#tnTYS`~0Q9w-+Pp6{VLS>Uv%4oi*@6N7OW3Qe@X3zfuYq>JUE3dL1;=v?U z|BW8=;@|ZF9LnzwxtjEi2Wa{c?oxNe^6B|%$Vl-D@Yi+c_BWXs4!@c!L+k|dkY8mj zmq1ONaX)^GzbC?PyvH%L@F18-=zKT>_ zDn5O~gh-$rCpsdoWY4u-4EavqS7s)282aJxS?Cp5?W8{CV@r`ls~`J*7E9KZU08zH zM$wo|=1a;Zcq)RAO{3j~|l!6E(NLXGJad<|Oa9K4~0p*bQ5{F+#2yFb)6X=hz`B=?7Qg-lgTPNR#4iWT#9< zkl)*$Dn5tSZai4gAs;c0;_=X4HR)=b8gN5?fV`tu$t$hUBco#RkZ|>1yoOu07W!vL z+6G7O$*$#Zia7&C6E(q=jF{O;+FTo;eb7UptFy5FK<0yVvv>yU0jAB&^U<$me~lpHtFOG}jGuMtZ$#Z@i!=2% zpb65`F__?8{k2;5pclFBi|l3S)x^AE0;u1I^MI;_l73f+M;iX_Z)V)dK{o+&FC{|YhJ)+g>PxGqNO6*9FaFihUkWvas~E?8mhB*_3KbMmm1Ja z?irCH9eN#ys*i|-|Mg3M>4`=nkkc(ap}Upiw1UG8rSg`}?)RWWO*!}OVFKxjKMJPf z%I2f5)|4|CIhsV5<<=9QEIP75&6!ek%Fp>>JP+ zyZUWsb$1azpmY5>d&Ur1SOobZO*_;sCk7GV596(}=hq-#f6_fp@kX_#EXi|5iPtIN zM+A0PDqwqQ%a_j=E|Y=ut9W)_Xaz`ZqDvUK#g#fI;&}e#-3h$p{l?^Sxye?^3JL5t zia){T{@GmrL1Fcty+gH3gO*zq5ntJP0YlWU`~y5R(Y-SEbty&^gPBTm^E_ckK1+U- zOzpTyeM7=iW?f#%WQbcv*q@0#!rYbfko{~{c>ijs(X;V}-Z`c%#RfNK*?Y)7XDB#N zBenm<)@f`)+uDsy#PY$W=$PkpB*@UZ<$p)nvM=H7w|o;ex=IO=OY)=hc#B++To$xx zQcMPE6uMbtum^X|uAigMWRmv5XOD7nkCHzWpX06*TuZrFp2D!f!bMt2i4i4^8Euu} zeZ~>2Je)>xGm^~!tBM7q&Gx=$71SrD)p_%}o$%swzw3-6A=1=W8uyQrdh3I_mfY;% zYbuFg1VT%wqGx20IHbe!%<9BB-O_>GEd65Uh^||p3_u&ms0u23fOSnE$$msu0!Gfs zF^Y6dIb|B`Azt@GZ&uHKX|E^e3q;*Z?WWDW1b?+c`*VzKd=3v>N|4~VQTai5Y920u ziSr?xnqe72Lxf?Sd`;0hG*?pE5GvcjlWZJCs55dFrmvQ_U08`bnOoqEvBjI;X1(ilx9O_|0%_4PDn}3zhRRZQ;k8#W z>{N7TvpJ0zk|vx33={lPuUY?cRnCbwy|N4S{3z=t=JjBxbArvTNK*p^gsl*Tw!Bgp zmkkoyHxvt0B}2VvqL}gd^*9-!$3OyBE2?yy@}^JQ#>bw#GVSp6wvOq@Jk;{t;1H-8 z$CB$fM=fl{>KKxicF?ggcar*6R0shP|3YK55Zy?LO-$9a@1zKzTJU-;iDPKQExOCS zS;QwvLVzaI?lQ0%sxtRU??=uK4@?&spVZlfSQq&29yV>Q51kR!E&MD-U#TBO|AQWR zdwRvW^hz1S*3s0eX-Q6;|9*L7{Pf-49|X{*-c&_DvxoPP;uxbvJco$FoKNfwuxx(= zzhF^tm3h@K9L462Z{zeQe~ITQOp`T88q|^%8{QUIm46AMUE)EKd3ysk{$~|a-8a=0 zV%Eb7ooOG+(m0d=QxlUo`UtXW@+4&gxplixsq z6El^hQs}zx-k`NY2uCC%eQ2{B))R<;c>7N;>oHL}vP-eI#Xzq21J z()#UpeCT5D&q7(B>5H^wMVY(8fbr*72Vm=fE)`gvCf=@MBe z+4cw^J>ub&aD2`EEpU*rIl`_|C!BR; z(bhGcAkBt^9jbBy`%Y?CEJlT*?+0~e(d&Ba#^&pL6UI6%*two)?DC^ZNDbBKGYz}@7UOKL=L^V(QX%L{sF5IL7UV~CHA5WG^7DA^FFpVY2fo|p8A=%4^Y2ZnV z#4sn@KwXDc0xT~lU3cIwAewQS{d%kM{ldI9;WEGIRmgsdT$O+$G%bX@OsKS8Uvr@V@^+lRFoxl$OihWHxh%# zVWO1V9g(pF~~ob(ZLO?lEcTA*Z$ti zscY_&n$Yv&O^6pu?Dlkp0qd4Okk)*bc^=t9?q|FF+Vnw?_SdMB3EHyF)C9mA(b)eA zGkG_Bo?t0wxWm*yi6$|`w_zXbhK^~X+5@nR?Cf0mmO#;;szLCVh|WObh4^+*=Q$k7 z+Fu+MPvM{yfV$ULAH2B%cMORmt(;T$Mytn>_e>*Kx5K=H?r5A^%$~EWnI50StfagM z7!w8^|9UGzrOP}W9%S~T`)>v^*Mi8xTdU(EdC9o2yU=rAVKz8bw7t#6UOce-Cc7T5 zI1Y(`?zQ)z97z9|13&yZo;s>JNJAvWddaE#g9KDtZ|tuML$E|@MXm>lm>eyTrYM7) z+r>JTBZFP=4S7iF!3)m4TGj&&U=2(%eeN~1gcO{~T}T3r9_5_~ImsD#gGd-oxxS*^ zX^&m`UhO^cX(CS`Z)@=_baG-MX?6dx1VH1lm?e^xj^UNoN|sd?G~DGGE9e1X226rg znn`EZtLhy7;eSm4U;iVLs?Rc!lbpk4W6rba0#zbL&nD7djw<(abu_L7UeQ`%+O4-C2nFn`3PKAfrdj#orIAqnvrW=7C`aEHQ`#{8c6&3x~N z9D={Qv&r@!7UG|+rXQE-WaoBF*dnbtO}9f)v|H3B4xV~3&xy>Z5%-c*D{$#$%zc^& zU@^PLXj8+%fqm7g>$Zzl9nT_!WKtAOJr#*}Pq%6jSEZJpF7${J_x3@Cvf=qnmc3`B zix;n18x7lfg3kO%E>y@)N$H2@S7DRd_k6%OrG5*8CPri0c<(EDF+6L3TlQb97bAt5 znQ>vH!*@!Jk=4eMIXlKRSPv7`$bDSrU1RsXJxKy zbo>vb1FS0lI%2bH%kJal@wU*=uoaV>wBs_r>^?&0aiN6^`29G?R4c2VzsD0KLw_1L zM1h9Dq_`{w>PBVQdj~X3G6qMRGMBnRkYXTi6T<&4ek;U3A;&Nb8J6t{ugw++7~67I zSPa?yp@>-+@A+!aZjaQ=m|Y~zo?UYGgFI!0IJ`PYx7Z|GnE-}d>CoVG)X_gR7r?-S zMkZ(@eF@d>IsSO${?PZ5EBx_3!V@msgNNKcVUil`~8yb$5p%%o9qmz+XKM&(^&TN*blUeb*M-I{FMJ zkRf`!ZyYT~OCX6|5H(R~Y6&rJ%27H)hF}lpN8lYY-?7d_{$hxHJpf0t@w3Q9q zsv*so@b>`%c`Cg3W(_bZRS3H;w(oYky{d>OD%W2Iogi+1axd1hi-P1U)zlE;4dxYk zc+K9~*lZ}^KZ(6h2|EInG;7v*nGKA$zUdmBQ&Q!|92a;rt`30@XoP8oI4swDAl8m0 z4aTi<+V;td8S5r{qRb2SUA(2kid>hOzfz+4?Y(1>DKhZfCqEw7&W?A3A8NT;;euK0 zqrLq^r{*uzypFGS+`13a?Isq#w)m0QRhB9ij|HJCt7X)iys>&VTb|12k6x?HJhc=S zma&rK`PWn3BJh61=k)z3UQEv3x9^-gmn+>>3zrV$EcU1LS@z!`n;9$d%=d3zrz!Jw zK2mvq_+~qZvxf@4G!TI~SF6^$77IRZpTUtY?n@W<`TWE$r`#*^_fR-4poYh-( zvf>c1voK^wmjC2-V$+54x&f8`RXY6EFlk1+{iiqsni-A00M>~{9rOg){dvE0r6~N1 z5GnPXoYT&bIogX?i~Lt?@Gq65-CY3h!v3I% z$;1RBYGC@%@wVmkT!|$0Lt;F+=UuRr>z$?~a%xe%5!cB?xBDFm;kT*djXAy1bm%pf z$4QMdfr6G;hgaISsRC;^_w!h+UpB33QDN>>)qTQ63I$h%!d=r8)Ignl6fPd|SQ8zh zCZj;&C)?AM)qmsv>6ksPH%D*^l5#rs@ntOX2?trDVm&M$!=A8os5);-3cRXwk*3D2 zc6*i$8ak);eUnFRj_XjzL7HHW^c5OwJm^XsoyRA2k(`3oFO(|k9%Mb5AJ;`uDgaxa zZ+zps?KYuf#KI3^D`MF~WCQ7nUS1=tI+JZs3LUAsgo(V&Nv4*uuT0QyJp&re53To5 z`d5xvaq1(h50|;^MpQrtO}{G0Rq=)hR46L=BP)varFdg|}S zo=s;dI6Z`M#E-80bS}I8oMbOM55+ZzxcDRKc3pkhxjaI;4sWadFu3AFHCLw#We;0i z0VoKZ?dOC%S7~f_v96MHKx9=08e#Q_g6^ykvfy4HwbG#$pde^^(A?cqaDe4FRO>qI zn_pY82w14pm(Fq$ft__yp<$E?97_fNP+Cq68hkn>i|2E~W=a`4aWMG@4&X(^4+1iF z{gG)OrSCg&&j7!B^H0)FpxjFqSTXgH4xO;0khQzXQ0Pm7Rdl!67W$bmgA2UU&aE7@ zC39Epp=niA)SI+L z9^I(rTXX}1cuyU686%1tQ>+o(B5ACXe-V&Jl1`e5#Ws&I#%QLiNpC4OQgtuD^=w6! ziBWx6m9nf?c_fxUIXC5u1+Qq(p#2AQ3opO@S7^rMuaB2(4X1X$BSTWdFdHoCzv_s3 z$4uDsATwPcB!A|wPHvH%v4kX6K27fqpaDd(SxG>1gQQ`eBW`pUh?g0RitZ~cV}?4j zw#o1r2Vb!)J%T>vS@#`Ww$tIn5ktZ8t-A^e#v6QTv8RnePp7b+G|jzL`s;Tc zcoAdwJB89_(Bq9u%HG!4$DQ8%L$es)LfLgRx@fRB8{^OsHg`IehEnnV;mq3N=qOWQ zU+3<>b^NyW@`II5O!)>wSw4H3b%b~gL{MShWdG1Tgx<0m)KjT)evL}Yy}M}Um}eE9 z%Yc*DoO}|fZ8t}h#Ys;%?5Dar`1`(~K5Qk2?8`K1py#Y2&lyH;*Oa395Kybvom1}l zF;&sEea;}~qS=0Z;BqlfoJ*u=q>!>AEwzzVO&B>Ix+m zYmb=}e7<}^54Y$Nj<^7byuaw>leg20)7Z;0A28GTJ|u6&4PuI|%l^U2&!6;HhKgNn zDy=#73!*2FSS4;aCQ5o_+q$1D7tsNExK8UnaMpZR^^r@;mL;vFNbb}%898A;Mr$TD zrQCwYkOxK!xhvyaE>^}q@Tctd`(S*XQ${*feQDRTB`coGZQ1a!Datfg2d)xMP{y|^zYG+R?88Er;cPQ)!Ig|c@Cjdr7=Ik|cR*5|t7NMEl@7nTg z))d3qE8U_o{RefHtBtJFks#ukbQn8>|F&96_4Aiv0m^4#O_7d8Ygu zVOLVL_b45e*LZ|~ZK)swdrt9mj|FeB<-JL@iSa4VYwb45X9lv!aVq?OL7HM7Mc?H}kJRt3x7 z+vp}Y>?0r#k#oYOpS^|Sae$w?9fGg@=&e{H%89qInfM@*1r&xbMe zZi0ilq}+_7{e&zS=}?&z62!DeoGDz|1TXaa4*KCN$n%a>OAm8XD*685#D?4!SYrF(p8pC;B=z(L zX}OI=SvpaEh^^h%63~k|Pu^Yg5;M!)5}Mll$|*HX9@W_>9Fvs{a`npYLdrh+jL)5B zHLCLQokE`?ngqk%EPWev$afpN2y(K34?U(7*z8*Sus+}PUNvcgp1~g>)#2HpP*C0~ zI=*=!PV;eT8E&T)!FyS*jxISpJTLtwBGT%L=P|iKUtmzH09-G5*Y$LzDE%B=P~b3; z+AeE9Fk@cQjt!!2%*Pm~G_}{vs>WlLcKrO$AKW_=F!!CCY(hM-4eYpeAiB#i?osO+ z*PS$SL_6BHTF6zIqP-dhc81I>Or#5A_Iira>>aYnXP$Q`wxZ^(frlx$1iB?<$aft$ zz`_&YOwJ>46CCKbg=rxE29#{rOJpBQt76ml3UK@h6n%!3nR~R6t%e`PBEXw$Bbjl{ zfzRDsAo0^wD1IH9m9Ub;rKHs-DPN`bm>vVY@(uoH`dQ+$iO+@8TE?R`KZ0#Sf+J|? zV2k7otc{VZr_)CT>kckf#P}_T&yloka}5i{9EbCc!g@4>OZ&Vbe0-~ zhb>!Ocyn8#Ve&MgcGvoQPzU6Eumg6^zROhR(l^$UK+knPoUPM%W{4>7Asa$5|gIH)h@!(1?s=M;>??3XC zy^dOYVt#;J|0{#F0rs*eb?+X3jNnR7Rfq^N3_VS*!vATJw&|R0p;^1=st>S#*2yp9 z*_NO$j-ZkntqCq)}0JL7JI;Piny{ z_flYDP4GG0p>X8Ee&G$_?!*(Z4L>uDmDh?IQD3Esu@OuTgB84=bW7Wt4;^v`YtkP^ z9%wJdr%&dN6+w zb9A(y)_#!Qv{_&#D{f*G?{9F0H?uuXRh(liy5LnUrW;%LjnCbDEile%H}?;7xbL90 zg!7SUs>1G*i`3tVXR^~7Gk!8QLJ9frbEk7nWsm>S2-H|B2=}!USGw-mbZNfW2;7bgJY?it`da{VOXmLuhT5Y{KqBA{G_Rvly#s}X4Q0vi4|QGrkSW=q zwJr|*e7~7{l?7$h{A-7VBn3l>peAVZWen%J7DxPxkc`x86xiL2c?Ua(gAn0WChV+d zik(}B^NkeF>BR}Pn++dh_~+llS1Bdmu>s8w_u7V=hrT^SMkq*yR+JVpi(KU~jlS#Vodj{*`*l1ToXJJ6nh0 zUT#p_etXD9h<10rmyU z1R1dSm3Hb-#x0Jf0 z;jeebLteJLebVZBIk|(3nXoT8VJ0+bmw0-?=PO`W17vlJ?-Fn*yIa|rYx=8KEosED z^06Z@doybl-RugeKNjy(3rz#pmasbwkL(vG>=$|@r_0t1Wr8A4#ulhY?&61c&qr#$ z^moecXUhh(va<}(giVta1FBp(dj+?BiE%l{$U6Yq&V~)GgR0;YOgN{0<)@7~l79c> z>7gr{)dOeEeKTQ4K0=ldOg$u9;ys3AT1O~@f$~9*xMPrJJ^8tN9gpqQ*Mb1?+n(hz ziD*Imxz5gym}Ru^a~f|d`P**|&65BZ%3&m7ids=P+1P7-1XS9=X{YJW6MNABOL;Rjucq~B*+4Piv7 zS^6?nx>lg;thb5I6`aP5aJ|OxZO)6qx`lgP>gO?+;QSNF<;Y7t2;?Sw@3OGutx!D& zZL`j1-U0;vn}e(UcyaGFyaj`MT_Q&Z|Ar|49oq9~yOi^SQ)aq0aI2gkzCd9F*>rBQ zhZGWdo1z+saeNU$J`9tzv~m&BV1h001ZvypMvC~sC7jo!OJ5R5jy+EvORT3zjzl4-g+2w*L)7BRcY9TZ7iKp_Q5Rp4 zhhe%JO^acmOsSJQvN!)!cp3^!zW*q=Tov&>@G3xAIyw#Nls&d{-v;!{K^c5{N7h3L z^04$op7?RqnIW(DK4+Hr0Vy~rf!*(x5j7rKMEGi_5Jdf}mJ!8Lj-W&@V9tc8bW7Ju z+bjF|iZh-fOX0K8*>u^zVtV4NyqT%^TdxJ(xZv0{{bMy79es1@Yq63|vChw$ZSJsi z4m%`L<245@99kBOTxlZ7C2EnYZJKrLb%bY_StCBoxw*s5`%tmN%wOj}{&^WS|KGZo za8u}2C)e+g*IP28C}&9L|2Td@n#6?1p7m%KNXYbC@Yiukzxbv*!~}2MDD|e4ukzet zhcAlqUVBp%tvPrm&vFS`^wC4ouu*!wrP&YY1Bngs(e8JR8gQwWl{ySXM+mu=9i87P zu>f)uo^s-KXu9uoRW;qGkdBb^=_`aTXwgAPMZ%25BK{;^1Hlabt-f@p7q0aJ=ZU`a z)A!|Xon=(&(d2(ZZMwD2+0oD}2~Om>9eKpby&~)?Mdl^kVjCXRruVH%WLKZ*`#e-q z;C~#`Np{q1JkKlX1nt}{n@J@XGZ~c``q>&7$?S>jzm|o~WTR2%k?FhSe}4IX^+HwJS~DQ!cl6;Z}&2iyYRyCZ4s428M>@>i3T^q1h^iRDH$xR6(H!(wCz&dlHk9y z^S;vTaql`GucWNg%iXQs<#&^llrgdDyI%uKDq7Dt0z2aIQG;JC9U5}bPWOMu7V|j} z&p-0XxkS}lf(6O%;nZsxy!NE0`nop-OqTtvU5e)EX`MDK@d7YC_$@_6R{TlIG5}0? zUFEndtQGn1l#EayZjSei;;Y}lB2p*QsgxT5_Px`tdckQyi&CGMf_=wR1VQu(3jc0K z%R()YIc*^p>`DW$kM9q57oo(7#G8gyqNU&pPdFE?KFm4((XXn8SiyM9KULKgS%mYS zPgOpMmNF8VC(PGRZM~vqMIc0mzj>X~k+FYFU6Wc3?h2f1+_dFr9|pEUVzD}nIvKy4 zojcJ{O1$hB;;xgr?VTO2MDG=nkPOI{_YKQz-LG@G1n4=dfpmL*`W<%?0P)ga@+icH&$N`DFgKXR zDR|JW-FbM$JSF`};a4Hzh8gFz9MWTV7oWyS^UKd*E0gePFQ)m+d-qU$H0L=2!Uo4@dP&r2tsep2Ie@gK$paX8I3 zE5fpd_SiLizRV6j>LvbdeQ@V&TJSmf{^j2-GD<3U*{yp?HoY-)n*mV?Glp$J6tT}a z@GLCjRv01Wj=%Qiz*pVL1M|r*ZJFYBsS4w?TI+#=THNE!p%5Kzs<~uv5c_cDqBqib z$pL4^inPSqr`|@s%P7vi+=x$i7&jl(HMPP?GOfswSh<(^tj}|#9s>&zD|i#v7-CGQ z6KNxjtu(`m`ly$OZ-qz>G6Kh0@cymOe!2J8jb{fXPlW1Zh0GpnUv+4Rnv?WUSQ^gN zLVu)k_aX6LUNa>Z{X7i%s3?rYTO>k*z(OQOSCju(I`-l1)5-VoZb%Ex;Bnn^J8$KE z%oqq|HS}#@vrEct(Idw^;nSIn^B9A43~ckxOuoPX83N%-nu{b)UAe02{kmMQd*9sW z&(7$9Ig%dNb4H%h(mO-PSS(c1_jAV(AKPN3_InI^qo>LFl-v(809Qb>O;SVL6W{&) zLV2c&YEgjAx0*B`B>~;p5BsX$+BydO;N#%tReFT-J~3jX*_mkG4In{3`KWmiFvyJy zTVAzek6mZHF3$zXTQsO5aSPh@W3-jTCO$7TPhXdw6l%Tt&a;)38Gf;n<1lW1LnqZO zn1q za{&=9g;+wWu&DKQ}Iud02R~15fm_WwxIR5Nb4bK_6bV>ec;j~ea!pE;* zqhONxY-Ds380mjnPikuF)(G5L{A=4WK*+VY>Q1@2Jt28ZVAOa%)35Mg&2bQv^goVc z=LrY$Ss+8wcr_7rIzHdC44*oaRUd=UUDM{<;O8_+!uN41=t`=yel&>}ss(rT5PFIv z@fu$_fi>91$RqaozP5S{?F7;B)XuPiup;>p+gXdVD=HN=J?B-XdCQkbhaiY24=$ zW`1>G$1!u^4djDPMiWDwTNJ&CMIN+n&uJE$div!sUUE2_I<;Aa$>e(ei;gj6(eH=1fRTjeIB0LY`N zCg{`89Wp2ddw%)lDc+{LtRhcHyOSRq8KI1|(x2RDq}GD<0q49c)4|HsHV;6k9G3Yy zPz;_oNlXV`n^KDiGT33HO@4WDQ#tXswoQN~%A3Y)JtJ`fA{B>T&pCY;p^)x?VP0fk z@M5CZR0XKt0G_R=_$Sf@UPX0a%@4xf=@pmYD+k7c=Y1Q9C+|G(g8m$Gd=ZAf8T=Vm zApV;0pk(6ZPARx&=+=Y`(ggPEwd%ZamBAwMJ~wLPLlMKme=st(U%6_3PHMJq4Rf<@JLW@$ zqbK)Ab2>7YaYQ=iWRJ$0qX*mR^sA?>f%czv?ZBt@C5J>|x@^Ufw)g|OWTl0luG5Ee zokpXdX8E^IPZE*o`=is^=MnNk--aWl-gF>+LO-SSc_55{`&biR)+fFt>GWO0>#}8?%dbw>j7zEzXGG)*V48KK>VX=eV=!uh1cw6FBvahzKTyd3 zIDpwN9db5vmSTuR2_k}+r-)t)8_JAW&9b;GJ!6m-F8e3xKQ)Og84 z;EQG_Z>5#`9F(j26$9$x`$@UdayF?$%b#w=jnA#consM#&E+L+b=v#`q{Zr&-ZT;j z*;@>_IqgK_j$gy`->rV+gSV0t+YNqnqw4D+ohO#KQ-I!Wc?oQdgKCQx^;dVCPF>u9 zy=B|0y%J+r!HSYF-p}zZExN-G=;gTty<5%4 z+hhmoZ~tZ3!AlmY*21x{)cf>{FWxm5piOe$kroOgk-<#;*QDg#4xcQ8+edd2JehnF z9~tZm;w5046T%m{YG%uU=cpf~bAAIn6am_|@mC6EMJr%=&Aq)GD~P2Z|H3_*>$K4k zDmOQE1eLG$nr0XE+-Y~%7p*j)=-L20V5A7(6TjLJS{^rRsDz7hJvu}UGgIJF__QL< zt>1^c_keiSLxUz3{RSv7{p$gI@TUE=17Yqui>DCj@VmLwI?bSQ@2m2)4KK0!0dRJ5 zxu36@bGFZ>_1>Ay8M9XdQf5GTZSY2zLZW*)H0|#q56%+C_!gLXPNZFJK?WC9yd|+M zb{&cr3lo!mDH-e#)3K9vEduP#i;+J{6LVXs$+F2#L)sjn zye;=NIe;;=O^aI5AJCsMR{QOJXo~8n$d0`+X}0-YphB^{wsnWLjd2?@_>D6fm}}Mu zXw2jyjDKRnj8?*ATxt@epWTd?x)+DnqFCM)bh`KNC(ID=|T0+mTGZYS!1q90VXDp?dX>2mUOC6u<;+LA2Wz~2EqIlx^Y@vxit69hU1BK>u;-0IT}YHQqvob zZ{7(!D0>Tf@8QKisBJs@#~d-8`M}3&)On`pfthL7op#tgvZz4slyiLj_PHr)`~1Gb zS7rXQ^c$sBo8n+)1|%V*@I{=9uN#oN_{3}IS`)%1u{Mx-J)hEmIA;5w%-py?0+8Pw zgnbJ6b`W3C$P@jSOQWgN&g@j4Q|0O%88+}kJle=X-M0mm?n7yue;1hU_+_i>6-u@p zB0oxucbRpUKHGhY+H*lY46638GA5gRV}& zCGwZO&gK7JMdN?!xMCEi<#X@F$N!C1TZ&ZPZst z9dNk>%l#}a+jI!|LwphLe;o5qOtPuPw1{q>xVL5rY;qwl%}Ul_<2HRFb^}w;K8ogyL)yMVz;bpnQ6slek`bt8S1yOsNG+ifAi1 z(Tx|d{vs*(3in%I@^*^3I%cz~N)k6iw$C5sbC%cUo8J!|GZoWR%o&h%D$XNVMw3TPr(xw?zEP6$toQuzAT7s>Y7u=5*E0)UEUMf^dD>n9ItYcH_^v&##%-xn zl5G69lSrRBg|>>n$6MqgZE)~0%u7^IO3n_aim0!GB&7`MR;92Pzz=@Lmkhhg`)vto z(sth(qN2*v1p`;o!|z25fkk+E-C5uHP@6K0E?dM;6_*POlotgH0%KxEPLnsiLp4jv zvfz@+v|+v>htXYucFLR^0`-Y)$Wx&WypC@0s%->lcEt7h>Mnws{PLJt2HvR;tMoNX z?^-ZDndoT^Q%UsXXTwvw$;O;kMvsppn>SO@LDbgFtGZXDeGZ=A9IFOqvziTb)HnLF z7v=fC6_E$$$ag>Nw|O1)^jZUzX2mI|>oi=0jD3-r;>7oW2u)8y-`&s=scZJ8DB(1l z0`1_XeuW}-70xO6^5u)$&L`Kc5c_yd-xB2o7k-HbnPNiG48_jnt3adf&LyE{ekPw4 z>~(CGl}mao)t)~cVReN^gU=~W80PkbSkO0Qzsz|D`tVEPUwUf3x5>~ok9(n`4qrH| zz)2T}Jmc~q#OjZUop*YfjpfjC=s#-hxuO^=@3W^n-=Q*!Gj8nXUX|DVxZ=lO(aW$2 z)B*uj{QSG5u?ovVAyP)$+QwZ;T9NA$Ik4xE^3Gnh>P|UHvg;i7r*&WadpBW7&~;^YT?Y=Y|eT+LP5k6&a1b^#!xd8J|h@fT4u0j3oD% z&G3IdO)e*wM+p_`!8~QxriIo;bRvG+&@pi!xpEFma>AGBXmLZ_G+1q$pA(3#l zS~~U8x-bXbvamu9R-RZiM&zp{yoB6%z79WHe;u{^LR~MOOZ2KsXxrU{N??b9cHY1l zxo=f&B{%gfPBN|l8b1*#cDTg3c49YfO@MHVnUe%^Ak3=<{yFj@W?7&)o{S-ZrenH+5RX|?Vf=J7r2D-HCdaFDk9 zMEW*ag!gSbhY0w$`dVJ|^-$w=&K0O!Q)%0GVX*|W9>OyVxb?bC8c3PJktJNLefe?D zq2rcC4Y~}oi@tcmpX`;9a!JU6?POQ-m8?Ax4AL1rqVv-(%NA=y1BRXyoS#Z6(vYxZ zW-gW$Yfl~S6?X7*xvNJWlQme_w_ZSMcrDZXUnl0$aRengzdwf-dc_U@QdWRzu5P@|>>wAL7k z@SbOfLCX%_>`dhC)JLVU|6!c;>UNzP&$XKR((-wads?s0NDw2kKJ!Pa=~HCB!DPT2 zJ0~k0alJfNmewINlHHSM+A~J|g0GF>4>JAoLy=8O$67VNwK*kL2LtGWb>Dpb{g4)Z zzUk}8|8XP+cKxwD^7E&X5nb;}GHvC&$u~1MtU_Z1h5pS@do*4#ZE84IKKY1b3r(MJ zv??L)kPg#4FN$Vev-s82)#ABvc@>s?hGRAs2RZYPQdDHWtnFVtNR0Q!AS;@tH)m{O zi9|6$`h~K(t=DUAG0LjtulMt{HTVfis+W@g21YdlI-eAgYIH|mHw%T9o+M+| zh%qdrVNMaJSyQ^>w+06dkixwGMy>_mMW3A03K{gn+nCkGMS6C-lYy)plvdkVi{k^V z8#6glEwG%7%brouU zmK!`L9#Lq;-s^~*6}%+j*+6T=!2lwQr@l1?1*|EH2`3K2OEabZBJ50A;+G_xbC!Kg z(V+?h0p0I+#PkcDTQBOp3B?=Ds}e<}S!lLCM&BI4Dp2cHM0bpelcp4Pvt9G8kp8!) zXFJfhS_f`&HwNt#?O@bmTe0-DGWPsiL)*QJHg)GMLrLNF8uU9D+`i(&R9QY(zaRFq zXN~H2)aZi8TN2&|%AANEGDO<>4fz-LItz7yDYoq9<20hH%dSV1Uhyv;q9cDQB`Aehe{ry7J2wg7XRNL;m+d8OXmM@g(nJbD6*&q?R$hi zoJzfmpl5Jq)TPbUpII~6u)J_{fqlPf5C?J)k-+GKmT60|qM-z}&c9l`IUe`-TDr67 zJR*0xkY1EdADw6)a7i}E4UIx)!XHeymrE91drP_GbQ-(lw@_$5a1*7XM#*~TMyX@T zNaVUvp3%}pFtl+QHk;(h%|6ge>7nxFC`qeYMRN2!%JaLb-iLYDj??NPfVkpX?Qh>2 zg{#gP$@~f;ca62Q@MI8x;NFa2mzRQfr91i@K8BE$VdV$Locw;%bN%9|T?D z-*fuaUWZ=d&>G^0L4yw!C~{Ep0PWsFKR^i$hVKW#Q~?T z@AfLB1A~k4zmgzH=3FRviuY2ueMo}_IA}v+0W#ERXaZiR* zUfioHqh96N4^Cap_2Ym@i!I>^L;Z{~foDPU;y>|hkBbP7O!&R_l?P_G_1v`Q zSC3ou7r=C)(;(bO@7fIF@GaZ^X5Dr0U{#Cacp4LsY!#9ybc*~bwOGjX62?WcFyb&u z`r_B{7b3dTm(?D%_h21kPoC1F83+%s@=^Xe=`yx@*o*M6x&J^JjUMx(p7N6xV=U(x zN&KsNwu~~VusIIindEH_aI~o8={R z+|gfuozuusgMPi2!g}_Q;d809rTp_YC?NQUoU@^Og0Q;N9>Gn+r$MFg`{UDw$A0z$ zO=YBitfjxp)%(y?z|UBG5zrtHv%OALlcLp zUpdQLdSyLRo1)v34LNWguF-8Mpv>|xq(CE)R?5^seJZEE?-N)$CduJMmLs=01aIrb zQXiL^s5bJ3{@B+uG=iQUfo9EooAYV$5HpOnA0uDhg z){?tZF^j7_zPW%u9@!ia_GU)VsjRo?)W3T|?Jv@raip{=avH_C~Iz@sqAG7r$|HVgv`(|{HxvH2hLe@=9NoUJ}W(v$j36@ zX>EbhFJ&$PW}fj;`+(AOIMUg&U7=s$mOPhTe4!=!B{>kRj~OzucB1e-sx zxHJaHKbXGP@Dsew#8QCvw>!5NySJ}2`}eu+XJ4Mw6zYwsBc6+u(w#Mn5gVfp)jdjV76`S-K z(ElIP=$YD6u%P)xAl&jrch%?Dx|LGd5$KbSt(lUsEUPMgF-}~L_+K76|Fh~xGhx{}IM39WNXH-io4H?_32OuMc53U_=k3T#HA>B`fA@Vv{_-41 z<<5JpsAY-4oXFNTtA6zD?l(L~hJ(R!6f9&xhVo_iF|BjGWHg=$zEdqh!~k^^N&u)Os1m+-LEKanenM!7}`a z8nIJ zbk`zvWagInXZ80@RmD2`63r3A0lL3B*3n;|wi%E!$4(wFkf#usO4#l5{{e-HkJWe~ zTOg53$f;rJ%ruY5-y3ui*F|LSETFS z!ME6)xvlb!&_}hhvm<=T0N2XKezh63FJX^BJX=pYP_Rb@4Zp%?%*vWtWY0Moo7`r9 zqA9+s6bc5&Id=~A!WE~DeFbBP?8&w-lJGwcv7>s}|2PU$fo1NbCtQ7ZFZ_ZUD(`hC z{_@*ia8v1|jTX(??@JZ4MQFdvr#>(=%h^T9X6aQQ@7~CJ9NjO}S(DTxKtNPIi{3wD z{zqLjG|P@~meIdvDE8H=N*P!A^W_hR8sDo@oBGVSv!zjxn>99sy&g50@+)0UwZA&F zPla#ebLmD_gks2BdyjSib`1J=-u`AY)#?stfP zN2(*)WiW-W)uv=(7t1>}y>=1zBXlOZ@1rE$VqW1(SBIa?N-VLrtQkCZ2orDhj->3j zXBl>qmIqHHpNh#t)FV(qo)`_tuvhuQxga%_s4dS>Qfk)yEDSiWLS3@tY!DlhLV5Cu zZ1z#_@$wu$?%kt2ZEoaQ2H4ma=GxZ0%uaPe7qj{E_&ADXAoC+F`teV8&ei_#y82?} zExx!yq>8G=3Ojk>o%+{MRIyCdO=y}76jDnORUV>ZC| zokxeQ*150e5Mc~bfIN&dKXQq7(q!{`q)3ohNprC#x4GFWU7=t)J=l^DWXZa3JGqO7 zRSF!&ty?%dXokbheqpsscV;-nr;RdY3r*$J`~!eTdpNEuiCi`Oa8^u4?(q$nj1dKJT7`=JGmhFH66L{pqniitJ?=c zy;y;DvfAhGK5i;4E(NcWa;X}aJZUqRpIvwJzP_S^w&Y=g!TWV|pJlk%CEO;=T;-R0VD3pka=LWBRH!(=$N;(a{A5=^~J53n_N)<`@>YM zJm|Yyu!jUJqq`KcBX5-EbeJ&NwT)neX33sW5potmd?m+O;R9sSS}eakZfbF^PZiAj zF9qM=#<5@G@&@Mr`qYOMa=eO0Ng>^Xti2neAe){Ja!WWE;#dsaJ3{(^#vw`hN#8hK zYh(=u755RL1-!L93iZ(FWWAyXZx8AfbM){Lf3*-P*IDxu%^>#Us0Ek6XtPI~ZG!Y( z!82z~@l6*9?dRNn?#VSR?(hb$Y76HeBYm{Ol|Yl$YwDs6{0pH4Nw1iE%fb`BCbygf zpNOL0H}elKnPT03K*Uni{UqMdkV#Ek6$jbWq%<#PEG4NZVUaMmCy6&OcviLP`SPkp zs~Nv-!43y#zeJrkQ!3xBfoSl|=Y$1D`}+l_>yxUKOv(3z2S}uG);02aS4?+pj7UOz~&Wwc9IeIhgqyTd|WW3TE)J z36I>YH;L5ikB&%5Iqk9%cr@j#7DIN(FTu>=uM4>9OZ{mO>(-28=AuC#=v|dLhj{>? zKGA_2CybNPUsuuaG#~qfJ#w?YysmOysseWFN-MvqYX)a1qT_xVDsS3MLbHho3Fw$#v+<8_K`ba-QP#34Fn~n0Y z??5r;ZKJy)Cx^?gx@Ui5My#hV(L~?^M_y**3DYgW*c!9!(tO~JaD1%w>9Dhp`;MAixheYN&!p;gm%wgt4mWua{&S9(avJJA*EmW5k_x5Nx<+|KaXeJh?c zE0lLBh$$&kb#$Hxo>`JaPUj5{kXFjs!}M!@`-<4a2n3sywcnZi^f^@th+5G8s*`QH z-~6|J8;)0MJu5-b?!aXkqZx$yOoQB}g zgEsN4P=|gVgwbkEeNCp$Mg=2U;H(5ReN6lGp6!&Bx9xy!XP5Q7984gE(c1##+c z$@V}S@>6=!%NC)6T2EGfi-ir@gRws^#ws^*XYz!Qx;6BViCPKD+N|1rCiG)c)-#X`VYTiG*h$DP(-3%^NHU!Gzv)S4qy3$twi*r&fC?|nGtdf3gaFSwph-QOb}(Eiw} zhpe>H`~uqUQtgb#CC>ZUxs>vupq!(2nAm*bvX8~lk3{pYA8W}CXi(bk8eHuuu$gbv zh|@CTEP)zI?V|j6CSJsrhwm8WY$A;3TVB+sLxiJqo2n+h{EuVU_3#v>&^a+`3%+37 zW}wLb!>d%S=DQ65LNvzHF`N_cjwU&KlakN3TR#wdpuM)NK<@V*M5p^14HbvYVD0P| z4kq(0cnjH3ZfAcHu~tcmI|f!L>wD~a--nBZ9Xhxd1(f7Css|PJqYz;Wl=77RP!Mb^ zvtK9~UI^sF;Ozk<^=tRYtcj3QqWlkDiYC5m-MH!ee*nioIKM5bmu!HVv_tH)-8rvo zRKzCrXY8AZP~VkO<4?Ku3xxr1`gmXQUN6M?z^0~IF?tyjNDoFEp zL4@>@o#_d)2)qymGMH}(?H#?*;xWJSq`1&gDv@C~a)R3nLWffxsv5#X?vD+ohyLl+ zk=+*|ILgH6o8m)iL7X#FzGI?-W>n<^9V%&-e9DNQn}+4#ya370s(wjR1|vL=E7>xW zUA3}2OaOyiU@C&@&*}@Qzyt3pu#K=QBsrtiblpfU6WunaSm=-7 z+izozSk*GGs<1x`iOu*_u=a)1L1qVs}NsfqHrJhJc+;RhEM zn>Vrq*a^!1cyZbhsl>MC7ZUED_KjRl-AX3U>QHp*>_V@G3>>Z_Y&vJrRO3o-hQi_B zDfTg1YH_Trqh*EA`W31 zT>zx@?X5ldUj}m<43PL8Ilm7et#@aD!YX zl5e_jKF3g_22lJ)&$@K988IpwH6OBQ@W+XQNknSPtk~sUh0rdWLr4d7*Kr+-U3Cv& zi-;mrAs`>^Mh{M4s&vRzz#}TfIiD+lkenIBE&l)|)Iy&#BOydvML=UgCg)Y*fEqh4 zo|fiHsn9eKxKL+@NwPGNnFmyObsAxC_@uX~(Uj`Jhg_h}2&fY%y{vBiU$U&!*UlPc z2s}of=(fXO#SqHH-4;<%65Ive7VvMun7 zXDNhQGK<&0#sk5Y76gi{Nr#pu;vgwOv(51M{g(x&$Fuav- zD999kos)wid#B2idq*b?(J>ZMNre$RCX?maPyYY{CzcaNJEAp!8dd!lh+(6;h8;8u z&kX|dkB7cWhM!bCL)Yr7KmDf?yhpapxCmFoHU7$argc*@yaZ!Hy1d4~?z*kS;i4Ss zb-2oLnF8pH+XWG%Bf;ZOR=XkqxF~{s)o@JXWo{How@-LY4r%pQx-B4!MUa!&AOVD5 zYN@y?vzbyL$X*z>?oFr4E*yikO)?<1Os6@f!)u`0b7fJ+6;sl6Plga3gyXy-;VpSO z>Z_!huOGT3Ytj%OHAFWX?~jbBeP~wJH@YgZnST z9ZmBpxV?##UPYZ`?k^D4qgsulL2E6qVvl8WN|1iY&QNO&ksy^iWlZ_BPK*}JDxU;_ z(u0Pg=pUq~KYr*`ePK&v4biSfwp}flvMd=ZtCOG!b(f--VYgCPWSoVEiN)lq;1k#?Tf-i>giA-8D8L7?Q{?{u z0K5SAcN-`U7cy;yEd;q2A2P0z=Z@+~Xd_uwIfvDFmEE`5H|`N(bRW{Gmcx*BWW4R7 zIjq~UM!tsjx&^u26%#457Eol_Nm57vto=C`Y8O_Dwu}|lI+lXRL`Rpp>2$dmbwqiI z(OBmQvC&hqqQ#emBM9`;#19qGKP;$g2eDTd*;M0G&YLRT=I&IsnUw3?D8h$y&Z_u} zC!B(*eSo-y)3woUsv{(zTJJAxq17O4x{J1gx^|c=@U+aKc%Wf1t$&8?)_#ju1PC2O zzzFn-862B=x6wGe(McJ-l)NHLSlOWh!#qz^N0s^QC=WMe7#nesD3_T2)#4MZ0i>YU z2Qyrz1{nmx0j5alBm^AW@fskf@gnmQnD(FY37`;VvnlpHP1zS`vOP1bfUfSbVsuVp zZ6`!;6sA+9y;Is_2wGuLs6ytFQEW(dcU5;))hW!?PU)6|7gqBP)z8r~*}}I_8mBnI z4k7`tPz=HqwB1gbBX#DTn>STc>5G^;C@R zi(##+Ckeb~kZ&#Sj95DUh}67u!-eIPJIkE1KC{alDL?9zhUCPc;IVb?=z1355g#;&b%5N0zsEV3gONxk@ z`M=>80SyQ{O#*9M<+D5WBM1f0zLm`gI zR5g+W)G(S^B6BOmBIKA{J}(i*_zgJ=8rUa}75bqUHI%zifK;BO|K_ z2Vuq~IR2iI>YfSnYMpM75SLv_pO;loGS_)ZofVKXkq5shI;$v)c1><1%95bmAx5Zf zpR=y1bWVjuo#>513YMvf3Z|GPF#N3%2r$dIWWiiva?#~YKRj6rSS&(mn-K^$;+tag|F+JTg8DvQ7>c#!cIUxr=Pp30`0n(JM0c$_y-ICxwl_~!L?-lxlpIpE1fbzDM~W9{J+CLQ~*E zVQG1d%02^F2kY5ijPB%>Nz~fw!s%%isRlR#=7_1oDYlaf1$mX0iwjle=YPq{{{W?F zQ!+gi(!8cum+#BWN4n|b7>}8FkH_|_*!D;N0Fs2;-86v)E_XumHHAo_tsT%TbwL;y z)d4sCNQSyrI)=)j4g}spkXl(cfeVUX(-?Q^QY=X4a*IzWS-Q7A+o`!yB2-O~0azG9 zh`SF*OKG6C#?i$Z{# z0)13(=0tUSm6!nGIj-{os&ifhPf86QR^?pThUdDE5RchOGpU4GMTgA47Q_7^#iyL?Cl~E8JxZV5eU;P&~)X zQ;0rh1m+8QZk!%vu>gg{ugw`vEk;MvMMkZ1rp*~%Wqb28lo#_FJy6oprBD9=AzLQ} zT%odST5`B`usDqxp6EH<5{OVMcvX0i z{QyR$NjL*^E+N@!0DV!E(BCx5;fF<8l{K~ff&dF)IPmUgCqx0x`l}yh;_;qX-2$oK zQk>E{V$zL)X~J&{gGfKzox|cZ5f^eCFxL~I*%rw!h^Jz#0CRs*(OGAnd0}IgR-CQy zSx4Lz)NX~DH`yChM#`hWw0@-S8R0k+f~SlfF$?g4mK#|(y|ez4 znChse1+`Gw6(U?kN9={VeN~F46)h1_SIEN1E$oB%K=8!%2Vp!sn5j@54#@Z~&s7|* zsriZ{1ah(gKwG9czJ&6 z=oFY#gG|I~i=y#a{{TshxI7`1Ttl7r?u6Yi;K<5*^a^vT4ME3F*+s)0)4H^`eo*0d z=&C+t*Xn`Q8vP?>uey$4Sa)4QKobjlSqiiWyF>|I@~5(QZrkPZ<0%rvdBY>xgwuJ}WepI2(J_0%2QoAZzLGGdDPtjirT6$2E zl~$eCpt6Aj)kBj_Zg^tX5Nx zvY8?RCD|#^ZKabbFh6DPvZZH`CorWuko1IP&EZOiS*3Kop$ZMP!VV0{Sdl2ZL$YsA z{{Xij(rScS-iCb7aZtl7DjI!Sswf?DphS8p)l_hDsdK7SxX9T>ErjZf2Iy0s#zQn# zb{GDqrN(@y4lB>I2|}JLT!&Q7B~}H-N(I5B_ij;XWeo@AO+F|s`=LpwZn_=+0J&7| z6A2hI1yxIc?Q{nbzg6=qaU;|r4+VBw{1$XCH2W<%;bWX?rN##=^1{iVRfFtSs_j_k zg&-?JoSl>(WFUL2s)jX2tBFmuw?vtw{n6oZ2@LZOR9NPbx8|OA<|gV7AZ8F2gk_-v zvaGVl2s#EeLn>Ww(w|g%m2Eax7RtEg7ElT{?Oyo?UP=xpr}j>87FSWECOUkDbqboR7)^TxqJQN~UT%RhT-zwV zbW=Lq>Z-;g@I1F-aysljzMX^7AMoI_{*-;XS^KP@CdACKf?lQpa@85e_}63!Wv3+Tud7(`204#@4e7#Kn)zPh4U_@ z0(}ta1yt@3P}eoQJs>HnuTZ6rK8EW7bu=%-EhE3e1aiqv7!|r7kBQOP7~d%(+QyA*j3xQlYfVJu(D$2_R zSCVk9da|GpdoJmuV5Yz3z(i`aS)3DEU)xd<+m&%NxBg#mXX~; zyN}U-GwhAp<#l=Gj$%Hm%&bDc!;V?_GaR$a3kwIHR(W5Y%CsymDfV6c5vb2)0AmoO zrnrTRs$vimaBif79o4x5x|c865Ptsv(*e5umE5h*3$nK&5Gobdgm4qMbA(Efg#$ko zJM)vyH01?dT~w-BQmkOAS5LV@vI)%^8MC1*sS~)3d8Tq{<&NNzm`6$A9Zl)P->4w^LDb1B)9xg zq1CrSpk-R)RU|66M3G~nEm31RKw>$Tn}dJpBb5G55C$sWWMk@i0Wc7Qgj@~x<_OQ_ z-{S|DuOr)+P+3q-m4y2s>c9!zVaF>7TL?L{n7Io5;DOdiZzaWbCQgmCWKXp{!oz!c}!A=jwcv$6?-46OVZSNzN^xn)?XiCA7$ zVCDYNaK_53FCf0E#74JO1taK#&!nLy(vN)*lY~ijQ0$-^e@+j>=KC!CQ^@l&fc)EX zkBa=Rj)-p%r$k{>C}zvqNg*FD*jH>G$PL#>!fQT?jF?xnAOgy=9|S9vhf1-YW8vOs^UBY|j#*h>DPPO`tFVq%aQx^7{+}0=EK<5<%jX3{!@a^F z@P)grhQSgyU0G8e%4)`llWt$|x^dt7P(SeZLO}yly)cp`A>&IYR9^%udV0gR~)9X=(~Sjf2bdw z8U)t67epySWPyhl}5Bp6Nv0)Pp@0n7iy04fjx00II60s#a90|5a60RR92 z01+WEK~Z6Gfe?|QvBA+G;qdV=Kv4hM00;pA00BQCHwwEO5kfMhXLyxxJrDl?F7~`d zb%3w%QNv&0UDbx=IQyT(F(wT|{{Z2gP<=$op|$!SrqboZw8tparrY|p1R~)={3zTa zqmEofg^6b)?f|M@`z9i~dq9AkEQQTX{{W2rF3f#yU((>qi!NLs%l`lhmR$*OW^@H1 z=Qw915>XrT4RW}SCkCZcVRbWNu58cVE#%9uFdWduObT4teZf$0OXu*Y-E#Os>iCBa z;HqI>z|wF^Mu_8J-0aL_dYDV78obTi91*-o!H^Lar*Y!L1v2ytW(-q4us({F2tJb! z&?2RMDpaXaB|wA|oF=F-ZR4n-k;T`dQZJY(T}xQ*!{`Nv(jc0sp+fJV)9NZzuke0_ z0q&{-Doq#u9Q`UOR$uv1n|C$!V?DMWA)5x)=FB$l>V-mB3|)%<0QhDJP9{acGMnRR zc>3JA%vhqwgvl+L`8TFJx;t)M@rCj-mevd8^$cI_j6f&?s{FwAweVi!;H;odDg;u> zrhmcuH5a6!8CG}M{wL67%le-}d&E%{pyh=|5H*OKdjW#=D6kQHT)AA}@J8xWmIo~l zQSwO965kT&Ty+T2GR=I3d@%30;4oxi+F;s7XLdTNd25-%#D(TzMgi#cSa450Mo2cO?25NJ1!!KAg zZI@k;1hbM|WlZF0)MUT+i_=pp82F7#y~^9wMWLYlzy%rPmKTbncMXhJ5TvYYk0hxAmmhqJV?e_-hHr`->8y;p~Mp;y;Qpmwb!bFJ= z@dyY98+J>>YqlbzaJ+`5qDWmtiz4Wm0L+ZL7jxg%y64=x1`I#^ z1Z$X>fBBE`97~t~0M!d)sFzY*+kj;R(YlJS<+i2CD?^d<5DZPGU<&xM+*QR}#Hk0! z(@=klMA%#=XeEq%)S#d%RKy?LX8?L7rIVTd1V6&2@M_?|Ft~t*k$m}>QnyGy>ww}E z+k!BhvE|6cCV?)h?rO$1#9J(Ru3)XB+HfS_Q6d&dmRar8Fff|QSOen-h zBvPTVd6ap$iFDJsr0x|#YiSrG?g;_g~*`Ktn=xwTp)RH1{OsJL7hGAFJ{%)DDgwv=vC0tpuSN{OT zQo(`&c+JDooUs5Q1HhQvGS=CT7v(lgurM%%hF_5-Ygo0hf=@8#{XfCeTZ^+!)+U0{ zUL9g*V+R)v#W(J$SEjr$eFX=V5PL^@zhC$R=iH{J|=HZ-__b8|g*|}$#9}E?4j~u~BZI-5H!FLgOC}%`5JA(A9 z6qITniCW|sRvU$ZXK}4HDMt9tb}6fZxFlURUEKhK9HOHsy|9_oH?qFBOT-=Q25j7P>13=~y!*2GK3#U0;sjKrT3*d=kXVnD2RHjj#$wJT-S%Qjx`-b8#W9w4Rh`6jg z6CuL_RYGbdoqSA@zh(0+(()m`m3OY<6>W=>v_MFAh92d&Q9iiJT~i2k;M-oHSh7wFSO@A>;rY}cRl~-_!{A3L zz{J}zm55;1Go)$z%vekAVNgM1VSOT~;B2ETpiW}P>3>T4CCBJ%^|(Jv`f~<+nyicI zUC~o{mBTV3lgH8yV~s$7z-0Po4)w%Yge?A3d1u|q`RjpnPWOdvEB%}NV|Rk*M6kEddvGWJzeRp(N{cuwF$EQ~IuUfJe` ziXL?-tK;aFsI3n$mGcz$5a2Z;axav2@a@d2iLSnl+_olekdn=lBBEFS007M&{xOPx z>R7pQ*f2hCnAquDP6bmfFH)**NPIGc4PzFCLB}$-+C)V&!~hqwOv%>PC9RI-Rv?KJ z=~t=3Kv9|2E@@=QR+dp?2SlYth3_2AV|>QavlXihp>CEX zr@@7KQ+Mt)3m2#?9SOuPJ*?3a(lA#3$T+|zwFl6{aOh8YL+}tqp|@#nVO!4=u$2g1 zkkiBk<;?I(xTXldTbK1%vHt)9TpyteMIj6>89`B2PcpWEE!R<olT!@|zJ zLnCMeZ5=kuD!$PGzn-S36?T=GSd^6#i__E_+1QF}>9{n+O5f0FiCLDWi)LTtQwD5{ zE9#&Z{{WSLigIPla`MzP61tCLm?<mx!^Dw>S*K*ryQY@hUR>ZfZo^s)F!v%o;tDGK;fY988ILj9_7cK;05P zk(4e_>J}v-McfssdhRp|HGgl^v91EXKjtE=C?2XCipUqu{{V``i~e$vIRgH-M=T~^Huu*Qe7T*sp@EIWRnSzO#kJ(b)bxswbi)}hI*os?jTh8URwePmBoJ1H#5U#%wivi5OPpXJ>9}|s0=yFl zBbl@{SRAtEH|9G=6<&SI=CkCIq9*NnPntFLDS~9R*Qg?{?pa-dcPm6UH91IX_vTO( zdbpO{=IL-S;h49z%;f4V-#KQQ zIEsku#Kf+VwgcgmG+?!Y;j=+-paoXqgtNFqgXq++HV#qa(qm%4KEic=!uoCAbm=JMDj;K+EzBY z8!w2DGbv!@g<@ObD;z94jG;p$N7_$aLZkFH#JE1HiNwuR#HKPR!NHmmXd^U(0Kur$ zA4Z0AIe~DfuHcg3Qj&-3U;Nv_EY_H@&L;?qVFETe7&tDHt|YK_BEINj!_2zi#Kt!Q zM*Tt*!|4^0Kj8SE>mnW}$joxNF*g2M?n#cfcCd8iSW-Ss8r25A(0OQZX#hM95X zOyR^0BL@()Hx9TWIyVEDaC|u+(D?X?G0B#yf|o69LKS^6Oj^bitIvL5hN+AEk()MkE?l{C z<^KSkM1hw$hZDRbgvXTe2CNpzV^d$4NyA9JL<*-E+xeNi7Te-Dtxpa|YIP=mL2$}=xoZ-r zDp4w0fZ|v9Q6C}oC2H|9%@myCH%-2{>Rv7tRUH)xiB~>yppbc*K?;%uQFY86x}dv? zRkd=~<+X7yPpJ9=3ts9_stRJ@=6$th)y(npFg@7sexh+y=H6xut@1EYLSdZ5s*A+^ zKsIpTf*wuWlE!!_ltZ%YsX!W)X643R*~F#dkT<*PEL*vwG)<2cDu+HIT0<6Pi^S;6 z6?tI@{vyDsy~6I@dxPyo8L4LBbT5g6l~Q3axK8F%YI7_qwr$io%Rcd-2Wg3IRbLaL zkklL{LrkUdD6mUK?9WW5be99V}lKjRZl)GvnG`QJnnx9HSQw8x3!q^R* z%C_6>n?_hkQl=vbQoq2iIy+b+69)&h3%lF?36VpUd5Y)JN-zs+5XjeZtq0s)OMFN#yr~Oj z-k3H)J^>r@OYby!Vxx1gt>8sr{A5Sy1XJTGl0wvr9z?hK%GY^;VY(AY9*4Z zyu%pf2CE@{DpXX)JI-P!)F&$%wVV2D9L#1U7AjF>n$CYv$W*Lf@Wdp>2P|qUAJC{c z1(-tggsxn^NsQTq@z3Ht@PV;$f)UO0;vI&Eg*L#E;?1xsVdIA4kL)vp?0`QA;FxxI z#5YtscFZ@rWmegvaX^0eb4FK)Ced!1M_dLgnS&(`=QOnzvn~{l$VOQ8%)-i^p-Je> z`y9h2CR{E)gSgnVN(Fg{*=nXs;fZZHgLDzV^9B=8UoZn{oyLP!$*_94OL+L^W~<@g zf>F;?traY-Z!lBg1LUSD)S$p?3xojYP*!T@(i!7%cNJGIkuH|QaLHFrpaj}SCQ9mD z2)`&#Ow%U^g#Q3qF)1CU97CMN)k<2C#Ie|x(v2!M)U!M-Vx{=ZTWOd!j_9*;R#=DJ z>J=jq=FxK*<}rsXRUbZOZ9T;XxNGTQ$I*m7i7F~CmFSJbOVTUrSu=GuN!cy%rM1)_ zxM1c|lIX=Ly{ZnYcCO-u84*?LDX{S6jbbRf0OER)zI$f}9&NW(oC8Lm!F!>zJt!sVC z(TEBP7DgYP?`McSTg0$K2(yxdtx8Y48-@}qfv4h8vG*3x?-^e}N9f8vw2JovQGpuE zxnDzg%YDq|%*t-324%Db%NwXriC;vBjK!?iiHV4|+3@%%i5g;#KvMZxQsf49Xgu-FfH7G)?<|YtGE-w^KnA}h( zmQD(3hkA6rVy=YNMb4RpS$Np_Oh@QRP>TBXjK1E! zfi(k;*;|GKd1J6GaZ$z4z!eE_ytl$;Bit5wh3V>73>-R^s+E}YQo|-Q+^HWoub2UY z68`|fy2jxoJUF2K>cvKM71Ea;?hi6xBeIOI^!>R`y%65G7c%zLYVLx3hZc1mV4TE&)g z)WDe+^ji7@{#A1|*U&#mH1QB7(Ts3-YB>p?pyZS{^hhH$7*-F_C1Lx_jD9d0x6Dp8 z0kIneZ%-25ni%36H+=OgQo7lNxh;>YmMdIe57Z-+rz;+%>|J~!Vl=)y!r4vq zL6XKf5&OWuEO}g_8mBVQG#9yp!8S8Ai|Q>yAQ040PqShWx1_J;R5xuzxl5)+lS2pI z?pyANYG0Y)7=|)%JjWLfiS~Nx;GaAre&^N9TsA1LttfjSZONF zH!xI~epfj5Br>hWwkR|Vsuk42ih#kbmmQa6Duu)ZRD%!_io2?o0lg!=mt&SuXCeWw zH8OEn+`wma$W|RkSo}(}dzj@feDN^oN;&)zc7^f@{0CT%-8C$jBox%<>T(m&($l9%qeG!)aOR=eMM|EtSWPL zd%axQ#Lv;h3_VX$T z%ZS6*Fj}(uUCfdTb1MtDEGABVg0y|X*zby#J7>(L(weCI(#+h0+8x*~C?Oe8cDkt&cIoZ>w-dzg2SI`v%le^q3rYA6F12-6+;4tgCV2R+w8< z(WY*oLC+3I05KfKnBN9nG&Pqpth(ih^(!Utl#6>j#KQ~R-+l}l?{Dl%h_$TF^LYq} zeUjY3jsv(Vp~~D`4j0bi9UT)@r!tT_tiuCeiHPi+sau%*%M&rl3=`bb<~IT*B(PHK z+#^F}QOgqDhLg;^l*_Inlpv^KiQX8L(*>#V7I3!>;xhKmrhW>-?VkdUJwc<~x%Vhn zF3oJI!6$5>(?_UW&jbp|*@PnOoG}bW$!7+HN!{viIsDR%FPopmm4 z!7|umxG1#05`!(*a+SkQ+EnQ$j81~`sPCP`IhR$MF)yYL|=63)==g3*t0 zl--Zk#h`8)W1Yv_xp|`P$L2Eq&i%&L-f>H1le?DK1@Cb#@f1yl7tq&~E8KGNv& zFXiHAZXJ!ya7_Id=w*{a_`~*_1&Cf;r`$0Ac9pKosbd20(5l^BP%^ukIQH&GRSEaxkEjP27^ zQz}U9O|y8ZYyLqp7TeT01yV|wl-rg&#D-oY@3%y|f*VeSesX>3MrTnnctYF=lMtwLv6D^a3p zD$~rSSBPgc$E6_&9jmy5z{A1=z6ca07VB{lr8p*LoH16VsO(RHVitAOBd*VK&O+@r z>JWvXgsE_V`ge0 ztVbbN#1VK9m15@D+~o|59b#QMjk%V`7@1AJU<+LHHd|8Asb5M~tvMmN1HRyss9xZZ z<;~8xy(MOjMbtwVOypQT*^vN?UWC9(Q5lxsvzNnLGp0S zVDF%h4-*PEyuAJ8?1#*>U<`@ zsF2Ze>IVzCXAPpNY~%4TV)K@53&c%eTNg=m9(No{>0y!_ZX`GvW~~fV9yn-0ck-9C zC7{q#h-*G$5nLrAw>hYqmhg2rFiUv{#Pp*RGfmu9dz6s`hTRa29Rbv!mtji~O@OA} z<3Y)G_Y<#pA)`ZQGWcbgL0RRw*ghDcOdI<}7~Yr_y(reWMhpYd72h>EqA&-v?98Zy zh|bU!(h~ve>5CePn6f7%Z?2^=wpBwC@tr`mSU6e zfzWU#*nz|Wqo;6paz4q>?gO+v$1N0W2q>>{5lg7zXj(yZ>A@1Bo)~Tm0FD`XU?NsK zK8(3?)SlZ^lwow_oq*JMY>RJDB~_7BJ|$aB7Tj3MBtNxR@(9C@)sb z0WPPX@={kH$wl3cQAXH7J)xSmL2n2pl6x9A?xb5IY+G0L~_&*}hz`bqhLa+KRkp4bgdh9%dDX ziW`BxvrJ0_y6ScIYT!!(+Zl9l+FEN)If+d~x=ybKJj=@-nj+?k2oVh|IEvSpn5gv3 zsEw@x99XG9^KbZ<;ftlrPyuyQLv+VP8D8_rP&+fh)U2{*ayQ~8n%fS@oL7|j((@{a zwqiWWWKS3|n#`kco*;OMV6riW0}EtoqwTV_`^Hah>Y#~Ct>yx%UmUQzS29+mz@+3j zxSCb~wVCGzDFGE#$Acd=K1zZQ1FQKcDTv|9vSv;kC{$w2{C6IUt zNEsSQzW@g)qyGSm`Z0#CMoV?#Wfk`7C9v%-=z9<)K(T^3P+&Qi7F@TQnnYuA%DOJ# z2#(^MhRiW{!wt%ESdG+_G?q9b-_WBte0?+_!$|!BTo5MZ&0flGR@wt8DNSA??Xz7m zilHRwN0Is;L$E#+3PO1=X=G^0V0wcVF@CCn^tsJO7W;iZ5G2aBeoKpW#>U>c`mrTM z`m5=3;UA;)ucoE_E&c{I`GN^cD<%48fxJR1LcL~KPMEUzVkyIj-*TJ8dxe+tD#oIv z&_*TdRTWi;ESMj{KI2}D)^MlraF0~W1izn3URwZcGjvx%pDI9F$pxa4GgZ7Mom?28U|XHCj!hsqec|=7bvJq z08;S9U1lX8699`TE%25pvvVt1LL7t)F?ckwysSju zQX>j!IGEHRxUtqJxyz`zay${((yStI4$Km>%RXmA3N)sd`3*a6%~g5^O|EVAbnW?n9nIjMYO5cQ3RaRy3! z%{{^Hn7N-J?SXCi>5k3e;g*ZrC|{TL3m2Yg0yRkj;ZfKA<&QG1glL*Fu-SkvpalkH z=y{khk?PkzV0!tz%OkP9^UM`i^9k=U`=w|P1;Fn7tBks z=ooSU8jNKW4di{LLY|m>MT3tr&=0BAM*0WfYY zjl^n2kUp4k=96L-yXi0Sq^H@0VKyK3(dY2#Up zUQW(pVSU1LuCVaVV4SO%Lpd{ZAR`QUi?2oiLghxRjL6r$LY?A{W)bdQ-X*O|R)~$* z?r;m{CD0n$YKQ^2 zitOBNLbzqN!!m^$h3(usS}?;0G|2)No>;yuA6Qoj1Ugsgy));w%Sro*>(}j6^d>Y zv5civU11d(Db?y+Z0zDuUU@i#-Yoz`OiJ*Xbj*W_z1(ALH4&3N;gM~;8-}s3DMPG- znLulP;)p*ey(OxEWGZN;rOz|URYhx)vntsSq6v~IS!!WuiF&gr_US&XN zDkKrgwUfr?0w+aKeIXQn-9sJ2mGGd7h!`$r1ORhDjK3=dy+*nUMNL<7?$=z( z#3kM2%(bG0#}cTEmSv8mPSZ_Fx6V^6QWBzUmeyVO#AzwOJb0QJdY3vNj0KuSxN+ig zjY8KcY&Vsth`@abWPf?q!U=LCZX1nkEUA5vvX?TN5`V$>)L_B-C)BA@rAqoRC4FiP z#vlM~;x1_5G~8?}x;)Dz!QmtCAk=bkPAD4Hl)of&%c7X&kEP&@4%^Jbbal8@u%SaC zP6lIBJm4I~f^=)i-EdS=?@+P}#U7YaH$v^vq@&_u$9YZIR(A2AYb^d_a)r zRn%7-!6CgvOSlm)OD1SqcM+I4{0P466^>%4oY78PMdGgsgaAD6cPQ2uX(@oI%%a*T zl^TbL3l-*Gz)lV!F&6J~+^D6{sHdZ;i&rZGE;e@x?iq{&#LN<<0@*Q)=2%yqa$>JJ zEvWB|-Uw{;^D^{Ld`ra+`AuMYu7I$C4|dY6@#}>|$#0%A06kaOyDt zQT!p-9yNp98rE{AI>|8VOBLd(=+s>=+sJG`Ybg}xyREX zK~70z*7|{6+`x_*Nw9tik$c>Ui+2{pju^mSVp|Od;4ca6-}H zHOjpGyNc=+>RdLkgjXjs3&VAm>cnk~b;b{-8B$pd5heG&wyPEVVN;p7`IdPdrXs^@=nIAw;I@&&crQmhkXRMFvx zsZ_--Ft6&L;ZmR?*Z6Y^yhUkh1EO3FTsXOF-g+iwQhshXpo)bWk-Oo9-9qH^6DxYm zE_1E4PA~mLMVmm4HXg(pp;@+40FbS6zTn@Us$XQMS&m%El-y%8s<-NKIn4{G=N0f~ znxx^F8=b!4T^hBgn5X41Mtexd67rOuWt1wWNtqWnVn1q#ZstDhWlcb6j~zzu;EDn5 z;D>o(&gx*IQcqL+1c{)F1f_V)EQ#s2zG1zpq|Q=n(ub6z7A^Yp*HHN6?keKg-5=rQNG z=-H=JaCBnkGo(Nq4MjY+02lPmULt7}F?>sv+j)6L85#_vRIV(vzy=f$WwCbk3DIg>9=uE}bQ@xu zPRHu7g6OV%5H{-mv9Smbp z3^h4waUHgg9ma@_CR0$Z1d7uZG5te$UePnc9TB^FStV70)x1w*<_Y(f>QS$VnUG-M z_b6!F!W=5a3dt`P-aD4yEM9&H>pfy$(FZ+o~nb+)s5L&)sjTDDXj6ty` zOC^VsL}Gy68(R<*#ijsJR_YA8&ZVLj*{+~j(*RHD`JNPOR+k>NQKzGrV_s}N<-n9gMCh4LKiyn z!Bil?V?%T<^TeP+m9qoE766|D{LdNo?p7|9WONkb6<);gn3fwkMN3VCF)XUYJRmbs z+ZwE5VTm&@(=BkA-%iMOZYL)gm@aC2FOGi8T_HDif@i@BV&d4q-r7xWd`bxym?!U6fP~e_?!vxH=jZ^cFzs&TsTP9soblDMV;Q-f&`3S93Cz^o8{iC*oSLv^Pd64Jg9%pT@~}4K1fVN|H^ck9FcYwgA8xc11b8 zg@zD|ERpdqOxPU3=mO|{;vyK4Fc+1~p)ks@^69q+Lc1!q2=x>>ZQJRzA|PZ4}LCEExn|FE6K=s<^t;f4F^QN%=mE zzyJezA(A$8wo8C%Pv&xz)$^EioHy^pLm7L3I;ic9(W{8E=-lws@O>s~Rc1~i&3LMh z09GE7s;c7!4p8w`G8LpbIDg$w7* zC{2RdjYDrpD$AK1u1n{{ReEBFY|E%$Nysw%+_lTwPK z?wwwv=Z0P&A!gw*la0(4<0x&v#u@_Wse!oeJCa!rCT`+D8&l>hb4}DrhkwMVb#DwZ zuME9PUAen~VP>IrbuSru6)(4^(i^F2ryxZhCM^6&k&^7J@dS(1Fk3ANzj!7gk_NMj z)v&3h$UVyo1Tf1s?c4&z=uy~8Wgbo9TE7E`KOnald%mdZGXq8JE_Ec%gv3-#=QkA^ zo=m1V(p9Cb2S$Cos+K{^0H9YHzU7(C-Ob`{8pU6qp|~p@I7%00%II-3b{+(EC^b`O?pY;%e+Do+7(7a;TMD2o zx`&4|t3WwwYj04teqh~2o!f{N+H9G!aMU0wmjbZdSW+`#aNH9j9#a{$6&iIcedjob z(l9ubzuYLg4w;w*r|`t!AymyOXP>$ct)-MFsX;>9sdQ>0n8Z_oYoNp@3A610H+FcL zC@ShEWezSFG`Ws~p(4Q4YZ`Q7I#$3~VgR|-gdeV_7@V*Q9ZYN3bXGg|KrfGkISOy2r#KzgQr`y>3&9{1ax92N8t$6l{w)Xt`bhUP#q>*+S}|tTzi|1Gvo#VFa<|FzuAM7#d*t zm4Vz|Zv9UD>`S)rZ7^I3ZO|Xge2mCe{Xr-$NU18inJ@;c0Zx<5&hK*@RtQHT_4s6(sI=2jGsn3RO`+*fkyTO49ip)|44%QMuyRAyuJ zfG4w+W+PB*iAs;cD_b8SQ5C=7B4-Wm1P~>`MA(2=Jx+Nd?6Nv-mw<|wU=;Nf&5;ds zL$_Y-l$pKZj!9iIer^}M#q~m4D{NwyIT^9RSmMUsrMmY_bRW?bOvZ7xa#?Rs8fdzf zE&#EX!cm;WHkpBaQ_P`7wvHk@6%xbfhC61iRM&3{ub8V8uGm~fdmVgCsB9e>^)Y14 z^M=DWR?GKZ;xmKNz9kBjrM3rIdfeg7Xa4E~fOymQ9b((WE@egT{v*m+8h{M9aoUlo zRm+nRX8gs4rU9NMivY|SVkKv`Awx`CY8JXgnM5EpxBjI@cWs2_a|IJFM;U=pFbyR2 z#jkTsr#vajmEQCbqJly?ARxqDVMQP{o_I#n%aQjN;n zl;u86yumDH*SJFVOtUEMDDEYSS6(@o?h$x*%|$k_ErZ<55YpJ^Dt62b+_`2ZlSUdc zUIt*ONiz40%r*8+rQR+(ShlF4mimZT!!Jl0!v_W1vnrS%GReM87y|BcgQ14CL@q7` zGmc2rqCJqj*xR%{jL{A&aZ-_7a-XEQUEqU4JJc5EF%Jt^EV!At(G^#-B*0?8*DwSJ z^81RbE>i(x<8v~XN8(jndAY9fgmZ|ZI0V4=EiHbib2J!rV;COw@6-Sa04o5!EW&|s zTb6%v%Pz4m!iKs>(9Lj4&zB3hHDEX?mcn( zE>pCWui#}{FWL~yQ&uMDtw=naX&~t+W#olu3$Vvf15nU(+(XhB0^`>B(LEvs$m-{6 zmh!J~IJdf5e9eqGsaa%mEZ>*RrX;@vrr;C_Q=E(D2B|rxiv+7)L=J_BZ2p#thL&7sc z@d_CO0HffKmmCu;{+y7e=%-P^t#vUhN6_kBR32EuH-}KrL?MIAdRu)<_H1^AmW>D z{6=YOMKLG`2Qs7a8M=)Z{L8e*Q9_Fwm2FwLU<@3&5e=8}IEr4xy61FbFA>5FtvO}I zxf!^u#X*#VQb#W)Evp^IVDPI^EG2JIC<*3S!(T>V*HKnO7_!>Ihipa@zxz zdx*Gaf;EQ(EKcKsG$5N>g2`8ZX7iv7^XghJyN z^ju9s%W`6phx56gs%EiIGfb0x#KOWycEviUxE3!j62o(#YY3Feje;l5PPZ*q zUlZ5^XdOT{<1;LmiNrPmVVZ(5EtjsLy6c!i#ih$20gMRF9K4}=pY+sVy9=gWtTSd9 z1kNuL&TL$|O~8LLrxkzj%iERB<^wYd=D4(_rx9CPjo%X=Gl?qrfWqS|`9pJ~o0~K) zCjjG^60AxZs5lN$hjfUq?f~VRxwZ?N+*kmfAWGcZ%mD+z#G-V} zv3V0J;syfoQ+kRoPA!jM{Lf+%UCR5TaHG1uQsC9Q$_Fm_mo48*q)e--u*yMi!wTo= zOm-elVmw-6X6&w6V*5r$FT`ks%zi7qh+7uOByyHTigHW(Tp?=xO0lHYCkx-0HpzGi zLqjs(ePM`rY#Bphr=mG#2?w(ogQoB9UqJYA7aLmQs0FusvST^#XNFEB{snZNmzi=X}azZ7#v*Fi1XB|X4_g=YM*u( zHQR2ZhMP8gn2k&x4k8`1#6f|I-9pCqGQ&3Pg_;e~RSyA4s&O&}Hnv#e#e+vu{q{3W zL)Zf^;|q#lCNTu)%iJ9>WLG8xEBJ>N<-j$@et;-tcEpu9OeZ^t^~}biIM$DeDOzEL z3L3z+rG*r#@i4&q%&7;bh!F+%Vqy$wBI=jU$bqIc+c}{9$}DDAsOM8Y3U9fvrIG`p zhk-Z`kl(~sxi4`V)^`w6&1M6E_Zf&3#gGTNnj*fSbTM_{WpgQGF)?Z-W%VN_Ro(Xl zIAVb>Xkgx>!q2=C$7#II6V{uKp$>IPNTg-GWIANqhzlc?A082~m0hcvNcXc?7 z1C#+3JDFb9nQRMHYAH!YasL3=U@6J&2;2?|g}GJ2@G%WR%N~N$vI6O0n_My*IhiV4 zQX4sQIz&)P=baTYQ;CUbgC=Tb5`g74$^mt8C-g-VVnZ`Q@T!+dvTuKQ2H&&Xq^Y)n zDhFH>McQKXLI{q++A5;9X6i5)+Pc^fTD0y2XH`DQfgKCuJU*datPXOX=H_c4w;C;6 zi9FK3bEOFM#e@={GPG{ohH68c2atd3EOf(*d=aJeXtAkdO}3-u%XERW@fi`cs5Mi$ zK=79>994HOraelJgtjm=1ZpjwhFoURt}0P;b5|-aUBbs!kHwlMP!<(^rw2B_OEY@8q3T0w9)Kt*b>vQYlS$h%)#fL!t1VuFi{xho~=H<;zT z%aN0KnT07r+^7!$%vQ_ZkxFRhvmC=rrc&-eE{U%Zq*{fuGTSgx5Gh`w*B?Q0r`$4; zvUyCXd=P$|U{omCcLIV033zvLuyGj2FlZog14XR+fass~bReaJ)V2yl)DrTkFTAlZbH~!(^CuO?KAXa;0G8iJ>1glu{EsJX4w&YsgX%jKCkuX3u3=qMY zQ?NgDICFPg5Sxf?P(ZiLHrT_YcaR%7mwWlK7MN^mD(ldk&#X^a?q*Sf5WSw!GzoiQ zQKLKLm1%(xk&WPjD*5}O={&NIU8-Y47RqP~cYBKYo)ZnH5{)dThBE$@5CP4qfjn4h zJe4w@bDHKEvf}y21C?OhHWQmOD^iP|M78d5P|l@PUZtz7l_-Xu9mAdm(k()Wyf+}V zEx4d6s9IbZ;g)>HR25-)31kywGc@Xm%d>axRMOTLF(S19a!8bLaMA(}1I$6soEZ)a zZ`?Ew88HVkD1%p2^C#iGnDYm zqKUFyAO}%;RKxQdD}B_>w7VEnlv2~E>4goH%rXt_XON1r_JXCB)Ba{=cd9ih!*SXb z&tGs1KbwtOw!u%COD*8~Vk3PY;8~buN8L7Cw`|Be?idX?N`V0lmUgVFg^(q$68U!HYKa1ufIk8h@{J<1te@7T%%j6(dNAWlZu3)$lSV{!oC3qJD6T=HR4WM3T3T^3&z!)s`OxNt>{QyL%&7MtoW>xQ?z%rJvUsZ!tIfj(fwcG@|BQFP4%Y)!$d ziEqc^S_-Mz+B><=5YsuDyhW(H;*Q+ZsBxK4k!hvsSbMk_okimpH1e#=w)F-m7vfN% z(~}CY$Zr!>!to1f<1*5}CgVhA>JKCDDwOZI{9qq5X=kgI`-8^8j}prPvA=S_34Vw$ zQQ1>}OEg@y4KncVC|%b?2oPqj;3j5RE%{8U=;<=riGbm+Xsh1b0w5`axolXvhHf>fby6aqoMT#*5WK`QZRZK{^hvTQdC484hB(q zhW5onuz;cfX4!j;@`DfnD=L#xnfC71WypoaGvt!t;HcC$faoPTG}X;_E1`uPIYnTV ztKtA&c!mThrqZtnpB#mT=((v%HY>nN)X*PfEpWHQ(=n5q9$=C^3w7!UK>G)YiAh@Y zhVWe8p>?YU9NEV`O|Vo}rsKb-IfG!W8r+QB3`p3f5HN0t6BW-B6s8fk_4M36ktwUc zqU2&T?JB8XFKK)wyy#n==8WWSVFg#(SZPxEV`w(P!_2A`>+@NNnX#>@V1wpi%@bk; zgXHQ|TP9g*Fa&bN$qVl4?j0h=KB6Pdsp2EDp({}-`VhX3JB(it&TPad0uG_Mv31l; z?pvuq^)p7Uh`F<+#HvEomS;x;EOU-XEbtjqQ=IEWUd{tA>p8Aq=Pvw2;2cCPDb-FUvD6AbETOwSb12L-I_AHK&`LAS z9+HLTN|K9f>Lq3Q`c&<&5U{?R%r~q>#L+Uq$PawX*fecTBKxpTa{HNs2Pc@72}>Ma zA?Q(=dgn{HY*g4+Qh^8A6@oP!_%gVvR`OP(yd1Go#Nagn8)G(@hZ68SOroPK!PU&? zQJzfIIBKQ{c84U)nu{87H*$E|!6i>nwn1ft)m5`(RMn90R4}Z5CPtTZerDm@DYSz- z8b+ZN<%-4a67`kk8=kmx5U&#`mRqDMIdIj(UBDP%45hq8b*{wACXV6fZ^W(rk@A#X zQd4k#^Uj&hzrcYsEp{q7Y}BBd7FO;$ZaiNR(A}S?n7>vHO=D9c#aIQ@T8i^SG3MZ! zSZeB_;#m3+;Ud ze%19)`H%(Fi&p}!pz&<2CD=LZiGul*TP7>d(?lmO=3%#87(5Pwsp@Dzy8R+LrqaYv zH$Sw8!fzu8GahqZc5YD*zwks~7UEXmPIQzLDOV0_xPGQhG%cLRK|*DhnM}7C zLepm?)rOmsHz?xs3vrv%F*ek}R_kyXDq|MCYFg0fhST(oW_MVcJa~-H#87#PjWNU( zy8$xwlA%jrZedYsKs5-rrHMv1x{N7b ze4)***O^$rDva4UlX=GivCmsQR*E`CXEZ`+aPP+nYyV`iu{@7zJx zO9{PGl5a<5gm(P7jKj+o;@|;+ zGeEs>EA5nPk2hzzW&kVP+d<1wLD_>iD*0lot-fk1m;#0vxUh+1XDxh2X0f*h6yW!U zJ^+#!6RPe|Xe}NW%uXXMAxCY>9dfnUOG z@bX2qvaO_W%FI^fIQD8ZGE<$*tsigj6l`gS=06iEw-DWkmE4JBrMP`KsAh`Uki;~= z=2T7kcE$qCnz+mG#lK+|rk#jUsxYqYm4Qt4@hu6-A}Um9tPDKUomE9sN*u#=UB#lr z%G&))0NP}<+^}DiO|v_hn|RD?3U2b{d_ZO^x+N71U)+GC-OIXF!!1ou&({^XuV3H; zvL4}c8mzI;@d1i1P9_CK+#N{@UGpjfh$v=E6lIEp%N_}L^Te$mwHoMcUS{OT*bFq7co&7IROt;yObpaiZ(fjEoa|3=){*Z za#+wn<~Rb^1%|5FQRlgEORBai3Jc2bCca{PcZkFkiD!I7DCNv(O?=Dgh^zPz`Cz!T)$3{l6RRyMdT4R8y5yF z;%)%`5{o+`l+-G)OnZa9mN!}yMhW!zlD+@K-xGvTF^sGL)0QCla7QPXmPtUrm7 z8aCGu#4&k$oRelHAzU%iV>-E87&`pQ)>5q76`?C}j5VoL!y##{10pHS>Zk_Owh`yR zMs46P7~rZJfSV(n{7oNskzzCFg*u3ut%MH_LJ?nO-Q$=+%WQEd;`WFsDbW5RutPZ( z{pDInCOqZRxNw|!m>WEU)B&)56KR*E)S@oSxdvY23$dCXQ2wA{iV?S>un+zV!F5suMhDqEge ziz|UX6H=bFdH(^2H<`4>3Dx2hLgp26*U+@R`el84Az12F!GBd31zTsB zi<@U$!sjg8^C(tpieb5Q+8s0w{L5!{mIigq-e8JC^#CyU>R=(LgKXv&Jdr9do0Xal z_>5P7w9Xp)37GxVF;p)}uk#wzU+y3P{aW;3T?1)z!8X|H?<=}h0ub5BvxFqz?_78|=! zs5BoEo5*zdgImbB;3!^TyiY?luu2b}0CdkEMW>cH%sJ3{Krf^r$y-cuQB0sLOks<~*4)M-H&$sZ0O_ ztQQ56V&v3JxM5|JzR|UgD-!4$xkO=_(1eSO9hguqLD!gS`CzGaR|>u$)VCQLwjhvf zS@@Ou5hkv)0uiWPWX!r+;#(o};_fu9z02ukV73C@oJ&}8!yUg;p-n_XpAm5jcLpL~ z!X00-5Quq9g7bF{Rg>!FZ>T*8q*W&j`{E#@%u0Z+fSNILd>wj{nfjeIguyvDUga%j-$FG^Z@#cm4otO@-=NsyXJ#|J=JMJ z++quK@B5dgrJT8wKd^K26EQLd{E+(%B4<^sW^Njk6QYLAT!1US=p; zgCuSADlh190vLX{Fp5t)nw^H3m&k_aoubajV=$s!tZM;CuzbO)Xkxp8o@Lp&!xHIr zFOrw4E~dz}JDN^JM^==MYXVu^4y7IL>6Z-cVx|>e#$r^pxXPlGp-g@S@QGk6MmAWc ziMQ%y+%%0EW=*Qh%{-96iGvW^Jn;fcX%(5OtL%j#V(FL6ysD+%&|{u8a5~``rB{|^ z3i?@&c8BI18yrGV2SbU!Q1DA<2p(Crm8F;;btTrRJwJ2O&m>5O zUJUy<^*J93iELGLOJa^ERyxvh?gJJDQ}(!=3bVxYOlhN;LNhp{aeS# z@PIGN;t1PB>BsjB8qoOSsw<*2t*~d3Xm*O}9md0D_baY1OU&I%XDN*G;9-2nHt`(P zY%z+%%Pp!=g)xeftR+WtI59mJ7RxcB^Dtk5brunF@It_K8Vt@5*9>SO*#`V&giOV`kF*%Tr!lRaRU z2Zx`DKsI}X>Y2qc%@5fziqhq|tX!q!xSs^hZc_9zv+tssfm4p`{LSANjrA!OW{v~v&SyJVRBM&l+LvrsCAXbnga^+-erUPEd zmM1i`z!02^~sdaCV_Y7|Twpn`@yk`qHkQj9qZPLSwe&Fq5}aK`V$hp=#X_sB z%3|q;xt6z@Tc}M8Ep-4YrZTW2+*B`dYaB9#KH#`oHaNJMx3w%}I=Nf6^TQwg0tJqA zH946`*g^2j+hA(bS2Kkz`%7L*#q$N6kC-nmEG`IuFnfuGDd>)LoF%MgD$mqx7#&Ok zP}eg&QKzC1S}$-3<>e!dkJjO68v-=}7rfz_@zXFeiNT4n0ml;U+7PTk3oj>MPXP+3 z=1Wt=7RhZ~Hehv)-0zkp;9za);{l^Jlf~+%NnXn3t`ijdJgYhgw@EBCiJo?PJOYmST?*t2HCSdru zZz0q;B8tmIemf3$Er%MSZGQ<$#UsFmSsxIPV!i5R4R<%o9KuZ-tdTC8+$d3OphfmY z`YCx;W)3J_8kv)8RNM-$(8X7>Z)@}*bP9WG`7c-r!rP1nA{{X#aEQRsJD({Yx$y?AjI1Q|TH z35%h5_bjuFOC_~{b>?Y@0|K9ME_ahyLKz~e<-KQS&@6XTg0(F!gGickC57@kB^Jgm zu_!4p*&QLWs^IPY0NqT0*DZcwW@Vs7W4FF0M8UA#_(231HwE6XU)I4(sZc(p)m3mX zXrel6>Ro`E#{PqIXcLwglm)AqnVGHE9;21@j6}E}m>dI6_RIODseC|Vx0r|mJo7S= za)#0~+$+RDQ+&k3o=RZ`!)}k$OX6x7oJ&>aT8bREIT5n%8fsK3!iwR-Glt!EL@TW^ ze8ol!cf=wT!-8n`vkX`QTIqK%R_X;CJ0rbB08q{oaJ-IRgk>B$b1qOb7?vy?Kj4+) z=Rk6^c!C0}(LU2G)y-iRabt;g&cJghyDWE58<*@NQLimU%v+6&QeX;;Yt%Df-sPj| zx}30YyDYU;V#77C)L>8{RWX#bJQ29a@h#S?hYz%}1@Ih9vh7C@cZ9GeK6fTx7c2pf zwm6xiS?QT6st1eKq2Bp|^%G;Ea&J_*rpf}ZGnTDav#L5WUFhndVq9*Z9(U8*` z>lG543XIs5h_?i!QJWn2fEizy&aY6N@+#v%d$GjqrUZ%PH!9%c%&-pE>J~;n0tB(( zSfQoRy+KGSZkJIWMA}tFbjieNA*@Sm>zIx{vodoqH!ryDSHJV7&kpeoEU!F!SDI-YBO;b__zyG zjm@!^7y6dgzNff|F7a&2CDg|zR*l49FBjBV;TKaq7VQq2r7scHpm}D)q%5Fju@msz zZF|>=$rv9Ctl}3uk%FPb?SBN0X4>qE`xvT?_|gh$L(D>K%fuaMFK|@11ZvEaIMVLq z!OY)2A-?7DUr<(vNHgXi_%H-uSJlABg4ylFU|8w5JA=u7Q9it9a+}lRw4&=dF$`-T zDq~iv^p|J}*)x=ZmX$Nf1nCULyNQF`u(Fa;&{R=kUsnQ+TNz~wM&bgs;w~`DwjyC; z?sHAzVq(jgI%ei0_nEUlvJ4A5NrDT39<55E_{^N9$=?#{a;T!RxJohunDKT~@=9mhQesArrL;yB742Br0V0_^iMTYs5iwzw#Up?M9=pkI*8 zRm>;m2vWd)V^FvLE*pTB-t{QMNqtmmK|gXda-3MPHn~;qyuh4=O2*0fi(7fzClL=A znJq$Tiis2%6j+x^Ccr zi_$T;YPG~|X2dGin@l`RibDD&$7y+7IMI%vp{?Na7nU3|33g*~ZEZHLBdQ~&3jY8u zb>$H@ZWUbIuNMv+zr&f4)Mcnhdy9`rV!|*XPA`~+NMIR~zxtv&16XYCI*hA%N-yvn z%%TDa7B7w^qAx=jDsqSuO|tpWkJ<_5PqJ|=%6$Z@fGhGOAskK>E1@j4pK@5xs8tsQ5m()>r8F3-jR=Zov~Q(RBQ~-iItFilA!IsXh9RKL`p33FrvoqG0ZW<-J)0%^rtw0 z*jny4Lvf4A8b!YCfYMqVuyYdNUkaZol?`?!5~q~8YGH0F<2QJZZEbCu37ke>QN&}G z?j=tXj6P@08=nCNkD8#QZhL~>j4Zts^#LH?Jx%zfnU)xblLuzAifJKm(#^@sReG0M zS88LJ<|YlxgZqr5xol&1T(7yk7fn~xB3bWo^dxqK{qnt~fJB;9<(9W^++zaK(3^i8NVC~yWp*#LZ)wyp#` z!iMG)2x80v4c!b8e;q@Pt_g4+ZGK|dl*cqel8dbYD?%r^ zjEx+o1|vnCJBpEyIS^N=TJX|am8zMjvy2lpZ|qCG zXeksPAl3f>kE@idZ2tf;rsK8uhE$^}?21dKgu!Bv$j_5-0{|6{U_j!#fmGYLmfDpV zPmp5KWc8%OU6UF+P^c>xry^7#Dz#n8(SBBg)W~5<)Y@Z=OM{V`B}^&9Gdze!82}2) z5Xx*WAU`JHK(l;GkvlD3hBU8euoc-W25%Lamwf)C##iKqdN1n*%KSufv#W`0?y%|@ zK%GWg%*W6`5yWh2TEOjP)jYGK<#DRwcL}qVMA~HT=8%%&`=uXvfKkR{OHZ_KX5eEw zmuWLW1_#RTvBW&ZTpw{FClI>_nS32Cyh0dwm6p5T66bt`xOOteJoPJ74E!+Ve`KM_ z!ln)RmxbnQ_YZ3(V!S09*p%sSX)o4W;=&*WGrU77@W8ge!ik_l)`X~H+RYf?xFdSj z`7GLv}u=6s5^p+F$gZzThuIuj{%PKQuex+gYH~gfivAxyj#bJ_BG;F z28E3jS2J5zadpDa`Xc(jx&v`|GaEyOR;sA97~Cq9jvgZs&uv*0v?gGzW4WpmM%GC8cd#y>3UT&Zl19z`V01rYq<(0NL`Ihg(w#BL&1qls>*+&@zVOK&e2 zh$jKKr#1?CJV8vJM&(p;VCp`4$3A1GXXZS{6rdH3=56b*Fau3GgBLKhGUoLctheV7 zsR97zJq510sg1R|t&KDyQOjQX^M3#i|w^LTlUnrK>=3G=?Gl{QKsHW}5hz>YR zuo;(;T~vGpG@2B0>KL><4qy&eN^x{lTrM2TyL4QVj_~HJh~MnEho~N9g`vukfP2Pw z2D5Q?OHZ8PHz%02G^>zQZYri6BFyHB<*n2Qi>pQhvowZUuA7vMDYCH?F}^`9h~ZHi z228n>TpU?08u3<1o`M)zNfRSiI^60PDh>YtG2Y}@_YSXnAjr|ya|W$0m>>Yk#N_m{ z7cr3U&S(UgS2Iwpb;ZgYW#PF?cDIU4KoYCoU^p`c&cGD&bJluFP&nY@5mSd`580hU z>0i_5>rV%WhGFFuPZNO0_`EvxDM=upFpxc+WJ6?5!pTQ-rn>Y@CRNdz~*e{upu;ycIoP|TXeK2F<%|%taeuPPl6h?gmqg`fe`8Ow`)2m6?+ePF2KSWksVB=jhBDVJLEd(%F8uXAq1lCDAKmZYSJo zSX}%~4EQUFcmm93qEEDJP4t@AFl8dFrXl+T!26B)SpNVt7+v?c*=2BXnZ>V(e?qS@ z)C;2K5GX((i_TY9QJlD&tT$4Jx}(3QYssYtLC3jP-K#e!q-gO_Y7H8xhAUutmUP;2 zfq*5KBI6Ax+00T3?!JTqrM5RRmge$KrOx=%KWVISG#!|g##Xuum_|@&rA?Z+b>bvo znAb3bym^_Xj12Ae2_Ap$%stH<9tV%BUW1yJqo zWLyr(Yf$StVjn$03viFZ5z1zfl*iiUuNQmFTA-gPY6oKo=gj57nnQ!MxE2}hG8hCG z6MT}W3*~VY1a&GS@{S!h72Z5i70{mkfqc}c7jRk^5VKcOz~IW@qeT4>Oocw)csA9o|qTlW>S^@fAZlOIkH| zEh~ly<~W<;X}>uKP|UV(b! zZh8~+h<16yDNM@i{-~Gi$B0L0ZPGWmQS<5yR?^S-4-wvoBP(j~%QJ789Aa~b z67XecAyHLXDmPSwDcr|Qv=uGD6L@Z=k?f4iUg{&UQjyE%KM);pE*nF)Q$+&T+{s5w zqd7(UqLpdwDplfXKru2ZRvI9>z01=Ri^=L;hFe{O5~pSA7rw7C&{$}AnX#5`w=poS zw42+s9b8{HnVmZ#7;SdR?{H?`V|daVYMO5z3z? zQ3Ne`OS-+jW8^IJ732qph+8phR)jUJseKuK)LoYW%kKnZD9~+D%pFS|LZ^9kYO^~K zyM7&c$!F`Uu9&ZXdTa?YTexK>ASX)TXuR;EEtUgbzLHo|(Dr#F4{BT;Wj{H_7m zN~o)0J*@Ioz#baNTyGmR@RtKoO>LJ8GljfEp2*B?V7?%5R~7ZBh)f#|GU_?_mR=4t zBHI{(!yO(|X{sw`{+5NV3CU1)L2-vH8Jpi)P6#3K+zsYfj>Lr;u7&R6R*99wbIP{4 z*vhi^2HhO@0nD7L2PPP%;g0otxNQq_aLaW@Fu25Z-cxWyn|7{oiZCXLp}^7=1AZkq zvddDcFa}wBJe9Obx#`4eTySgD3kjGxls^!d?3{)%wH%yB+(x3os*AT!%Ph9C8j1mf zgK?Jp9w4k9-NEXZ#^6d2IVC}wtJefopDCJ$N*&R5SMN&s$3Aa zk)*cfuP4OkfHv+D8Z8k?7hVLUv}o%v&gYrb=Xz?hA6Ymgq&Da2ZmJ9a02*j~LL*NT zX+2a-2zO}`o4-F$4VTj$VTRZ~DD1kMuafmYDv>5oc!-<&0xKi{t0YzxGNIx<#HOHS zUzQ7Xe^kMr@;dpoh_l-9kpk zbvebe7u;Lo8?fdY(l<;9&bS63>7P{>hRTIiyH+2}*K0w91POQMWSw9FOha_R6nfpE+N^D3z@-*p>(R4QD=rQnSud6`rP@gCrV*rrK#im9nH66bq5a! z(;Wjxn&J&4(qhOyQGP>kp$>SP&btvHR<~4yT?Rb$a@>6qcl7P_2qm zY=Hcq{&NHZfb>NSCnm0==f5tGiD$52;vsc?;GwR0V|Fa36ClaP4BTI=6(TN|HpQx` zg5tM}letva(ZhNF03Z;>6^Ni%?9I?^m6?TR_vwKo*Ktr#YvKfhMYl4A=DvP{azy3b zS5XL9xGFT4_Ji3vS%*n@2t}J6Ugj+{ejziiu5$+nffT%BP~{!0Wr5DB?U-|;Y#hue zB}|S52}PKpNcoB)4ndlPqM0ss5O2j2mqQfQu&%3N>!T=brEyd3n#UD<0io3jY4Xa-f@BT$cy0xEfK0ePL=JJN+-b@de03vOez z%=T(v+Xv7t4x-rca?G<}*%vY5u=|qq1pDQ}jO_>u3nY093SE4`uGQUh2$H%krAu$8 z69CDXA;H|Rx8|iad`iH*lb9POZV;uoSLp*mmJfeWy-RR9&)0Atl3fL23${q3xbzL! z#Y;^(w?7+L{G!;@sR6?)yNraf^?SD3GD0 zMm)r%4;IZMcmQq;n`W^dM$Y1)r;HX2MCf*-0 z3fr3+o2|QwE}$rPxaJ1KAv}og7)e4|Jmydg)zcc%c$XF|T84ZxvYd9sQNyToiG83& z_#r|=@ZZ+Okx5;%G4f^%r3G71m!NYOdFRdj1)&q}`U}z7SidpYgW5DK$*7OSx!D2U zS-;Rw;EN>Nh%l>$SScLt`w*Om9FRJQ%TTfAEDZ*;Gkx09Ti3+|WM0W#kg=>jrCd^^ zI=PHs6y|b)fhaVw0^=m5;Hh(Ps_JB=FnL@}1Mv$L_97k6_zsSS974F-QH^dbRiIO2pvn@)S=2C`! zX@RV42$jC#K{+D4{{X-i)WZ@onTY75;sUt2pB`lxo(MwMu#L*aNNtq%$oWO_Z3U`N zB|^fK^HawVAuR&f*2&MF0KbJTOoF!e>LL0()%mVXlIO@2t$@WL^M$WB9m;#dxt z+bKsy{{SDjLo4PBXjl$&jNS$1yDKub0<};uTbjIiffJA*i^F9&xslHw;gBr%4X)ic z5|#ud_a-8{BJK*>ZKflqGTd^nA6sSg@fw4|@ldR#FLCL+0|dK6SO^(jm)Dq$>N;jx znMntQ$JKA>EuE&b8Aj7|O2$m~To$IdsA6}@ROk-^Vl9s65XPm>wc8G=V2!s2iC$M` zZx=+VR!uW=Yb0RvYG$D&JHaSRWpTu{o?7B;=r)<0{U|$3{{TTVaYu?B%b(t24=4OH zWx_UZi~-{Gp$m)j;#r|A*Qjm{g)J_sX==M_G*VqojD;P)Mgv}=EVBaF%Hr)128qdD zqomHequk7DID&GEzGq8qR``N-Ajr-zn_@Ou4wy6*>41ArDc{!N`K&vKJ^VslEESB$ zO~vTqBXWn&_&B=7O=jY`gCl+TL{u(wwg9(q9m=(z1o69U#G7ey@n?~uqvsIV=c!Js zoF_8?K09G=SgLdRLX$N+$Efudg=!7xqHV-$zBx52Lvw9}70QeIr!<}7qRm}bx7s3M z9daSmZJN;a42jz^mEMD7MS)mvan8f6tdha4G7Zcn17*~r9k?vayzXg%LMmN5h#uG_ zZWO>gM{RqpqEH0d+LsE+jc^W#rZ?fZO8JDeR}d|ewMQ(bu3vm>i}o7gSlk)IhBpMe z9m8b@E9GJa4Q8qV1y&7IM#xrN+F+*mfOMHeRzaRQf_KK@JMe5~x{9pP#JRXBvwmYL z!hJB^;qU0JJJB{uR!XmlL>xIKGY)1gTrkX4j55e-G+xy}6dyE`K7x}P_Xb4dI{TLg zVOK5pa?D*%H{@g)rz~DA3^R`gJHiuB3Es*CC_nf`V1C+ zgo^wLmI84ND5qqy zJBAw$8(bE}nXJkSN2{5(Er>BLQ232)Oh zJK^c~m-Y_v7$DmdZxRBK!OSX~C1Z2qa0I6*dl6`r&#JjfLo%?3H+=mCWmBK0y0IzB z-lCy6WsK=^;du{G%Efpkfj8#26Chc)5DCq-u#;R?IFE)R*Gv_AekIXUEoFnqa_o)y zAWU%C#Hs);xTvbLY;$uDfyOwNK~s?~UHZHHL<5r;)B$@wB8^>2x7>hSP77m&Q0k` z{KULUE!1{oE6Ql9<5oOOi|te6<(njQ;d<%+qMRH_I?PLX~HLiQBzG=pUqAvjX=Daxry0o-t0Q!1;A36!Z`!Kyz&SR0ILR zS9LC{dnNjajXRdT@!D6DTsIr_kNdi38-1muc_EY%v^_yg5Ku6g zfaxs^)OKe+rFZ<8xq|g$hxaXz!mY8-5Q-M|97=OdjAmC{R2+@U#v$%n$168vD6GTZ zP>RZXR_hY=2K1C}Lhwh_2bJIAU?x{p3c=P*MBq%I*EYcloXl64?7GQ#W>F6Y8i!Nr zqDL1dugn0H-**(J=m`W4%lZ^?cPoP`HXF*b6ktAM!3~8mQy8+iNy-62TIWC$3lUS3 zb4|RqigUoR)VYil)FU3e8dnrOIjFaS9u# zT8uo#`YEqc>{co0XAIKHiyAEC0sxyB31M8lvd>8QaWaG0FqB)& zschKThLOC1xWpJ^QL^#^!t;wtF;J^R$>tb2MsX-8zT)0-T1nK*TEJwJn_?5y3wPAN zl=0WOXH#QK9vOn(Ny%pFRj@f?{X_h~G4T>Bd?2*3g5y?h&8{h##?|{pcUVV6)>(@C z14LY1q~Q$1hu&0jpzP0!mh92#7VuK$9@Qxx+(TyM_D1b*;2%Nnp#KGDh;AMzcS1}9RT?<)+p?NR}!mVau;*wkRi^WRX zX!?cyIk<)WPD5}wx;HaX*%hTNSc3-w<3UfNp<{pGnlhryFFOt+9g4Q)uOZto`bHKO z_Zn>&oXc~0D@^>t2Cp=39XueQ@lfXomwOi^$=NXndAVYusaer3w0ydiqmNBgY6q1p z0dIaKIUS^yl-<-Z8^q zyFZxiy;sXDa^3*uS+{rEUk}7eTAqKz8w?^FIvXJhN!~FP7sIFc`ybzkTB_#e8V&h( zGYPhaHC`)%I$#?qXi5!H-*AQU}TQ-l&!V-j+KD-W|VPBtnz&}(|B=ecg>safTXSJTVH&;jC7;roys z3OTfZFtWK%3HO^62j(I@LAoH2Zil#w4>@31=FA)>MvjTH&K=%m+lV7Mz)a?e&wd%*SyAJ$63x$)?*Mk3xRz;ZmMhxkb)&jeV94A;LHZ&ifxIovnM}!ge7#M zJ*U{%%?%LW3D1BQABb448)fa#_q&Rc>v`13(8E-=b@W|=`;0Lt=W@S+swpHCW0o~{rIbT?g+^|rV7+#&deml`P!g^=ScCuNRq3M(q*i-6!a zQy>8Axj@|W1*+Di(U9`X*PF|Ua6eI5-UEbyt4G3YC$Xf*4V_0ZLZZrp^Esb&twc}_ zGaHco5VFDfz%&roQp3Z=N{EE>7TbY)6Sh8L&$6{7-y_=NAX=r{OZi4@XF>2Ui+Lh6 zIn_##mmKqm8$*Pv4)V*a&Bg(3L3lh|I?QBCW6iKoxXJjBlo8!u=?3gIV>o>26QQ5H z7HjaP5Cbv(01jg>P%GWZHxV=(5M^B~s($3$xxlUe01&i1`H0)dC3befD+{+${{UW8 zwW^9ZwVCD~RV!$sB$2Lbs2tqeh)Wv3^uZ!Qb1qO(Lwk&)EnN{VMj=SOX01}naOD{# zU}4oy0w{y+&rYEM4C5#5$WH11$wrFU%@kC?HEGbn`N@j90SeE|eGy z??z=#b<)qnULl>UGTa7GU4fy8Lc9ng;V^5l*}qZQb@U;v7xBbeP91X#lpC;-TZ7ck zZyAS$Cq%eW6%+x@z+B`yOG3tSa+Ux&i&hLP6j9IyAP-6nm1J63i*yJS0+m#NQtHKDFo|l?!)AK2GxIP2_;3nODO!}{POd0o_M z>D*gZI2MP@rRp{kR4cA#7LL;9FSs~b+LX0$DGNFO*E%5 zfywHn*`m6XkxraL0d;2Ep_mzr3b!@(j+vU2u{<$q?y=@oP#-9izvNG5 z9m`t4EQdnL$plyo3L$Fg(=Ty$UZO3L_GT)_V~>cNf#{0*TXej41&%zC06M9KfOG5| zAher!%5PM6EP}Y!W#)01yN)UVM+{3c1j}lSGC#z@)X00(k4@`Gfa7+$b!^Y_6xo!2`-D+!psal3@t= zYHzuiU67ehyX3{w8v5FnuthOf%IbZQZNy=f5XucLRl?8$7N3YSFVMm=^(~5-i`)xm z?3R8>M_98OoHVFM!1+%klMDkv;&O?T)J!hgiM-~Czj&57mRw=x&cFaWfL4+UjP;No zXp3M}2}VrUFu-gGJxVQ?IrSDcIVFZ7)On1}U5--ju0l&2=GP=gjc_K&11q-zQe^DI zx;HDifWLYrEqp9|!HTLnH3*%C2;AY~;gn$axS2qHwF3O7IlCk{Lg=uVT2#fwt$~Yp zn!-ClCqTTQW0HjJmC`&M4v1s{TR-E;|}CC8x5V z;&7-7!{TlLIMU#Py26@>yx2PugHYZGHr8pVm5$lsaw^(_1$IS)VH32<&9O7B!pJ;7 zi7vGJLQ~EWM(ZPh>I5YynD5Xn%lt+$S7>Tp$X@OLR2}Cccn_~9FKS~O= z>re~2nkDVbY|Dzd!e&!h%EDPVhdYl+CBM211}}DXr0QJ4{$5&InsOl{})kjcqwhpc$nEKz(hI))e^{_il|D! z>*<=@{rS2j^`J2tA3?9MYVCW0@WSGYohBi zgqojHhvB9b%PDu%(%)zS=mQFipzN~Xk9UGnyZAp;14Ggl1E3`qEA8C81p<=j4%r~v zifWOqx9u?nIJk|#7wEGMyObOO%vp@pxcG=G_98)m!b-Y>rB}-ygv)Qy)om=Y`judD zoXWseZqty8h!*Z)Xe$Z0hNk9=s0?-$mUlh@n~JJD7E}a}vw4=yrx=VGT$ITMF&I~9 z+bvrbRI3%cVP9i0ejtY8El#zJrG}_*Cvhu^880kRG7n9gKr@*zM+s~78jFIV`^MwU zwJ^sp?BUBvsSe>_C`4ZabS33tjPwFZsM=*EjgZ}(%MeU%;YsQ6WvvEBlv+ZTu?!;R z$j?d$s+4gg@Cf6XR|p$;l#85?5W0+F#-gYyjfUYhzLCu4pE)C>k9^8UZX?TYMsN)S zsiF_O_Wc^<9%9qvSwfdiIGFc=#b(~JrW8EoU}&8yGmn< z+fXa3Xc{GfK+RRbtNd}WMiA*Zo7w`>CPTpr z@cM$?xT<)LSv1ch+_i35-_Y<*!|8WYlwQbU8Y@PznVV|9rm>{Z5(XVP^phtl$ZhrX!8wYF3D(WdBu?aXrbbY)XymBI;+^}^1 zB6H7-WSI?TYD{SwZi$yZLlC`pN=i^aEPH7ia=gU`SjaR(mq9->4slaMq98Rcyi0Kf zn%(+`YBi%1kg_I-<FbuMZKUhRJlHM5yiKxqQd5;nYNeU{<_Z>T#B?f|aoRRm*4X>a zCt@5*=2PYrE9l?Q*axLc8l^dbmTdE>ybwC(HR?q}dlBTgIf7_Odu66#z^)d{LA1^g zM`_)}#VIk}rCHRuxM-Y2+vWB9OgOyD+x8KgoNwZkVsQ-uLB_KzpAz=c?oghFMLw45MiiAwxCH&C7>}{>)^m1I9Bgq9%(V=&Kv< z5)@80X>SgpznHbg2Ykb%GZ!qK)WKIMuKHPQdEO~Gk!r~X*o#kzlJg&^Z&x#IyJ|h$ zU_G*$IN}5x2C6Em6@ZF|E$uUPMk8se>RjQR4W}OoUWN05tr8n`Eset%A;KDimRyP* zxCBZH;d+8wcww!LMrlzl8H;6aIYQFLU84!65!MOU68IcdM8GZyY>ZYzDa3LZ1#($I z)1ixP^UfeT*M{Suh9{&)TDvHfFKfcH1?HYI@#Xqch917ncalQXYDGjr* z-w1M;Synboq;MAi;iukGGGr~FlzUpLs%6bD)XcPvl7I@Y)Z)l+G%)X>g^u0JsBo99 zLAZwpFEIONpJY}EUxIK}RrZMPRjfqAaPLs<#_?yl#Z*Nrk2odel~|`Sz2U;DhIOi3 z%M7=wfljX6;tIR~W2|n)Sp}*CcnBpka_IniZN)H-GO|%MnJa@L16vN}YBTCp+;}a3 zHJln#0QJ_)IwGaT!~&7XtAM1J1DS($Lq@*S@xjb)Q!^GZ7oZM(0)>k4>ZUY_><@FpR^)65KBt@AE~bE zw9*IUMC~{M#K1pdV;^S}APO$vnu(GZj?KW7JY<>m<5WuNW6T2u_=(!bT8NuX%|esh zO4R+a6YnK%*Qh`~(9mBcVipN_VPT45m^+y@bqkLNTa?R>aRr*aOl==G6fHC{S59Ct z&Ai=13E-_&!C(Xs+^LZz-99CORjyMXJ{7nA@3Un}qf$?Ik#x~Yt2Y?+# zf(>qH;LE_W#f2+6k5CcTquRsC)T@%vR%$yug=%AKN?PGxP>3c9>Jdvm8}k7Yj02)B z=3QliB`dBg_L>kd3S7c`eJ4${!78WFz?eCTHm(T}YZ#X}*nk~sTZ1h{LhBof8ARe2 zVK+7a<}g8@G5Va74%RYxoVW<1m?mJ=?qwkD#J@A58KK;{FdB$%X1al2;TmFFM4>?a zN2fHu1XC8vsyUZwM}(psn@L*Qaonhs3K@JL((;>4M&nV{MA(V?q`n}2w5f_a~VCbMPueR9G-3g zFC(aA=4aHxqLs3}LQ*Kw9+<$uKM0m8 z9GuLqppWz+Ft@i%X#3n@EwzIQpwzKRxop@PV1oPKm}$-f%(eK}E??OYqU}V;cGxCU z16{`{GCuJfe3uZbvh|3kS>;V0Ab?Y30U)4VOd9M2q*OybS+(aY#5PhpVWSFTUe2cI zmdcg*j;MAr$^wzpTy7xhGTp7TwxZj76FgDns2jS}XUemA+%<{XmI4KCB|!&C9;6>uW1IUGS*U$RykXETH6l)O`e6JR@uOb1(z z&E6&Olia8Sjn^<`3$y!<1bKng0h{4^h-A%JXq6JtyRib7T!f|QLB>ztQ^{>5>RK(B z3mIERp(`Jp(iRX+*@4Mb)iZcoQCf@YPJ2fG06WD|gw|IH#l`L)NCS57nNljuSt))` zF^2N{^$BK>dTIp=)yA#3-9Qd$l|Vexvf}Kw)f`)-B@&vlr||~b)a{wnuavl`9bz>1 z(HKl%71uG;3qC;*U0H={$e1XnO}_|`&qIjCF8GE;`Aj<?U}IXe^-)#Y>GqzFJnUW}riM6GxcvSK23#+Nj8OsF)DvSjwy9e$g#;<>p;a7;5E`l@F8zrFVF0 z39)?l2U>pM90X)P>w$LZ@i1?(;D=>$=oEu`mvYv=GP}D%@dW_0NY*FfZYm~TH%$?R zz~QskGk1Gs>@i))rgQTjd6w;&>GK(UOjB^O!ke>+))fN8PEH0^0PPi*cEYvY`IR}5 zwkCL7(OAXZi~xEnxmiwJiMSOk>sCqva}%qYF`qIqdK(NyF8sol%p%cbt;a#zo~2;J z#!)i7DrO<)9A%wKuNdwx90RKiw2CVOi=0BcgQ4n`Oo8IA60NW*B`I^uSMe(rRpvrd z4Q1RwFKKqDsk^wRUQ}vjR6HbO>(w)^LT{@`5rk9R%_--^WsFVKS2w9r&AVJ}+_uM5 zQO$Xps2xsx)TXU-dc~6V~sr!-XBcF7?^V%Kn1Fzp3D(x(8c!# ztzPrESnO89EqX-7>AS*QEH~6ZB8ST5VX*j!LZ<^-j0A(+?Jrj$&v(rm0n_6NUgfCDmIELt4Dl9uA7bOEV9J$JkT(`j~)t+}WM-@P- z6uZsC9wCPn4IVj!q@ky==3z@-8cAJ_H_Snw7wq-P?v#+#SvTD~+T{T}K{KZ0PK%yl@WWqjAIiMIww6l7F@&_=p z8w(P|d^k>SGH9Y8|z5!egEoGQhqSDFQ62 zb0}0;P#w-vj2@-~McuhT8&sEZn}zglTvA5~*teOJ8!n~6R_6CEz;Zmp)+g;dX{Z^F zVr2%iZr~E-#nhE}2UQoKp$5B0NxTu&ME8c&`?JF-(!It0hT0P46dwG{w0gBTRPn>Pq z=R*+G7f zilF9JRNAeFM)Yij+G9~d4(8(~Qo;`6D4e#2Y^&wOBSxSGVzwD85HvMcl%XIv!7xhc ziH>FJzVia^$Zm3rX~b}c9LH|!T}Gi5#pD!+4j~5Hj~I?=p5#!~^#1_tAlz*TMQZA( zFrxcGCKsL&= z(&Cp{pEI4@0zn%?686q2UvnwHytqowFriX)5Lxvcj2gohay-hj9-5A{vm7Odh!X39 zxr=2c;gCgkK}+WoD5f$j3u;^~()c-u#C#mhgl|@H4Wo9cfQ83LnQ7AN3%N*m9m`cK zc;JkWLn_-W)`ir>mMd+fsTsYvmH`6#5j%{o*dUuaE4j=SHn`MFzs4ZjP#Fvua~=jgGSUHgF6GgA$Ur6LYG9}xuuo%L%M}KBW4oeoh|W9~ zpNWS4Mr9M1pI)UT8R**)RHuSnIl#HFe?_?aU&FEQF<6?Ya=huILRPC4|N%K3>& zN{xu}grLV3nq&*75~A0QiH~KxF&NwKx`k1y(@_J6a8keq=f@FFacHWTnY-Mr8X7U3 ziaSbULxsaJdJ;huWi*g0AkgxZ1v)~DHN%-=edPl_6D8z@#6f@1eZr3+ObLj&dWwl` ztGfA=V3qJ?tCp8h>08?chPrQ3#XGLt#AZRuii8ANLNRkVk)$r+Xy0L$QQCGCMX>z6 zOho;N3oEt|RLgBuKnR;pF*aSeOX@Db`?A2EC^ipv?kB8kQ-NG*of|ro2(jjlKniB% zhM5w>hEhSugKl|)sL%mS(Fikb>T{f->MNfihyvSHbqp)yM}`os6&5#;?whD)0_+&R z*p6z46$<_ht5Dtfp)L%TM`IQ`N1)9?#@`3~h9x8%iJ$q@MVI3<`3_K+Qt&N#o88HU zq1+yVF9jYOm7Dr-5XW`eAY1XoH^G%we87nN$Y7r3bZz1~p*7YciZRPlq1miA<~m!W zNx$4agcx@Ub9Z;B2kb>TY3R+yBVztuRwBSHt+|{<6s@M8<-}HU9-!4Uym;cx`h{xn zWk+6<%FtG!6{{KX1Riqod`tyLeM-dI&jFT9p{G!`cn;;z>z{8CyfD{2$}QWvh2eM9 zd@5V0*HB*NooVwsapG}z@dVvQv@sjC)J0%rgE&_k;$G$#fw8n;chk(dO5JBN)&`S^ zdO0*qRZ_lCa#64>wHcj|M>iytN+4a;SnRYYf+_cazryJwi7Tm zn3iZ>48WSr<5NNW#%r`q1FT{dM>NaCMBu^W%;9C5j*vsB3Tr-zB1iQwW66ryfXR=E zfhjxY031YaWf_%=xos_VYq+3ktwv(+hYXbPLZ@Xb$Zs{7u{}A2`TC5-s<|MBi|}ez zG2EJJqX=+7xj@D-4)#V%iKyW5FWhG@ap~j&R#m=Tqjv`YA(4B&A&}ajjRB@kl$e}YaKV)~&iG-jo_b=|S=rnQ1840Dkgg`-%Qcp^ zLmbku@{{rcfFi)-6%%;bTt{=rYNCKhvtb0Gvn^M|7^o`hZ-!CfMpV0)`5q%09lT*x zFmNKV;XrA&Q>f6g9+lZ#M?;WUR^V}jw6|9zMz<_cymu^uki88*BGcVm(RZw*xO|;z|x#Y!Chl>4U1kM+_KqmekxZ>-NabQd^7l$)D8#gHUt|S z^9rk2tfu2}tC;Z=FT>(;^js3{YZzTb5{(sgm<{J0%0-Q8nQ@bgT*tGH!ExG!@Z4}k zIgS42E(*LhYNpL^1_c?zxYrjaCh&&;ZgWMYk%d_?8L} zaJn(`E=<7Y%;s8M7?yGDhm~~B0j0?U+<2A&^lvc5KNApK8fI3j%RIsulf}ziG;TOW zUfq#JS-L$yF>g#l$>i1`yzG}iQ>kb38H{M%IfzvZ@wskV8rmSKL85jyFFee}qA6S@ z+nvq=1>CCcOTuCZPUQeXoe4wn3d}VE>|DP?Suv?xyK;rCHJDij*)t3b^S6kBMn%Tv z*u+_2JXvwh_Rs#(p=040h^6Ium7zU3mIi_2Nr5oXT*%aV5r);IIfUen)`dNn3=i3i zwpSbGWEEO_K{j^sjL{2~bsqF^iZC?x<>dl`z%94c0OJlVlyWj@T^+_T&y^WR1C9}^Q?-D`Ckope;6ct`jw6ApdrXiK<5uAIX| z+qiCREjc3v;icd8F-A8nz@S?=q9)30W10x~K{awGRCjlm{wP^ z69B^fO0t$!GYAViGDA95(Ts@s-YTDP*D|xzj!pW!q~q+QI3TI>+-Bo8ZJgV7M~S!QxZK8`osM zfW9Gz;6TJU61A&M?h#Biy1BBkM6g9TsBd#CaY>WfE?^qM$w(VkAXCx>)#S1-MU{5E z%akZ;v2h`C;)G^YY2+eBP6fn3Y&wGr%Be4N4@ABrame|&U6-k&DOBoYOpV#hGB$JL zsai&z*~buM%7Y3OTobb+p9BlD2Qj6Ad4N>|%gnjT$d#}4FB#KQE3Xk1`xQ60U$nA` zf=u_=#*R)-h=?)winI)7rF&DQKvXp;V$2rJ#XfeZtP9&T7Py9J$>wAIPiSTWMI9^i zFkQh_tf`=wHd^56J=A!vNH$lb-V5ZG;(97%qWqmiGk?Ndrq{xDmsNg?{6=4(tRs@RqltDE<#ANotZF<;|Q)Gch|XhiH?e zI3{Nev8X|NlAD77!(+L`n~@3#r!0r}KWO5%Oyf}-v2#_>>zVTaaKr6}9TO(O(0g|P z%LmWX)T2k*D`LI8Mpcf+2w?e{fydx#0SijW7B!knLIKOe;#LwSnA8g1z?Y7p7A*M8 z)HbdaJkPiVx(eW$h&8|i46I9dt!fHV+iBurB3Bp0L2Qsft6o`+g0d^93W{ZoZU$k| zj$*eXiD}8Dh43e~Ux++Afu|#rl}g9M)TpY|P=f-3W`=l4!PLq$Ic`@bLt|G(aRExX zR7Fqa>IDng6)mh#UT4i^s3oTt{H3t+8{#aUcxI*Li=*72tx>BGeq}Qti=eO&TCe6? z9O^vfE)0%SU~7p@lbm{+Q>;vvY)+QuUYV_~APVm@V7rQ6+>{P3bFL%Fz8%6cI^4Co zsGZ_c*D+&a_?@0pl2f3Vo{?Mg6m~FWv~F27jjB{uZZv8vjqxbSDa3GK6{(20WuX*t z0GK6ij*~QnxTtk&qFbjd+@PR@+;js_1`R~54}C>teV`G!L)}AGsyi7!FoEmyD{%6a zD~EqF>|*r_n#{gxn#STnyMeQb;s#T=*^TN20~B*AW35b^=b4hG`IXVBO9<4n5m_mP z6e&Q$EU9}TEeyqfM03+{Iv09~qMLyH%~8%dg{-cncnVls7UN>7VPd9h+p<=x6&%N& zrBBd@?N&W({mUScm5*Z25Heu3W0{Pj_>7lrWSFY;c84RO7QxhXJ?>Cy{I?fBMKLPT zE-_ya02gj0)6gz)c7m$qD>DY%3}Op|dnZdLBz1yvRh?#3-K)%XA#0kY-Ta`-^r zpti@QN>sMtX2v8+S1*{xLYV^uyBoG0CVUH-hK8TC1@;Rj()AA5nkSUm?2Ev79wJa% z;pd1eI4j@#o|Bt#$mf_hmKmrZvO{7Xd1a!@9o|~g0EDH$85lOQ&{KF_FzZ>sm%?BfIWIplfSDqfaCN|XVHCipnV)z7TR!rJLiZQ(76uX~%lxN3 zT}v_n;-F?S#Q1m#Z8_)EMy)l7yp7^oLM|Gg$y__SQ<;@-4lx5!hWVJ0h(#}S?&47p za6++|Rwaml{{V9ysxx^(U~P9VW|7k{vN3#dI!87@+01`2c1KZ*a0s^x<`|aynQ-Zh zr&pFC_7ym+VH#kbg!vZJr@jIPcDf{6fRbxiAVJ}DkfWQ1G&Zo&e&^|jV~%z zSJm{&05NPyL0^~*i`7M-tP?dw6C|dl6EUy~c!#%~29wGwk{%b;p62teVF{NETN*JD zhP_OIP@;^bD7Vc@H0zk#2H}`qZXmESunM=LR<~!t+wLDlQ0h+vOJi`1Kq3~QV3QS8d zLydBEGqbW#;CFJXw~0zdxtF)IM^b?(I%Oz}{${{l%Zq}dveZg_(V=bLH4sy0=34YP zg+k#P#JoEpLSs0h3)gE8nBCycO1t$7vZ`?k0UjBM=v&0NR5rNDhm1e~eBYujbMl6DkF)mTGVdti^2XJQWO!P1}k^K&N9Q#S~Rm-;_R=YVN4wTR28!PEm%g zDq3(YbvY1haU{?d?ULvj%6Nz?J*_|=E?p(@7j2*~T*n2AZ)sRInNsTTvan?jyDC1> zv;!&1Rw|76om*A?Adz>I3_{mF$^dylhQHL#!xHMwbv5#=0~Hz>)TK(}h@G`rNkswm zoiU>q0HGSMa9!ANDhx~tL>U{VE?opcd@~znJ|Uvcbt}WBSZD)RoG}+q8MiPTlxA?} zC<|jW({@L|$DyKJq`HRXR^~*gTPpARd z{o#hrF)0iQSc+>(Z^U_;G1MQKpN6uP%IptVn#gU7g|;{dN1YmXB5XL*((?%8IJr4rpkN`u2* zU>OCKs4F{6A)LW2Anx<)xRLU8GPRvdod=0ZfWji|)Z^w;3yzC|R2~qP)IX_UPk$2J zl(+5yRy@Y*S=3cJirylsOBQ(yI&LzqSGV3rK7*Y1+LC}m0Jli#+SY$1HCgO3}kKggMpFNLb0>v6HeC< z+Rr<1%2NSz>koaW1@D2;4Tf@3J`x zm!e!pPLNr%Jhv|W*`~;{7wF*;G<2BVv~(uy7AYxPR@N#Kj_oO$_?V4`nt^KDESk2t zo5Q=@!j&b-$1O+mgGUfn;|02v5mr%KO^g(Z=ZGu{ZG8BJIV{luX=oSJU~0JsY(a>X zrf-5bhG}&WEvmfUCSd5N2zV%Ca>c}65O&TS^&L(^wWx^&tJY;r@i%w4BvaM6fIkC8 zuu2qGqfkP_&zW8|_k2pVEvmZ23qea|h`a^d1&n;SM^Qy@xq+rP>RO7PrR+I{OlQo> zX*H-fXznHTY_ovAXFA^H*SAO7Aw}009Nb<|@B@_K2;l`>klg6{Fp3{HEpHAkD-L%d{vf>1VJI`Pf?X!u(-^hPEU}SAvC2^Jm4mX-c$Ls5 zD(V2kCy7hu({V2knB9i`M$)=uxG9{S^*w;Qd5(=gxGVy38oojWElmBT5z%>KoR=`r z7>I{%*AxJ7ErRA}sYrNr0l}gR&l`ni{YouTpHSC0g5GWx0<)qvErHFmr1H9vq76V; zZR%5;`;;zDC6%2u1Db^fH{81}E16rn%rLseOqa{lS0;m13`EZGNBCT8mBUXviW-}X z-OrhY+j>esM$O{dlnYr|rqQqhTMY2-JM@{NF*M$0&J^M1GzGi7buX>{i&2-%1ezhPl^Xt{`Z(CDqnd$??jy;8=3Q+T&2u!#w{sG*i;ioE zI;_^Zjj1iYP6({jz|))aER?(7iNSnsJwZ`*1(mMi>GSrR8eH34%cSM)9YqVowip{O z0Na!jwK}K*zWJ4_H3RvHN-TJo2K46lC~e=~CYqys%O>Xk00d17f0RW_=Dae7lDtE^ z7kt7bX-HG(#MG)_t=!p7^2VzGy}5*L)w3HcwVlgfH2$TtO`3=ZRqg_JWkr+IVhl9^ zBbB$}Wz!w9l{Vyv8_4n88n(3z#Rc(G2nt^67pXB!#8=;#-mG(TO%XOJbpSR^2#j7; zex;VvZYCFHD&FIO(on5#Gd8O7@hDQfY7U!u2+(z&H4?D))Xkc9g}0-a5AjfC zZBZ@R%)9}soFj?HHvZXbNl{8nR;EwDmfw}kcZZTu3dbXCmy9f=%Y-V!YT}upTjDE_ zARN6wEs*9q-8gDrXur(J6f<(dfb5C`$(x+pFh!~_dTdOZb(q4PerJzkQ!cc*F}Q5S z@*ZPbp64Ai&v6$+673TPZWwIC7Xw{N;MvT(A?~bsCcsG?M5Jq#?5l1mti$JVPY5Y8uOYP>*t(CaWr3`GRg*IW^PNrw5U9 z6#-hpwpw8Ynwxpr;P)YPE>E$dS*^Sn#kt*l_hgUFYB6|rGO1IPC* z8((qT#9D1}F^=9Qd1-Ai4u7%x3 zt@Y;>#(9Z5!L<0AiRDH7bsWUobl{1Svzvyl&E5b@Oq$0r@GRb5Wn!-y#88VqF;Rpo zV1Z}Mfxk6b}F3PUz8_MgcmVh9OG?$r5%Rsr?Du(25Q=nkG%vaMrxRxBkj@h^jUM0n<&BCEzU953P#OHGA?VFkCJ-0TxQ^5=)FTjhi z!R6ep7No4U-j;8KwO%G^fnh6@u`QnJ2RZ|^CR-327KS6V^d9DN%&>%ZUuLQ|Sjwxd z!zoH?wGh!N@zem=t6-aX0;|l~droC3t^C43!S{HM%fseTV+Iozy5R&T-fgmqwz$-S z=*>V4gA1s+Cg`Ay(`Yr!unNW3^D(*X#^PyW6yp%hnHgo1BvpEZxaS4bR;u3;ilLGS zFh-3$M)@*xPzJIf>Q@WBnz^NaEJW~3W+k;MD#~IM`K_+tAv@F-qwg3pplo1U6`irL zFAima^{4rOPA>Drt}+hTB+yloyEavI8@0VldPf`^j-kF6D5lZ_Gkzrvkja3Vg;Fa7 znV{5pSeD2$>NTcsETQbg!kf8R?qG5{f`H%m1}T?fAXe`9nt`I=fJVE=d)3bqCCIs$ zYU*D}zdTBYorT0-H1`Xn&Q>%^uUtVJGvk=RICC|pc=I#b^O&hY$@2>rr$nL4re98F zK`0Z6_Yr0$^A%94^#eSmR$?ECb&gvq20?MsQye@UOBkve>ruy9U|X`ARxO3UE1d5rpxcW}v}|siygsOI4|BlYC7VgB=q_ zC3^P95IImCO=9z#w`g5O+uHe#HoC^KE3!BZLR)J-rAE&eGAjNc0Wvd=CcKttlv5UC zv*vtlTK@nM>@R{>?FLra5FvQ;J^}fgSZv}T_#`S^Z^Uq!ffc(jI6T87!qOD08V77z z-A-d3>ch$zT4#VESVL4WQ-=J-s47@3L!ezU$}GvbvN&)&OnNAN=2@|k$jlxB*>@>~ z&8Z{u1DIbyYFOY_>90{}qtMG#_`!q;jK-GF5MbXbiQV`i=*WHG}x zG!DsjE?jzqc3KyMd8S%cnBnG7Xy#ieWk{n)@L<-DX=^r?78s6L+wluU>hj834~76V zHx_C+&Wy@|*D$d^CQ=IltxbnqL?*k;a2aOC(+dC!8I;d$%M})QN3pwZ=W+*$WG)LO zD`f8YmS>xe_B)7vUf^92_?XW)vC67} zK`v@yK&0P(5|M!(!?=TTz%>T%MsX`KcPo$TDiZFoyCTZ4I=>O=z|Sb!mYlejnvXPY z5?cwA{KjPKeLDImC|cxKdyD|3FiM5wg8-|A5{D!@7`sdhF%Vov8{%NZqll}CRCA+& zOGvb5jApzm&{J-BM^`=F5EDo0C9Xo4ePu>VWm)k9Ai#*?ogzo zRRlsf@RYD-3-&UqVQbG4-sP7+j^Gm5)$;W#5@QU4nJYs>;woY}#nJ$7-n|K)Jbb^} zG7~LuE7Txf7HWs{93I&hYMA3YJm0ADgQ#3ab&ep5jF5?Zpv>lYhOUF+$0`FJcqZ5r<0Mf$OnA>&X#H)p~CZ?OcF%ZHT zxl?(m07_8trHoKpqP01*gQo;vD8#X-aePaT082;73ee!8gL~$@L@Xa86bqrsLmg*1 zn3!seXG^9bqHhajWvi!+$3_a4LSeXyTG&y}`+#Z#ynGUfPX|*|4xrm{aB#QOqlMk^GB#oKh0s~NOi;9C&f$zN_={t0h6rJ* z^#!cQ?TDeKlUIyP2zeE_s7pKN=|tBpm8nRIe z4!f31e6a%G9m`Z@#dQlNUdHZYe4IsAv=+>>_?k~o>LYR7+on@(Ih3_x+lX0M;Uj&V zMXGCv0f^~*Oa=>9nVF7;FLPE6%eIQ$z+e}fo)(dyvsrE!n=hsYLkaH+yw0#WuADtsqep z%)wL~o0WV}I7|)4H?~-FCBMX_pz{$=y6#jCHWzz=0cWF`U`4X^2En!tWn*D~bg7jH zvNo8j81TJ=xS2%M(Ek8%f`$*b^(aP+`$k_fq#1gscO}%Zy}+<|3&&E712P?~sIrB;}r#z1oN&Y(?;U^%r|MYb@OHi5G<@kg3cYEiAha)PYtCDkybm`^1$ zxUGA>Th`-(29xF=`IXoQ9rzfIoIOXD9 zg|X#>vrdU{5MBf$W*;cfCkGPh+HT^N)mCL@%wl!Xg>hktMNp$@4pFvQL9AjQ5;98M z$yZrnvzneIoH3T5!2bYbH(Sgs8}2~(9LhV;;}Iw__;ELY4OfS9)($QLj+xgofIdCp z?+c)GMH@_;E>W7pOYHUAPg$cGh{Hc z5*n(pK2a-)N|JlU#>3=rBB;KlSj#hz#_m+&Tw_(;VkvYMtL3R{xb85ddmyE4+7I4i zRRn`>Ba=eVk3IE~XmD zq?Z1tiQLTF7z!rCMax{nh|sQjlu+xL=>WNQ#MxE<0ElKmCCb7eRirnWjVi<7m^?g= zNNhWNIQ9PG5QMRrzU~lZG%%O5%%^E|56_851Eb4`$!JzsCkg{9?o%LHZo1S#5J(@z zOu7fH9nK@tS%rYjaFOz}55cO66CeXpfLLoc%o{YilQwq|Q4Fdx0g<6Qcb zR|VZ{g_(6P@`BW#z<+aRhn3uJVK86w0c@`3`iL}4^}i5oOT7$5lxU)_>M^@s7jq3m zYx63xU;&rRX|4t}Dm8dHNSCeC9dFErTCq2$`IJWo1`wi>77ivDBfkL zFE)f=4+W6SxefIdIlDQr;#?*^s~AL$+uW$Mw;ow#yprpQjte;lk5b&>75x!w!l|<} zVDU;vRKGVe#6LMwZlRpu`-^3wVzDF&a#S9;WEnp)-5JjB%ty>-;WS4)W>xiqtVP(j z&DA+BnB~I*4=QT+5&^d`@g>V_qgrEg00~Rr44FK6;c+71ME3i{)>a0-Ubh zK*$|V1~JE;wKIsYBRN1}8d6#{a;EW%-e;G0XNVC7&avZd@W;$W>)AwA5~!CmCS?An zMHpMu9FlC6w;JCtms(~HP43}p4Yg~Sagf6>FD>G>Q6WOEbuO6rKuiYw!ENKDm;#$O zPadM`Z65I$T(q>vmP-Xn*OXMoL+3I%MMe_f)pr3=>6cT0wt9iip^L;B0z^(9KmN}I+&{u znCK;EM5j2LYo=fzX_|o3EjhmsiS!QT#0`~aXX+F>0u5p^xS`nUGGSnlv}Nfq^#FVk zgY5xZ_Am*APIZx|@hP^YU&$-kXJZXZY-N=0QJ9Uj?xFlBt6ia;GHq?Rg=%Ku7V|Sd zj6KCbyCe2I!Ni@?F%fKVOS5CRxGj_Qej|;3WmGwr3RLA!b5wXgk{BFjSkfDFU){ns zWeJ!4L;yK1Dt;%(tYN9q!pc;&`-Z{1gO0sCErrR}* zPk~HROQz}(pb;dZcw>k4H-nXz#Y79STxeXO(ZzQtDCdxvZzie$)HArX(BiL%g&5I> zGen?A`H2q|C#Y-R5K)rP8upqr^Cr zsjbcNE9XdtY^afTvWJ6b znN7`k4Z%)zUeG&Z=QS>?P_ z67UMgnP{42t&?K0&*}pEaLiemQGcYT*F&r7V1tjz#Z4W9zPwB&=yNMymG=a%bNi16 z0jp|JcX{RW8kFmAL{^5hrx!h{mja!(sg%L3u+ykbN^HO|As2Z8Eu7Hjn*QYlsj7)f zu-<}Vyy-m0MWMQDY;Fn+e9SGacf&AMeE49yeM}f2R9L}x_TV~~W?Ga;UV`BtxCF7~JH=Xkug#pA-%H}Y@^HX-d?1V|PKN6DNU*2z9 z`3|69wsP6=2eYjN{rZ@a*+vu~2Oa{yGhOSmr_@7=Itbl;8>W6>elt%lfy%m&P{Fd=LQ z{YAo4&qN(ersAVW4N)0@710f`GfH{PvMEOQmJYSjuA7Q%9hBl|Vd1mqxFLWZGJBYb zb5)R=o}5PrqFq>E$nMQc0E0k&V->+;zGdHzQ_Iva3!H-+g}y>;9+o)3`avNL+)?e6 zYOO^850i;X7KO%`mZWm!l;N)GQ%on`Vr^zsL*SZ9j%$FJK^81v8|>ZTxOo;ac;=Qg z9Lp$0yez^fM^f$Sis&5KM^IL!QbrA6r<7u$j@H-=v=o4V?8CS~R@!H05uAnTh-rrv zq_DhGCMPK=St9FdwdP_{&MAy~n7?r3OKzo=C^oo2u!~b{q&DGCa+KSvl)b9wu3*+g zRRwnpffV_bW~Oq0bXBS&W?xq4%P%t&=fvhiXzDaq*zO@`W=2HNn{JS4iYPz0T$D>- z^67JWB@6Qh0BPusT>_z?+gcpTiD=c!fi(f*Z$&Xy>ZKLKY)mA`-MSd67;>CLPJ2TR zeL@=)&xnf?WoqXP+fAZjX^PL74yxSjaReyrf7A@5OTCc+$kX?ZEQQ+0YQs@)K4WgW zCUL|Ykb%?8vJh{1nVM-w&LGqf{LygCGnn1I)0oys#Z5!1?B93bRVrgki0 zhOJPz#s(x9MIO0=W_?Zj%x%XT?7_$9_1R`ucA^b z1@|{OCgy`fS(M~;;$9d-S<8SzaUU}$M^P3w_TpgxUf9e7;kI$6YgO`0AS}H2mi#}& z_zdo1y<+m4jD>}X!kC;0wmP_ZE`%4Wsf|v~gc?mG$gyxU@j2D8e#kc&@fV45U~$&4 zkrr(=p5fNhM7*3pW|>;(9&ML+%eh;IT5WT3SEzGtE=7c;nqY?uIE6aZd=wSWRas4gf{1>J<1$}s;0vSP;UBR z#0uHwCR1al%odaYqXQWVnHGbv7m_FdavUEL$MG+ig=)b5OhP)W!*}wE-K#SKynGpf zu-OqoKPKhjOHeYbH+Y14Uc4;8cUZFGFpvA0@l(u1T1-*I8@tp5e6H9uIDc}1b(Zx% zGH{pG<>ImN3K*A!x}t+zTmb=70%u1Oy>`W@1@^BH1x2j2_eHKpkL3*NIW7`%kkNut zO&BS!#C>wA=2$lOFqe?Japo3}N68Q+>^Sij@mvn#6pQApvsJmm-7_^0- z%R_;ULTTZ50+wt*@>6R3OUN`u<{F&_&MG3cEwr{0RiSs{8z7=R#)6$)kyPC4%mvtX z3`t^Q^t<~^vx$b~_>e2jM%qL12<)pV-A-FvW_nLsm%R8x zq^7U>Ml@K;2;XoQQPED42lJWD!LT@#t*qywIz)fQC5feQCq|EPTK2=l!b+8?wV`jp zQv!*f!3+~k5aOq$5L41f*a~W~%nJt!)5H}~sS9_(H3c2RYYc8Q6)RaB%Q38n8-^9I zw)%iS>M)lf!&Kpr&%-h_cCq$$Hip z*-&eU(5&A*CxIwKMrS9w0?Z8|djcnSaBxuf)WU+b1utsFFt#d%T4iKa!Urz|qSppq zW+Jr9Mpzja@m^-+qUiI87v&?Lo*`^61?1{t6NVQ=HuzMyeLz~WJGy|cwc09$2YFpr zT*9bno4cD6YQ$Ec8=v_prE#0&ndZf2Z1t5wgUYa&WHD?B-e%~u1LevYE|D4gbu8}P zFxKEM{{S4rSmqk{Py`EkR(U76@CCnEnTkw!Fqz?(3hSRTy4x+hRJK-|ZC&Twp;~rE zNr^4ky=FWNZ^oB(S5h8@WkU?bxUay7twB#xj}6R(6VpTD6++xUh9Of<7^)V#oZV%b zrZH0rX1y1lP0Nmj2L!l?Jc@0b;b+J}$>nlm(j$F==6ppam=5D>dz&KD4Km>Xu*h5H z1#V~a6jljv;w277ptx~(fGRAp3DusM2QRDrOoBkzekYE3<_27Nlvy0^qXOH)MORF< zD6rlR(7~)>H*sO$f1!x5Q0ey&oRyR?l9s#W!Vo%EK3u^F7mE;G)VT=_lHp#rM(gHe zjkCoI2!{d@Ln|IU`-W64UKlPhI4}_{Sa~>>uOnB?0?BfR_Z2QW5NXjZWhquoP^e@& zFqx@|NzPioQy4AE0S)0833{!t%mDOt4nU&}%1SuJJ+&ANc=o}HiZy=um3pOYdx#RU z%3LNvIirYP$2pogV3F=GC#jjLlA#oZpscTzPfVrp=2L4bA@rRLxN{xz;#eASJegCf z>+RJQm5$@Xn=i&lmhPKPtfR(ooQ@sA5 zU{3xZ5N{@2wR(>}VI^+1LjM34d_t6l2$m$-8GcxSC3FoQr3waZ#4=|aKg0q(x$4)HKGPpK-9{Jr-bfwqM>5d^OHaB@~0}1dkZ5;CPm=EXwr9 zCgMU3tnHRqZJ+8}9VOR9PNiX&a6qP;7T(Bl7*`4huX3r-7ZV0;ybfwEm9b-(NUv%j3N_o99uGkQRTbOjRSUc^ zK#FXO6svrqtt%IagE3o74-}mO5wNvxWov=nq1jy2tpqOhb5-1qY`7IUi@ zL>n7Hh()!BG5ZYl41|Q|k^rq#t=Jqh@&aJWjN{KC)Y8;@{jD7tX&6G_VTs{6o)jlJRb6jSUH zEIHe}e{m&!WNwFsYjMiyu9<0YIX1iSK{XPG*)}irSIh#i)aZviK&qbD0b~`q0j-)3 zPzk|dS|PRP1GdE(cj=PB-I-HHnIE%P1xD9E8O)RkPX; zQ>CFPaF@{WGA-U4fOd>oF*3w0UlQy+v@rz;IRXtZuv9lg)U`8bQsy?-4ERJSbOy1A z!WY5jXr}c5TD`|e`Cta+Zujv&yp^QkA8qnL2&fnCYC6rcQE6fPquR<3^)BqX)qRl~ zKjz$MuEPALJ7G(_EG!u)VPK z?z5SH6KMD$9wN?VDca^@_M}Wr*PDR3MP^3R;u5=HcY2MoqS{;hL}KSTej`g|%2(nI z`lf1i)%9HlhWoivSqzOVm0}W&kd;lC8=$6I3gp^^2H#KHob z$53)+1zoTrpc$%5mLm>>$4;NkN8ptUfzz*(A5VDI<>V>qIR5$w}g zURb2qqUD8yU^({zgdFE=aMK*hn*iN}?#h%OYlODewR(%H2f$vc6uvdwxV4vyF^PSO zSPo)ixTE<_ZT1WS7ZqLp;Tj*2n4+of1!oN2V%v;z>&$D5F6z?krsf!NE5JDj92K6= z5mvko6%@#z;IS9Y7bHzsYnYc5Ks&_Rdmh+pa`5yfkQ?VG7?tI-;}bTvkLISM(h|TL z_$DzL;1s)Y6vo_GYNJNFS@96HDStSIOPJpKGQRd2qqxC+ifdBYTThkCHudAaCorl3y8dNRds6(&>$DKk164zUYijXzdY*F1 zd`g&DyEPNSuf%PNDe(hT!Lh_KtO@sk?B2D+rA%_dU?mmR#S)A~xDhDMux3YMBkh<+ zfs$qwUp`{pn(VUkEzXIJ`kcU+5bg2}R&U%C&`R=SsLgDbLsB`h(b+cruvBIpjD^d5wS%Ox+r(u} z9Me*^7;NLC(OA?BpdL_{$yP2Dt6GQo_X8%_{{VCn0mk+V+4-8r1DbgzO-i$v^$ZOR z^u&XYRvzW;cQxC5o-TIl&~vz5Zk95roxx8Bxmt^(FhNx#g%Qei(xc+)857hl=684T zHQ{R+N??VMl{qMIGv_FAiFDDnjG`%Wp{0$D2bx&SxxNWMHs`0SXC>SO=L@X%$ z5cM!iK?!X+JYZw!**w8u5zLRW1EZFpXYzR;QNR`%_Ce(>4CZZtL8vm>!5BRIW6q>4840dS>$ zW8G^ZbqrD~Ufv-}!-p%2z-Z9azVb__<|D&O<(d&MC+oyvoR}4f$;fX`3599fOiaY! zOsasOAA$rkp-Np9C^xxArFaYf08s=%ULhkFS(#c;Iu|fBc3ilaaoY(@$#d`2UjetG zEpDlvRu1?&H|{kmH&-LMf>ez2b9cuo-Drx;E?SO7bnZz>MJiM>5cb}699n|~n%qK# zXY7|vxJvQ3lS7YCu1k+~)K%`?x9SN5D%xz(#V`kP6_36XUvcGL1_Y?6y??oKHx$)d z7Nnp9ZOn%Qii>)oqd1xMUi4+GRQbQs6d~Qa+$E)NdSMM#t(X^31GthsvU+^VXsWv! zAya`_@zL;09WiOSNKD(Ty%zDj7;tC9 zXx22MvMl z3)jj4b%q_LV$3Z~;yx!9y=609Enp4Gr)u;=r;&U;N0cSetV#hvVO9B;M&NOXmeGoz zs3&d%EJADu%|1|y)Z<-kK4x4@Y+;0Q_H;{HfapKD zRW3#IFk;P@Y@)!(>cjzr1NKTIVb6841ufY>+)fJF8oj8(gS~Ss!J{=jVrTtyKGOV- zR{%%G7Ul<^a1z?+n^9Q#MNs0?bjK{XwyXkGEvA><^90{hg7XI5Pi;c5rWz}z<*RE) zM&q_Lvm;I)%^C-L(M~AHUoUL|-ZElKAm zLDr_GFXD2?q=4O!kTD4lENaCZT_(&*|G-YuaoUDvzR z!2*~|tC`B?6G1QzC0Zo|M%og4_hi0vEX7tgcvPxV@Q{~STVG5;mx9fnjK{F})EOae z%Ym$p4WB(rg&nnyJH=n#199Nj@?N)$Z>lGlRk~)_qj}#jt_Q5bn{NQlEv62k)pQ}}k8mIbTq5Ol#8jbl)LI}|+Yk-Z3$pGHG}DWL&ggiTx%pxzY_XYTV&D`- zRlLhvVwGkTS61fV^$)aIzERd_eaCS*5%eXi^}OGhD=bFU)9Nk2GAimQ5x&eroZLvb zhf%dp5Tv!OA+akBUaxRNnGWCXHwGAc%qxEntS7x+6U@fj1BKZN$y*$vJ;-xzTIp)u zc_j&KZ0-)(^bztys*?H#4y)AL~u7wcRWK&^)9KaCVapv$>#f)r&P{vH9$^0f7cs1tr=B| zHs8u572i%7QD`=vV~`^Ayh?$br!u`u-)o_A!J~@n9%_6k@ia&+RQ^H9mkv5yE6l;l z=?1Dq0b+v0M2%CFyIUZklw3O^y#IH#63q3Y)TlO(xF%lD$9-y(6Pf7 zJzSPVMfB5_;KP`!0{tqiGs!BUwp`phd1AJ8SGuC8J9?olZjEARYE&Ex0xH7$t;z#Q zU60HHjO(l9OWi2(A}S6D55s(V76VZYmupb@K~J;@c6LiNwh$s!#mf z8relAi<^}VSm62~j~gzRFT|*&$PB?#rVDKzq77=gal|fyiIlkh!*;PusyxeRNY>OU zTK-~(X0a&EZ+AZ^vuR8@y~l*33UDQbJRTnTg*nw-lz(uSoEZ|9LoRWOnm$N!<{XKJ z!s8EVt9m+^4x!oWh$qb+(wegbbLJEck3-Bj7i=6USkj8>?c?GbYcqrqE>7bL&c5L% zZtL$9%B!=fh+FJH>rN%s<*@h!<`Vi;5UK;8fte}_-T0Lu?hJ1J8-bb0v&6m&?JXA9 zq7O>_P8YR?c!BB(gzh0O93Qyq8hC&$X>~5!ZFmrN8Vf6Mg=zl)t|3&AvyP0YxC$JV z)D{HoAp-pK#IV>3R5SuLcXHNfyzIJz2+L!25p{Qh`IXk(PF@&Gf;R9806qM<7~`juoioOAOl#Re;v)B$lx%@({#LN90lgN@wH zth#wcIr&8N46OblE?78bSWq^wh|Nla9t1tyE@qi7F06T0yi1jG+m=CP;iHI#l^Gwn z1g6|eGr6}!z2td*Ws6kZ^#DdsrEU@LL)17WLU-nr29I1Q{v~eWeo!ieZ0zb^>FDtd zb}%2AfCgZ@seKsI&}JnsdNBaefVbKt6)tGF+ens`&&;;Q&POwSbtuN0&5cUxpmX?$ z1xrZn+u~8UV)38BJsW1d&DdEF3sQNL3pn8Wu-!sq zeEExVW}}oymDqnm6^I>4e(&1c1GdoNk7}*~E>~BrVx@6c%@v@0JB3$Cmwf*K*_T-j z;|P|AnDy#hC>@H_Q~T?LUK0)nfU|J1c3G_@hyVWJHMFjFj5*L))K+rQPQ<}^2T`+ z8g~|T1^)nPY>xrdV3|3mBp|j{=~|UE##yj>@expCw6A{UMFNikDT-7~n3)V#E7yoE zfp?RSFmQ;ML)5AjyN8yPad9qJNA&>e)w?GFyKxA4nNQRc;m|CRb=<)oSmt9X`M5U6 z&Jv!UU?IctDCQj|B4~&y7Hr}rM$r|nJ`1^dX84(~JPprH@Enbhxs4EEg;!w;q95L2r-%>0 zCu6vYoT_DE)J}q465S0~LKO+~b%XuJB@NZ;yO{zuU)9DAEj@_rGfR!8iGurkk1d=H zS^YvgtCzzaOjAfI+JCuW2(5It5al4>M~O$CwsgkA6lK}j8USu~KQWiObf3IMx^{qx zEE~-^C3TsO4`ci$Ek>{)>;sGD5hCA!m{6v8xcu55)c7L4Pf$Ot{V_Te&}o59o^V_U z*f}lYXGSzILQ9vr%yC)~Km((MO zrKZ!kE(S};e^ZkWl=nBWA!hO1W+R>A5>#6#3_=;^Y&1d-0)5h!ROG<(GXyRF0C0KZ zjiby6?J~nmYHC?3_TtSEjGjM&h zd58Ln(uEM;vO8ODQ-y}BH!omO@N4CFX63R_*uoS1YA2Zhw#@_Kij~6Kyr)o%MxZ);yO$rd zB4NoI?iAcgnW;rsm)RDWXO76M;OmKZI7el>T++IMa#H1l8x+UHr2tHM9_8DL$eaD(CrSag4?9fR4G&ap|@Obf>Qv%qc3+!np1Y9gky z1jad=i;XT;5Zywi8CYG{k8m#RWo{-NTUXR^5?)ZiSOxlZ5U_(c7U~G7r$q0_dE9FB zveEwlaSYH)M|7Yr&LvZ@?f1+J0_(?_TNSpW#0@8DuA*Kxdx$DPqnd<~OIMKp0CK>= zOkz-IE-n86w=G2I;5@`4dEci^ux$vCADDe(WcO4!kM-uyTBXKSPhp`7LJ770j6bx6= z1fxYu^eZ9oxI(SXtRvM&XA+AKG&3j=(DHRI&|yO5CB8XuchLT!)C`&5P;K4PTDf3b ziA4?u9Af1KLNfK=;$tq&4PP}62sJf`P;O5D0QZ@`%jWfPQRe)bnZl@iC0m0&rd#H+ zH<()CNE<4uIhoZX{$q5Dan<4@#%+u9aa}W&5qb!XloZkOj(pm8NEQH^Rj;{Ip<0H0 zpf~O&73v@Z$%6X%ifcJ>6k0=8UvIQ3?%S+p9COoQ8AN;<{{Y#Ha^96R!z-p{qK9iX zjJb{SjXtBXs90n>#K?<_%l@baE(M>NYvK&HTEt-^sT3W@CG0CcA~xO^(7{h|nzs>1 z4tGqx;%=F>a1xiC6nTh?QT~)3%F70^)HV{E+x)Qc+6H5oHq9N zDhhj9;t5@r3@D0i8KzaeS8M<*2U+=!LII|+4T8e6e&U-oUx>nnxr(-^B31*$POzf`H_Di*^YI79tFc(oquKZ`1A#fW8BEzXc%HS?8!nNI<%<%^xF6uh9 zf19X|M9P}Eu?_AbXfdE;2Ge}-097|-1XcD##2X7(9iW(NUmhhvl_{{-M8~jy7K4YV$h*POdO~OU!tbwgW;T9Y_g4F13gy7+JE+B9m;euM%1=a7| zu)na7>S0+je{&qn1ytZst>tG8i>E#&3S)i9yi{7ue5@WNTG^qfzd^Qm>5m4osaVvw zhBaD*>7zY^%mBa-W9A}_nR|VqoSmCo`CvCEeYuu^hbsKQqABTbx`_k@U2T=LToz*J zWNo8UV%tp_=3-y#C300ybn`44n%x;Za9-mn3YAGjfIGPC3vKGVme`4-xYaJg-eJ2d zkV%V_b4L+SjsoMF<8G_)vn&Ggd@kcrl=0!zJr!+Qg@leVxU8Z~vi|_&3gmMU9FOil+GMSt(jdN#_Vf9 zuz|}4`bO#0Ur9>XY#?p1mC$$agois zreU%sLoVgfD3oUmKokp;kIb>Cj1y!@r{M!dP`$i!GAmV#5HLHlSaRHU$~)crms7^0 zuZW6?dVr;k73DdBT612ks)Mm(roJFER|!`dXc>Pf01zAB{fM`kTKGO@aa^(HjX=1= zQ;$(Qr9G?EqIR_~E16}`swLkSA6WrAhoDpS_)3|{y z(iZr}hE{4*f9)?XV9v+c$tgDrVl_+!GAW_{BbWzEGX*p+Ss~=R7WhRAj>}$Pq`{nY z#+$LNqx=+d5iNI^waQbp8deTg^(qo^#&DHQIxU-yKrNg_MK)Y~M^t+ns3f(d5OC8W z;1C0&4xC>^wo!|iM9>2Zx47V=dFk+#98wR&S$FRL05G8M%fTtO;n{HzP(LDGGfL;& zF8=^+?Wh@Ha*iWNCKuN%9P4NHqsB$!G40itv7ZnDyj&?I9e0SD;Hc^fLO7#|N^Zry zG0tl*J@pYlG@+}Na7=jMOUUf2EOC{mOjhAsfXm9dsY!5isb~xa1f8wzcYW3K!(X$*U8@O9g1Hold$9nmkQ`4^_-m+XVC_yWuHHoLgXZ3$RxnqT99F zGT0%kJMlMYm(pV%j5?$B0m7!-xtkQ23X+6(OURD%HsJi0^5=ugn6~&>4AL zW8T6u`SUPyoMj`aiJ^GpfV)~y9Y6?$-g%cIzDtzC9o6IYEjzBJgHjN{QL2R9hRN z5gDGMJg0$<1bj0a*{7Lg8sLsf^EP!d=kAqTA9JfRBlwhXwJycvgTPip%)}JD_b;yo z7;Fj(XQ;lyYrB=8w}J9ZD5P*Q!^%11$wp?I(S+QOm4V=OnQX;43+~2D5DrOrE}^Wa zyO}W*GdY+^H9 zLIWhRR|PJddz>nyANJ)S$EbRg#8Ft|5U8h*HOv65nz=~tAl?pN5aP;P?wM=|!F*Q! zW3V-2ZW5byvyDIYCVts(nSQ+o{&g_Zjam-lmvF1eEOWWGCKD1I-xB%2n=!eHHRcwm zCmF1fFF9ubM}Hv2_>NI#*KobNfbJA03XHT>Jdv?eojgkclY^;im_FYSc)UGPy|R8HEO@mG3{uCTlb!mP?+)xJP9Y zvbg^MG~xhqUB76Ng0}Y*J2+NJYheWt7<#fo%n^nM8C9cfOID!Tw_W*|A==(yTq;2-Z@zLc2@4zhCBbOJ*;OrNvouOJ zo7;`dxiJ;1 zZdvxOTf{k6OWZ70$5|h~<<_I3#L8CInVT}1RzA~=XDR;Vx~O0b*O+s94fXCQTb>e; zu|>SOjZoXWXZ%b}maY6vxL5>W?mPbg(op3;)}fEcGZ6Te2*ItvUzjsCTPO`@xq<*# zFL42#FfK2-t$uD_Fe;Ql<^wT{CqMd@3d)Ck`-PYYyzv1N6tfrZQ=L-ntj#Tk`pn1}sAerpReZM* zTmUar8i#Tg%`b@RMQw5&%;09DW%U**ZU>oE2Fu|RFa<$-^98IIb@-PD6?Egd=Y}xC z#6Z~=z;Z17qVl0K46Ht%5G*s>Qi#PI>u@&!-4ho?uQH6my1S@-AW>*#$~6W3N_RS1 z%KoBLih#Hp`$1?^kaPV^L1A{o8rs*mwF1|gh-`4HcWH3ETK@nM6N5WIE8t1owcXx1 zmeV?=jKRXRHN&?3P!hrE&$&=lSOCa6mfgi`iNM;~ z>Nb!~&68jzeF$Q&8?>>p9cB53tAbghm=Fhwpk*}21Pr_Ae9nq(4NP9(I&*O+rT7w} zql=6{WkI0*OW7`U^58%2rcn+acQ3XKZHdtmmNDG-=ST8I+u54prl_M{gZ)g{D_Q!K zA!b=xQYqEb)F=)@*B1nu#Pos_it(Y;WgN!xx|Wh*aG~C+<5jFz<_j$4-XqDND)2*j z<+qmN+SJycs8+PBW0~gk8T&)P4`u%Vv1{2&rz)FOt3U;pp=i|^w!C|SpL0w?xKm=5 zG|^VN9wyXGzieh+luCRf74_Ah_DgJK>l(zhRMPU0E-0dOBhAW-*Te?`py9fDW0VJY zH7`P|gSl&>`86%IuyNZQlc=kOm4;$izrk@U*xJ~?w8Icu$4ZOX(bYukvzG7?3=wIz zw*`6_*_Z~c)#~Lzp~=(cV3bM zMFq6TtAjYNQFWnVO8sGWuZdFA$7~btsTq1xT$w>u%(w9wz@eN4N(~+P=J|$VVxt z%i>=E3RZvWhKd%yl3i?YP}E_Ch3u4BO<>XuLY2C4san`++XVsB!*HP@Oy18GE*an~ z(JC&juJtUGQ=a&P2EGdOE>>&^#9{R?ny}=XgLB>0~58@~S?Rg+p4EZk*p7%Mr zmdbZZ@f&5cgVfL9x%ii5W?u8EE5L^ zX%NatHt>lZ46mQ=V2-*dCopk2B^3-axNRYh=p{FB0dns$^=e*s3wnv^%qgDOctI&7 zDMK(;mTez5FmT~pKGPsGUYT&eGYw#RAnJ@BZ>Z3sy!kyw$^~V)Kn|*8hOCLi(qJmh zc!15hWwme;HpaQ;ETmP^X2|ZkjI;8LkheF87*hpuJb8rD2O!maKu@cWUo7+Qf|%K? zsN+)WHCZagSb!a$%*gr2m(*6)BDswBb@)WLkO4_uy5?OG^9+2-+U03@Cj@OAGW%0Q z`9UKVFM?8$?ZW(iB~<_`qtD(S6fii62Nc!TWte`SJwS^KPHPF?=<)Y1dYv348roed z5b?~X1iNs>!7PQt>xeyh%+1zevD*k&itAK->QsnU6g)MGLR5vSQbFxF}<%Z!CK^$TxO zwkzkTmTboC2Qg^5h7`l&%qq?^h7*$P9($L#hF{ET9I;Zb6gK)G2r!3YCp{0$vN64c zD3ir@LRWi88__R1&th&Ff!sWdOUXWW1t@Eu!5g8Hki^DLUTQXut7idTSPMn^ne_oh zkKDnDG+r1ghBCyV9!BZ`V9xuTaD&AWzre=U9;P-3C{dvLeS}88F!eF>X|~4#8si> zPMIQr#1bL*f2}z59T)O7&ew z3-eWuCSv@O1GqV@M|j9>(m5%X8Z=#%Uuo@l%*d=4`-IAE!(uVG6uVToMWB|#oUM}A z3(PpKNGr_I)65nLww}SvBA^f2#28Y%5IQX|cP(!#T={~X=@a)~XeuX<KVjV#Ky43t)ZGBtU{_e z24JnS;aiu6z+XhMg6YYg_bG4aGPC7o2$`kX&l=nNC}a;vsLjt-&EGwB2zSy9(57 zV(lKhF$s_Rh(t9(!mOwPPQ$i;62aIg;;Lf(akR|nQiMzd$g8O5$5so(bxvX?Zd6d6 zUZqOK;q!5A$h}S0R4ffC?xm5`LN3W?`WDy23h*l1)DkBAtB&H!QpPE*0hguQ)IbK> zdBV$yi1td_lNTH#M|EX}n2<<}XAZ2VL-1%?bC%nS!Q zkB!U5Q}U$a?C*65#|-SmUR%a5YAymqO4q zOh6rg-S+?mD}bq4gaNoYuoH+oX^zz(1IkbQusSWx$B=k{F;+CV%gG=snOG)5TZ&r{ z)d83dF;f`JCotT5geZrKn2QdSg1{ZReq}4eyk=0WQn2O#H$9|plkA=ejm^7eP|?|$ zVFay|87>=C5XQq75T+QU;U+`5s_0JmzZtYr1YUq z<@N3b6b$0# z6NNzB8-i|YWqFpBEnAnjNCQxbZpp*L?hZjv-%mFWGH`AOYKeOe$cKsK@QS2CFlzSx zBJyMfE18W96HbMpi4Uk#)mCrTRVpKxoW#lDDD%w0XH!(#6 z9^p`OG7{)RW^pN*=a4Alv;%W(C<W@?A~%VO3O znQ+`tmJN-|SeG+m>%sYgqSpTa=BeAU)nD^) z$0BFM#^&41Qndw|+{~UEhY(6*V7p{MX(Q@@Cg1K~yIAHrY{^6q)u@II5Sv;ytxTX-HXd zXWCSWz-%>2^eVp)$|;@1eu7(>ofc^6WE+iJ9Mnn$Js={`;n>94MyZ;)PN14<>Ecih znRjt%gJQii8-NpGJCsO(;v@x1!53j`a_sLJ-eOtH179-UagNZ$wo47{%%!IBZ^TXu zLYit5vpNf^fD1BLFcxy@YXss8}92usG#%iK#VOI#7?3%?1=`|^L@WpCnG z{{VzzyK3GJ;=J0arN8XUQ;-3(68y5F@!~hlLbhH|H&NrX#x*D^l4DYvYkG)K)Y{cl zTUi(*RZ@wa`lG#ds<-=vx_4dHCp~zxFJ}RI>N+%A?E!d7`4y61%ziP�MTlcK-lU zvW6h41s|&WN7M|Gam~NPrZ8*%qb=sc8~KSdF-ms}eafq<#CL8b0KmMe5ZWcJ)?EvL zKytHn>YxK8R-P_B$-DiCyU^1YkM3eEy*#igYu;8oRNrQie}GnSOkzw9r2sV8)pq%p z`C7L8?ppHrf!qS0EPSAY$}V2A&Del5HgRMyMGIv$srL%t8FES`6bCco?-h=1j(sxW zM}bvk@!Vx@1i@rWvPxAJ4m*aSb!NDY?p0cea~5s?0A^t_FFQrGsx3n#JjQ0oh!#6<&uG z{^)^hfRRg>sB2wpvYB;+I@;My4Fx&QLrx!$?mefz+}vv0jk>v}ie!zLOyyW^jY{EN-8<$Q zar*{hfVO~}iL}gEAZQJ*8I*mkivEny!&c0^-lIC~k;sd4LP4i;QtyoLMck zh37!gE&;(Sq*?)L7RO@m+#}B<2yxf83P)xgFw_ybg(18of1);rs$Q!G{lbXfDsU2t z)v(-rT3OoP^$SMc4!y=)gizlw3ANAK9r}TFpms|qH(0n{lll_%Y`KP!oje#+pTa-6 zY9#|wjH318HDv1U;{Ylnp4h4nUVRwRAi=4QQ0SE?XyyrkvQ~SR3u6BO(HxtR7&UD= z$T^2mTn3ZoX7IGq-UE{9g=@qW#JU_4*oj$?W!wc^YV7C47z@kJ7w&BATF+fVVU|kd z^AO)jTJEp;mmJSARMTRf5DaU}Ey2KnSmvj)yTsE(hD)rljD*479Oh%id5B{zrpIu` zmfgyWli@ZCZsh6}NUO`4TWhG~6G?L|VuiRj#MptkY%xXiF?0?Z`HR*Gcg6YYGle|- zAao|pmgJ^fsi?Pw!t^y_zSB6`F4W8BV~b`A)m~r-4hy1InMLz*N100e-q z&C(^w`*RPY#ITlOVO~L^Fco?%Oz{&+N*MenX}v^BAl zk3vK|uc;yBz)E^Vx}8)L2wD-66@Sr^dUS; z!kRQh#n~OpF)4!i=W!z8vh7l}r_M|}Ddit*LrY^Y!Dz-;_Lp*Jm#73R0@OYEn+O%y z(HVCOCJa1|9pkghrNB#}Og>A@O7JKKmWAWY{M7+9K=ph@ z@@yL0<{7I7*Hh7O!3*CJanz{ZA^1d5$fOK>Oml?=p;2795ostor++ggkCL+=5ET}? zN;u#y@fK{DFSJWowUhWo76O=o-fZ?W0$rtA5g60{nUd22@Uu42VHeHc3&5E`F0UcA zo+1;uV#1eRShf!i+^`o5FW`v=r@Uey6^;J@>?q!g%B>WwlyAW=)SE1F#IKLZB_?aW zS-3_{pj6XgTdxq_%deS2su5j?aO6~H?=yn-9TLp}Z>)7OD)i-U*SUf7aLp7n{{V+l zhgh-6-XdS58vg)@6gF$>U2^wPn@L$=MO$iFh4%p#T`Ll`1Rh>$4qJBQ>~6Qocn zM*Bvim%|ityFv7Cgjgl*1JLc`3z&BT9T&Mu%s=W&t0YbcLy?x7BS{Y>N`K6zMj)4u zw4;RkOz#J}nJ64;qS;@GK>IEsiaVu=Waqh>Bz6yDW+it|T4Ij)HjlVPI09YynO%l` zOzF23h9|KOrcpUq@dFZS&TR`Yhp*hZ(+phK!kflPPh<_hc-ySv4rd|xA3=~k9o#O;csaaCDBea2e>O>r1%`Zh~&WuCk| z$0cWD@|1A4?f(EOSXeIChM{ej=p{~!@AxWV_WWKq4OSc*bVl|kYK?`UIz7r-#G6H; zUs&&!BZ&sA=491;z4sc#U4XTfNddGO`AKqC2Qy6)v;O5^!zpORP4hNdH}M*`7V~O0 z^!MA;eTjKnxw2wutY3ld8Xpy{{3V90*l;DQT*Ou)_#`M>NQ9+=?kf0{#S3{7`76i6 z_<+*SvVE3~r^NGOK~I8d7%UEIHUKHN5#m-XZ!Rh&btmkUHB-KwL}NoL?ooWeDkujg z1v@*93?3YWKU50%6B7pmsY~Nauqt81HP@}GQ5}0LS-4U!D+fO1zE3f9Nw7)*UZ4yG z7M#HuG@{-1%B^v)FPNEP((~>VR!Yr&_<%K0VVaH2G#T6%E;ZXzIs_4B-!m$h+ko}v zEx_8{#Dd#O^DoVe^Kh$b%&4fW?+dLMV0<9!K5ht6gIA@TDmsGmID`nb&rCA$XFHC9 z@)26n4o>CTo&zvw)Qfxf1|}>pt^#jBG(93=bCX%9oSjChH8?AM+b)h2W#$}lUMeFO zk@E-2tZj;8V7HvHRLimnT*@I`^r^uKJWJ9U!-u>|tPNvvmw;&(?7`6>c^On^9>?%-q(d*lG`+1JN&t2nD=kB*pqq~a6^4!t#Tt2YQqa|1hS;QvHF-uf8~|dT z)7qgp@d6t)BqUuIEPD4c{{WGTE=&!gvGO&EWDmSSrj4X_a@|V-RN=$-hZ~|^W-L;Y zm%rBFA%YyC5tH(``=)+*mz;gmJk%Id-_l~uRH6Ol9bz|ie|h9zbpWlere@!67>s0Z z#HUfD-W3CmT}v?3vrkd6xG#(rY*aDgCDgQ}Oii%^cn&GNiy|OSALDT+njd5`v==Rc$h6X z10{~}dTP8y6=z@RD{9;JCz$vH$y^WymsLxA(Bj`$51%sB0;BF9iFgoX^;I;|bHK$d zRl?%A_?rM0&hMD*CnLK$m>HwQT{JDcvgr>?wf-exED~ehcv@Pm9w7H9tL_Cm1%kfD zRpO7tq^?oiz;Is=QIue8KjvXuTj12>D7lO4WWI<91ku5CuvYRc=)nW8w}^U+2STa> z1GcZ3w5-s_#AN|mI(vetz;`m~LfthPs+ub0l*AxQxbnOyPjaxVW|t5Ml^bK@5c4w( zJsE=?RW02d&o@b%c4A|T1^RM*;=MP05p$(~$(VibKxn=uRBUW8gx^ENXt?^Ps8HfU zE(V7!${5DpoJ4@W$t(tOmCILf=J-hDcwM;8XT`Cyj&}Fkj2bFM)fMSMdoM=cX3Fnd|lU= zhNka$l|8=lmAV&3M}h!Gf(mSO{$ZLv#Z}y*s>*vp=9B%D+-{T@jG@r&_?FHCJAA~l z7y2>c!)8zz4B=~0^Hcu-WsYKdxDA_MvogU3(~->9)x1~YT|%s`kC}NDl;MBsG9a(_ z9wlamMQ&SMT{iwEw}HMoxEoEYIU^Xhf5zNE3>Lh6MrL7!>RqrL%807TML$stv>YLA zZjMiwhK|kLS3`Ku6AmiM$jc{VgW`L$()BA#4h$He4Tl5=JR^+~gb87v#J@f!k_$m{ z@>DG(TW+A>lL-sX5{ZU-RJ>Glv@Vyn9TPWe<&}~772YDk4CAt*%wSfY;ugV!WK}hs zZYGO#)}xDPYY!0VfsiSGGnh-37c#zEj>Q$gkUY2CE*U@bDYDBvM6#ZzrNQ7&S(cFt z>n~GqX`KQo*j)qFz9eG(d91hUE+6f1;UtT8~5y$bOG zWR-SEk6__|?gek)Rf&fub1-MH>qP8t>>+!va%xQ7+}AV)a1U*~YJ zpgse+L2-tK^D5Tv?dGE73pc~uqYi@aw-8e6%<5I4&l2^5!$rW3lcN=4!y?E`SCX^# zfh$ei5D*m6tFFAj!dgJ0A8B4DV7cf;0iD!lx{O3Fif;>;=Qx}t_0OpOom6sxfrW~3 ze=tOKuL!^Z4ZVmOy)6s<%UA$Y`Hm^?hXf$>b{AaA33k@zX*CWYm473PWy`}J1HTZ~ zM<8~=uST=PLY1CG5{I$*M=+tKxIDt_ZKs(}n?TsWI||NNoXSHF1S|?yajeW97$&g) z0BJ`ku1#YswKV{HlqeUf9wujnvv8LcmtJOEohh97ln!*nav|*wYY6$6yxNWWfGn#` z-gPgG%T;)M^8h#xqw+BhsvI4cscw6&sI03M524*67R zQilL?R4ocE=B@=SqcWmug}TJK_u=u7TNqSWVg0~bxB}#5a5P^8yGFTM1qC za}aJpf%~Ns$YA`-eE{ETMSx~GM42}Nt5xP3s45RGe=(aAYzH!cJmLuklEV&&o8Tz& zif+yE4TkO3`T32w@T0{rDKcCw3BwZ2woKJ48rkqeBWeZKBRU2jE%i1bwcM(f%NLP@ zXY!Zeo?!PfeTBtC3p8|0iWLB^CNecZE;m#*Ke#ZXh2kio6A4*$hAv83w=F zKE;Uw@a8wX?cJ&_Il*ldnNFT%0Y$TgdrUCfBY%190|MqAxx?<`<|cS5245p>)W+|a z2H$h03CGaau`t8hhU3tS$GL>XTuOE zA;8eDT*plY6|4Qr6-NVbkFpv60A?Ysjj@;1x@t3fqE;XSW={|bM?PB7FoB)xgNVp!;2N6K7Z);FKtlBQ8X>6G^Zi3tZpq(Ml~qwvP&S2U z%%cU}0f|zuSk%mo8h8!Imp1RU!x2L83zm(vY+@;fn-TX2@3DR63gTp1U;UM7HeKl4 zT&E3vX`Vm>H~R{3IJm5cjH6Z~E@$-S6=txSbr%G~?2ksjsklCVkNI&`mY83`6~$S= zGbjs_nbcz($=8YIpsjfzV@k_1I|~;ZARo7}-%$h`DCem000Fci#Wb8piEy|$_Z0vd zP6B_-+M7W96n>?KhDPJpT*QJ~$oLR0$bU%GrqeS*HXd8J`UP0N@Jdz2p-eS3W;=Sm zV5T8J?pHuJ9kaQTT9{r`j2k+sc35tR@KTg>#HBxmOjBFVQwz}rX&CzT054pAoXC<le8y_QWX9rgWxJ_LLE+-%Ua&mJROd8( z;jw@@_JQ)l<~}+nbINOPh@oS#cciMyf|=9Y%)cWLl+k@|D{`gf?e1A1RhXpnGt)Pd zStae;j``ef){DeS7^=6-+MrwY83D6qVcnZ8aT#_Z70p1g0^APZ7r``SgOAL)K?)Ed zQtjci;vz6TsCl$ek;J-*&+&*BdY^(kA;Qx(Gx?oRB{{2(1)Ak6q{kc19bkbj=*$ro z{thOrOgAIUOl&o~G6uwBMKAP>b}=xN!G#TJgpk18)@?C;@aN^JER8TMr zCoB?%ppXtniAWvlGiSNlCe0FwXhaoL;$_S)g)%Eb^N6QUk`B>iA5y%pm@IjrE~VF&7n?8)#e;p64DlXfrt78> z5T~y1k)4)cL|?d_vh^P%)zeYTLeO%Z!P?03apEjhdleVsk5O(Gv~@1eyH!k9j%K15 z91ryxSsaawBG?w+IhbJVwGW=-a#mx~G+yFW+4qHPqW5i0O!Um<8{NeAIZCWVfI|Sf zibJ!!OMFwBiJ<{mxyhzg^aCkGtgawrdq(D)v!u3j33lYVOTk-xYVy&n`kN}lC^ax z<*3c!x~TB7(@o%x7Dp1}1sh{5f3tY^4Z78Cqn_Yv9LDQtQy#A?QaabESh-~z)`@Wq z4QIK1R$VYG=EhE;OEI!hTZVo$J{fMzLorTHe9L6AM(arg4JqI)%O-10?kKHR_=s|} zznE_nAia~i*6NWebzt8SWEPV-Pcdz4dV;xNNr#Z%xs~1?BQIU&1}YU<#5N)7sG>C0xKHglDLms?1;%(*nNM!e5O+7E;< z!Nb`5h6flb`FAT)rg3nu*;wYGgB7<#F!e&OV(}7pwyX!{UtfVRC23~p`i5?4Y)sbW z)-BlwnWG06f8znQJp!{Zt_7J5V#@L5f~vrnOJ8cajS|P=Qm$`Pfgflw*J*m~1yz9q zV+D6DdZ}E5tE>AFs2lWxgv{n(a)%rEESoB3wecXeLkpyeat&m*ugtPeQP;l zjKRSKk)_+jujF}omA&E79gXO^3A9(q{{RG8ffr%K0A#W+VPiIm;w^ZJnzzBIJ`LL! z)W@{BsJe6k=gdp)cD5enGP9uYL0+9neAt!oFHsAV7E4jR_bd2=(4gfpo+*3}5Mn^J zJV#SlccS4`Ri*4~m!kv$!vO=S+&(6%Mfw36J2Q{k<-kIaw}%_ZFb4!Q*jT!6h}5Jv zQtqjIAEI>Gj33m{ppMrO#9%yNT41i&t}#;KmPbNMYRMFIHQ3BP4^2G9O^Bhxw2URO zMmnkVP99J=FD%d#Gihr}XTouL6JBH(U6Zf*g*x%bFfaqlG9##Um;gO}ZsM$bT_jZ5LP6B3!>vu-LzE zGn0-y_=>|IaSHQ;IgV8A?>sXL3S5sj1%O3vbT@lUGejMSQPM)u@Q$g7Q`9VU@^92A zAgZjtP~2-*zeJ=GDB!%4$3OP>Lp)3h^FG2Cs1m(A!&s}pp%@D#c-&u>SuJf`bhb8em=u;4=3s+BwV8Mz zfrySx;`x@3APgc{Jdl&_wy;s8RXxu5#y1Ra7VE@9?<1T{!QAt5sj{h3czC?8@W^B(aO#&9l9eECeXyPI%QcWp<&Od1oU^d zk#Y<7d_?xJj{gAEFqSj290hsaVqvp9O3Heb2WAkLWTmyt3q^p$r!|PIRY1XdQBff) zz~TT6mvXKV4NI}PaN(@u$~qRxsQ62fQ&`$gAx zxbs#nm>{uh3?jQiqFfZEw~b1+0rN6)Vm4wZ2Xq&DREB>HyR?a1hLK`*WTPzRm3ez59p8~mrXbUT|)BxTHq8T-NkTSQPl7xCMK2c zZB;9Us*iNnlGR3QJm72@ITa9l)!m}gbFp6{{S}x?zMSxO%U>Yq2ns136XS` z>KKP*v$e%aI`EnTQm26DHQcd!*gd8WLjzdH_LvJyH}?pv+QHXoRK*u-^DN~iP7vPJ z&Abpyva4t9Ih71j*ZqJ=ZU$N z9UN7RSDI9~%&*ictT^g0-P8*cy7QMj=!3tRV`AFns6NGaG5qP7us$kKk+@`4O~d9Z zFa}@ZCp0{>1Ty43R5k;^2aAFkL0)4x zag;t|*jt0Q`;0|LNuLSb9dLVN0JFjRj7GI|b29b^B|iPmx-M2>#aw{g05Lc+e{j_; zqVpeAv#i{1Rk%iC7NO1VQLn;iDd6e?Zx5&yAB;`XwaA>3_?nS1=?0`a_ix zrRNLuK3|!e+3H!`Rj;}JrMaV;67CHAl`er(*u_-B7q#;eWIa+lC&hF@W2ytF2-Sm6 z4wH^xS2x`3(qui%TP*Ahq0}&yvzS(GxoTW>DB`ATNA)OYZ_v}66O|?_A>t&)zbwYI zThysc9Y7UvTjr)1xI1qD0CM#N5T>9OZeTu8>JhUt4A&7{$+o49h39gkM%-nBA({^% z{KUZro2YzUbQy-BS!aZ12W7B5!D8i6itbzlP+5P}GIk6m>0On&=3O+s5gIX9c$iq- zWJ-kc@;Js`Np#KrQYPvh6LJXDhizh!|H))cQNb9s@N6&NRa9sLe!D zNh*HgbG?_SR3fqAE@stKa+qnmqjTpq>Qd@a%()b?m>?xhIB<6ebYf$la>FLdUHXOa zKwR<9xUjpq_2Cs&K&w_ehztFN$4@LR{{VF>L05kX00j}|dHhXg9sn`BWqmA@H~<#eu}fR%(JFLA8;*#}r;cj_*tHbDmkjk4y_v zKXECWoG;V^XZB_UGMwDPrL~@ukeU@8Ph?u*40L1jJW$qP<8f$n0Yh3bP-Smbo}!E_ zXPyF!bnXK2ZPybWXwIf#(_}{fyyg#j(&Gd_yf&V~k3>i)1D2Td7FdhXKsxMTK!O6dc2; zhA|L%S~{61v^0Z?TUbV$Rly#SIvhc;uNtj*nCzNj=B0RWA;N9rd>keZ zmzCgW8;{d6jJn)M)SwFz#%^qEo4ml&TjElCmb;8pGDF-TTJInkkktvw4F= zEDLDKFbx!j!D-ttHrk+FlTkGjs5|A4$QIl$irKUEG#1MI;#s$Al$4ztCfEd73f6}N zr#3gz3MiwPXFSF1Z1OMaT;W~8qdA4Jg0)TY-N7`V>oiMLThA!UUQ>b*s$OwDRN=&_ zxdl8I0JcC$zucq%Z^7H8y?$UJMYBC#+B%Ru5^B729Z$B)nE9z%USZ|p4rLQuD+n7|oKADU)*o*wki)isK1p@3Q3UkS4h=o1%E=O#UR?Jwo7N$qt9pN?*fNq*SM2%F|grKm9mE5aT zN6%fxkYYOZjvnFQ$4*GA?Sjd-Y@q2b*~ue_qaC~W-ezyQ|AwrE^@kFph|59>D20DJ$;hD*BkhHltp!fPT_F4_7a`> z%zRSfJud>!sOYXh%LEU-AlX8(09tdAoG zs{!WYPnbaaPU4ph3>jhwx8kZf6O$L>B(DO3>Gv8*XR@kckW1k)8gM{)L=+Pvy$Ivaxtj1FS-!lbnww=(q%&H>5ZpEAl{%;4dc?-d^`-H6da9%{zpV7SU6L5U_m3P*W&uFdpnOqENC>1}B9u(0f4YJGrM9 z=P@%7tlC&ay99|aMbl9rnp0H1EOY+3g)^F<7Pr(5J)p?}Beza%h@|K9F?N(}`9p3Pi*WV#xLLz;-HZ@T+&OV8$ar%Qbv$MS z-d-+c!SNYQ9KiNFma7-)cmN&1

;{+{-nrs3Uh|Km)+Mz+?q|p^A$sU6V6}wC1H0 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%0AI7k(MvcjC+^2%H3LY*@Fm#nY;k+;ow~FXhJFmtR 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

l>?UZXUVTX~c_Yo)U1x zks3q#z@u~UH%Z;W%IzcZ{sBR|wgABP65$nJDB`~Ju599m!r^Ta0_(yE{_uezt`Iyg zd9reu$Z_z0td&SEnhw7vQdRvM_{0EEdBQ@6aS-@8Kl}yneldheH>%;cM6o8GJMT4D zJ*f6wGIfQ09E?-H{{Som(A@?;UEqQTVY>AVxUvkc)q6T}TQ7l3YjH`?PR-(=25C9B zHPLSk9b7rnkm=?8e>m=R%KBb@e;9IU*gjsLoQ;s8$aYQQN}`;PQfR?sK)NN;p7+6u zu54e|uj3k2Iu6*3t*)(ndByfK0)^H0fJ6v(e(~G9Eos&BiN&-&+E2(Jxw1C)_~v~R;W#P5rubYIpUNMdisLO8Cme(@T^y$xUi z{{UJuRhc;->bE!<0BtPmSbcF?LDn$fWQkrKZ;VthO%FHLB{glD^H|Ym1T?Ep$@tAP z2DEIMchLbMPwSi>0-!pn@MEZhK_i#(guDhfr@W)!XKs_@Dr6xx4KX^Fv;56v+>l?x zlP!0;T4abncst!x!f~)}2PTT_@KeL{i780z7oZ0HW5{2#NwofO%dUm&38c*wx`AU5 zK2wv48sp;*MiMpO&ddiCAzsZ4ZUSGTG_SrhKoG^l@?Z)_fdlLOJwXh5esECEZVZBm zL4)%D0Pa{K6gd7JWe!Bd52^kf20V^wH?px`IK0}r{8a z)Y`w`+YAMfniCv_d>QOG#iJFOH@}?XpLuN+0t}i{9U`D)x2N_ zAqC;2m_doacAW1KJR+CSy=$Bz=dgAkoB^92}>{QYxMR zd&m(2gRiVb96dfxUZ7fWFIvUhO(wtZCi0v}7!J9*Z2QD`<+(FJ+>zq|h4o21gU`-w zjNYmnnkd1tqWHK65FP@&25uffvFZB6^zI8fbaUe%?Nh)Wrc1=rK|~kD&5hatVm-{= zD?1l=&RKBT^MD3X@rn?w;{ebb#G`j-8Fr;6NBv^si!mYKtK$+y34BpMtO9~{@c!Ll zQhjJ*bLZ~`*@C%Nc6??0DzJ(%Yt!lYcYy|A05#1&{9X=yYqvGf65{Qvji5Rh3BYsX zDpyE!BwA-MWLR&B{{ZCNFP;GW=Hq8Z;nwg#0T!OFAPqXHD^n~+gBM=CVtq~1)ANKB zX}wQ=Fd2|!Ja_TV5n^`TJPe>pro?sQ13aQ3Q`;}OoalHpzjqgENQ++0eHi&fphNHT z`o|`ai0u9`ObrbczjK@ec{&e5UFNThH&Ni$RHTYXJ%%tJp%H%Jn*`u@Uh{IRBgeiq zE^;DsH$3~wtn!eK6j1lfJpEy{VJ?qAzH*?z7WxO@I{3>oKuHMmaOrfn2rW75@rtr- zd%||wRUf3l2h5&4N^`8_encXD>jrj3zI+~V8qs6S!+|ldA8xXR1B0j3{&4+Ev?1=8 zKN1L@Q+}R#$`2IojvQ%a(4&Uk^RonvC8Z~X_`uYiEwAqjT;~qPxN?KEEBxh^EudTh z(2ckVL(!`F!-lLCYf_zM$APS`r7%N^f+j{pc=!VBH-PS}4vT#a2yxe&dB6B@)f*rq}GOx?d4`3I7Q+MAuAO)Ltf9Z!g!qGlY z^@!;>yi(y{DI1r7O)sMn6|@vA?MmyD9hymi{@3pt-qtX6&v-&2BmN1Afn^zOaDw?o zID6I#r){ux3rupswbTCfl!z2mD0>{dD!qof;_bv!u7Sy}dBIFfPuV?W0g|j=69yhm zV0{K71_RN?UQ>pbuLg~|U6}pTMG~&-L3XWih*;K_IASLhtqbhYOj_?dRtr-Av zqp!R+0SfC~dcX%cB*x(bK&^aEbD>B!eas5+v#|j8!r-Vb-MBcwsPdd(*mk9T2y>U@ zGBrhrQ@mYq_x@DNYz0S*(?^m5rvAvxS%<1OaE zn8ggei`BuW4}+o@671Fu#CTV3QK1hWFd|P>$?C0RZF|E$qo;0jVoYa~Cqva5Fkfdz z3PE*~jAWR+yO}g3K^?eNuLL#S^_!Hojzr_<5RnG^W}{O1lY;Yzj)7lS0ZjocY<0X^ zdWP5@zHwCM9u;}}xD7Z8L%;oGgUzwk?-_bi3%rts$6Yzu{p9@!QMA5ZGqr7}(Qi12 zN@!g^xckKy5DGZe+<>$fHo!#>&%Cg4;sN={xlH3viHi_Ea=aLEQmL=OtBjBo)O;9_HxrM)&IG0@qCErsVPQ6#E5NTgSiqeV)*-aQ z72_cW91lM6`dSt|aNc%h!LkWU%uPY_k{4}ad((%4(Aqt!llO&WJUub_^2jsP0P&C5 z(3l5mzOb|a0$FLxx9O8iF-i(H_i&UU1@iOd#9gQePX7ED+6{bie{UBGK`e4r`SEFgDpDdd*fgR1cQHy+)oLmlt<#toQeo$IaQ#rl@~v2H|grTssQ5y3nU zz8}^!EERU|Sclm10m*)GpTL#N{*9H~a}{!;l;!Eps7AjOWbEA|0dH}jNpJ*zu6 z-dgZYdVe|1Kx!f$J)C8eHKZ0onasoa4~rB5`oPu; zOOWs7an!^qQD_)r50pu=pVl%^FrmHt?;ad$KzPQg3Wx{aI8ZW%tR8>ykIFDx*%x0} zzLFfF^VjDzVuDPZ-+6X&1K{W1&RcT9VKw{BEsC^b3kiCh=DS-~ zrBv~*Tn5ABggM)+TrASkyWfnS>O{bOYj_}yox8v!y&xIu33~ZoX2VvRuk=g(XqW6(ATSkzV#_(ocw~9$x$}q|e}V!4eQ}6YLwa&* zBMZ3VZIq8LcNulFoPN3?tO|$53req!vg|1ByOwPR!ds27Mdhy;%D6?}^OdrLusmgV z_+?n8C>U=Oubd8`^7oFHUmm}}f#(J#g@&=s4_Yoza5={oyi9 zQ1$DHi#4mv8;Mi^gMfUPs}PuX=gv-K8VMXkLTnrF1~nU z*kabBKR7Px_G5Ri^_+>jzS%TWz)JV$=N_xuvf`t~jM*uy)W97c<~$l+FS9Faw^*mP zD}3Mr+Jw3idJHilfL^cv05JN{v;nrCoHfGx!EO>c7(S~X#KJUD*Mp4Z(W1m3Sf$7T z*N5?j`d845m=nSEgh}$iP@t-wdWU|oYS5yE?M`o51OtSGJiGodE{~VfamBH>ATJ;0 zaYCE}<-+$38Vz;p3(W0DK-+>_s3Xp<7Ex%6l*+{*887#Xf?rrK-iS-jj~Lq6BZK@G z%A3C!&SuN9KUl_(Bo763GiVYjka4|#8CxI?1pff$Y)KANtfS7PlK* z6G7Yq&IKd(D}PU{-H-AR{QP4!TY1hP*;|Ksa@4sA?e87%Vxa|h&(;(nljiB8Tkpm( zG;M@MxB1DG1`f{nH-ZL8vh=>3kOPagzg}ESPBlb4S5qB0#0SE>xP!H5Q^(^NXhB+M zjvSCmRuba2f^@<|lZ$}2R553c~4(Xek z#8jQF#E>P35vuF>&AAv2iO1J?%xadeW~-Zp@R~o({bw9F zp#xhAe|S#0*9Q0w@Nia;Y4|QQFSrlzFF%ZWA-EwN_`1uNT@zSW+)T9mW6@H9Ur#tO z->XvTow-m(k|TbzeC^S35YiZevrwXBKbFvD*wBHP+Rln3;KR9>Dbjte~kE4h^gz|nef^L z4{DsAVP1UTE}Dcl&lrtq3Tdvji6xS(1}zXPtWURx@slnVq<@1Qpp^%g&*Rnw4CW@E zH!jlXHqUsyAO_Pku7u`o&Nw>0zl*i zm%OKkSVNyx$fRgHV&ijfiPzo&wNV3i4mq}`j&Y>Or%~<~oKSE!Pem;~zZub6ULHG&=E?>TfCNeB)6aB0iyn?vT;L&F&F+9<0Pf79dZP*Suq- z=ZVd*U<7>~aWYs@6l{F;ePLZdLESc&o#CZ8vfGe)TW6dUKRdE1vc9vfgd7LsjpF!J z6|qq-UT3_zNRnw0f$5RFRSOTFpBRnjq(L5>S{w;({_qt6Uti~dyj;GrR~B+Z@_(#_ z0|m5u?3XuUK>}Yh4?CR=eqK523om(EYmjh>6o`6W@RU)ma8qw#F+d9HxK09vA-Z}T z0jTJMPb2%lz>*nIuU+C&qS_KYS1MFuyeK2a5-l_uJ}{n#lOcqBs^3g3f*4x(GDvMK zVPhFlfTqw(-wBCGR0!#&f-b(XPiDy-Y<-RhCa5V^hCy*^@&l}mv}xAupH4DSh~10K zEpo;^H9dsJ;^CY58hm1n=+X5`0<2> zoPeu1qqhYH+kQ@jvU|$Jkp`a_cyYrQ;&lArYP!Gkf*hZC$2mrk8V@-T=n)CoI?5@9 z0U~re#;In&2l9UzC@hUA9!wqp2YEhqn$my;3GnrS#D`;s1xdIc+15LmX&Ez{oh%8o zOj7SZ%N=hh3U&o|qW=J_E`WQ(-v$NLRM3C-9{~od1=d>pgyotJeBg`HI*xStR&j~F zAwqFA-fp9&&15(Ytxr_%7zOD7n6*s+gdsTN7LGwg-^LB0fQfq7c>E!d0AAhVN8QMA zt{%Rd;ua6%)838x@u3GtO}wnJmj(o?=HMSK;-Gbk zTZ*cx`~Ls}A)*&Pu$y_u0`GVAl8H9_Q)aV?9FFTCcWz;gP>fQOjBSesE9^YMiSfLbGbOlPrsPI8l5 z`NlOeb(cE;*gz-0-X6~mIHh_&pPXBQx;*}HQk6DmYO>A0-ta6d*euh6KnB$sezJ+% z>kX?7esba%*0hD3c*ASt@*L}~dc+t6xJ2iJUb1XbtUO@~Mi9R}bL$wnRkkjAcrx&) z6Ryo&IJ9CMzI9w~0JnU7$N0$iEg)IrpX&~Uy-Qv%Si?oM5$_%N3eURng+s*QiPB*i z)D762eq0f$zVcWz=go+p67nC zfx|$&W2w_&FKL`F0d)z{)<}>*8s9bh#t{S;KgU|cXO$8^Kl50j5Qa?(K6%C(f}kYv z&R^xWfm3|o)0&z|-ue2I2N4x&VcN6qV!~aQL)goZ8=Pj?*zRH)XU;xh)#-1UiRvDG z<*jnIV~|tCaqd6s1caoBk6)ZhT&Dv2$utFFuJ8p5s{#K2E^t<`ovH}JlOsT?hL8Rk zAc~1mONj&pqm#}>;og#B%ywwUX7XW}c)9^ZL%{9?ynBr9!m%r{^4<#$ZQ}7kK7DBS(Mz!+Nxe z?k%5QuqbMw=g^eLHzfk~gV60jm!uqBzJQ1?UVGMGsB{$bSFE@hl9hYCWTNqaN04`i zCb9^-2p-hlOpXdxkAyBh*pQj;pA1A|BDFoA4i^?4M_u4Zm2hvPD$m=B&pt4Pwv2Df z8URkiN@CqA=*F}Ky}z>)=Q51cU!1-;soIB(Cfya1z8osB;#a`&i)4HkZ+`QWm0fp| zNTW9SZzbwZLQWVjD?`tK}>s7Gb%!8o|~%|K&3ac}}Hm3;sy#i_<945RqPp9~?+ z)=!tlGE|6Z<$=jL1zno|0L~Zg(1E7zpnc>+h?arob$)StU@L0&Yk8sjyG7#9c|wG# zb{Oc*5_SfhNH;NY5^M8^0A}EbydrZS86M?9962*k66V4h`d>0Uj zfj0Ai-UF8qTLla+H2TIaiT)MHOap-S;$MtcPMjFTn?s}H$%!6RqSlL>Y=?CNf0iLc zsJeh{!C~8C0oIGW66x;B>wIA-_?EAs%g!qZg(L3>o2@RiJ@toX4%k&W>seJGllTXX z;L-;py$&0|4Lpo`hC)XDU@Mi3N7;-{iKhOt)Z=d2^@<73?2UW(owq=0V|I@u=LRLU zTf2)uPI*Jd2%2?&pT-cP+rIk60st0<@l~XElgTj&L~1Xs;IzHkZRZ|L*rp#ik18na zytqUJV%e{ZjN0pIIKLTD1gil2oMX8TL1!L2!$~8wr^Ov*gP~=G;~C17kkS2;4qfa(CNE5_lMnLD&IQE{{TwDU<^-z zwDpGJ_B!pe0j(=WFX;Kk4TEkE1v|qK_JetIXFCB4h!JT*A@5bmL=q$1Ik~Y_P~Vrv zDAYnmzA>iK8tvQXc-Seac}{-v2#O9#=MoRz7?-0OlCJU{9{zDsAshhh{eCgeOSfxk zoAu)3ArWDV%x9d6X?+0D9(cqz3m|DUyzzx_$;v#_jG0W77`fkf5hV)w0N;E4s3X)-qLkZ&JLf?0f+dx|2OaE|`)ddjAh^7&5s$IF#R$Ol+~($PSi#_>x# zX(z%UI03wDMBkiBrb@Ke(TdwYCjS7%bXqr$F-b+5S9^JR!8@+jpZ9rft9&nW zBKK9N^Xm$R4W}2*8Ub30F1TM9)xH8^S1E=A-<+|OzQpooh)~gP_%r>K=p$Y6jX9t) z9|XlIZW_lN{NgefX{@-TaFTD#)^%kf+30(?50W5ss`QSrOq}Y+I`ZL?>$)QTuXqrz z1f}ITpIAz@RR>(h^_)_sz>aB_U1JJSI-YS#6{UV_fUYN!jvEy^ii6z2HbfBDp5`Y3 zN+LJp=R1n9yUljw3%~T{@!%<*79C(*1sYGE)(|UgIk~R29C1gCM5@@P{f$2u-<9W= zzH^kJUO@9_SQrQEZJpmZvn}JTczAG&=onuQj7(_-?D&3gy&m#-FU}r>Y6FL-3FN^8 zzBAE4huyw$-vtC)d+R3)tAXuKv8^ox7qWGMBa{U;{&R4^MLx&Lj=}@<3`i(sM<O6V4+#{6d?;lR!h55uNyX1IsO`~tn zC*ujiIBlcz@sn-@t>c7wZbc-{8aHQ*8$v}9TVsu^x{SXYzYpsG5E_}Sh?T|EWUrX* zoM4q+(G{OBtkeo65O`@!=O+SM;z#Q$8Nvp>i_RZSO$eHxYrH~M4gh)BU<^J%{{T6% zOlbFjqi2VBHi&e_X05sttXrgx)%o?1qs0!dV&G&F2-#mAPk0y-yo~hw!&94C$Ieel zG>Hye6GA2{_l~VK?O&`27(s`Zyg1#_MZg5tytekx>l-P7J9_#i`@-NrK|T1n8i)-g z_dam}+JUt7gVUjs(}O6-|Wh{{R@#e>=J}-x*Xf*|hhLN4Ouy z3wRV551ej6(QV}b?-G{K9T3+1Wk87;n{2D|F}OKE6i0K%&LuYSFeVK z=z+`hIGBJPNTuO1xFFPtNCCV(ebZvJx6!G}O^ZYHbCmei(BsmsAM<~lPdX)0QqnqEegMcZ7L-QcY7{L<~1rb6Xet$xQ-)_4v__%W8sa%$SsGM4bMdcXSD$P6%)t zvhh4RJX{OoiJ?5|@L+|;7^*w(ykJ7BZk`-MBvD7{mpn~NTr`44k1lM2Z6mrI)wO$X z=3r`4RTwOTp{2?+~(d7@ap6hHBLN{{YOme{0j@T)D2Qf}eRW0O<@%6Dl_M z{{We!ZC8nDPgpb%25iS1%L&WC&3<)w&z_!-a#n*}dYbPGo~=OrVR5 zHW#+yTtO5mTeqq6mm*Q}IM(^cgb_WLsopC}RDMl|CD%T34HPn`p}q`Ino!K=m)p{+a=iecjoHnQRZ$&P_MWt0WiAmUm8WrEBoA%#m*c%lihrwW3! zPQN_4tR@9G^273~SwMAgJ3%L7j(@z;DAVlw%je$q4W+|5Bh8PEV9+D6v(7+BHORt{ zp~t6PWl+OQM)+U#f-Rd;dRxBrl`(}h9$DT>l$!B;=OW`7G`$#X9k@YEbOx}t=gFF{ zG>D;>3pg7WG=vDDxNzVh95QcQXDR`WLj;O@29WoUEuVqo5`X|kL)J5UIx%g{CjLkdv6mIUqNbJK79Db zFavM>b;zz@8o5iQ8S$Ud>%Cg}?GEX9zbB!Ke&0MDFHL?d*( zgHP^jA{DP6b#}PN0wGz5Os0=+rV}y-5yiogE;fhW1)@5jI&m60Xb0X15mM8)JpQn7 zK6D@S{AQin4?1_8@-ULQYl2G|E$KM;?>5PvNd?j8G-~ip{h#+4tGpEfdEXeClNy?s z5L5sfch)R3SeiS!=K$SMx{u%92wgN4u2%r%mvkLyKb#(7I*#2zOoJaUI>Is>5kW^1 zt9+XH{)vTgdT1r(594`7u`0{*J29-VQnMa`L5QF396A~{Yj4gCMTrZjafKzc0e)W> z#t3v0Eu#DPjkw&k6Hm?=ro#xT{&7_#s3;D8uvuX22euyasdE93i+yI$M4Bt-yn_+t z9)4c2#5}e^JUZtqiX!TFuJC)jz>xmB!kGmlM)STn>ka2A@{Qz7bhSDk_QBYhW#M?3 zDz+&Djg_f2ijYxZS-xc7j5{gY%kOR`vltRjzvC@#bSNGtjCJDm7sd{-fR9g{ zRm6;X6JORrV|W|CI6{ghgx-@_ipW`;eI^Z#7@M!0BnxpL_PHcBf(O7b-@yS?*I7!Q z3bNm6Ma%y3#_=hM*AWE1j9bT-Ks`(&C+5f1{bi>id#8)bHI=66?B_O&(x}&ra1Uy4 zwC@0(xl_Wp!OYR0myk%%ec$6D8E)_7c=))yMF5m}Tt_ojxOcz2k|WCN?;Zw2ifeu3pxsa$ z_gqXuBEX#C z!Ps-09t)AzjD$mh8pI04yD@!WjmE?pX2Wl31^4}Bf~14ob^idk&z~wk4}P#0R0@IN z(|zNK5NTFTG8xOh6V0-ocY=bHicgp@xgf4)0AHL5V5qbl?5{Yj5-52S*y5%SEx!qj2GAfoquvWbkVYPyc<`cw=UKu;?d3Ly zPrT-fqyh3}?~E+~Q}p5y<}L@#7|Sp~!kjM$tXABZe45#f4+CNE_{JW+lsy3~FZN#7i^5dOjQXRJS z;$fbnKG^)=P|#EqT|2_T9RpzJFXOzZs@P z9S7Ca^Sm&9hegkE%?1Y<`s)-kbCGdwgrJ%EakP-M@o)gOYu$0jfmtoo+`kyHZPbNBBbTjoI{fj9S{Su}@!5$?MIfEO z?dF6*t`m6mW^T&BJ%a7l@Swc>Ej5WL%-Q-LF+|rbK7(HHYaNH5w(_YOMUQ5eoNR`q zEhkv>2aP^?yz4ft>p)(-{<1*=p(r$O#hA7blny<~(TllNp5}vpoDI;A^!G3@4J+Kl zSt=1aK0nqfq<~c`JIM0}NM@j6bZsCg_dNK^Hp)tLg!RrVS=#N_ezL5=Nkw;0yuHf9 z0ZxvLOoSw;p76MYD$_jU$WZ5F%*7&Ts-FyVq=EtF3OnZ+X#iKU@cI2|ON;S6&a zvE$QOkq}2kJ-o4L?O5^X3_lJz0pL4vp@cLu?+q=hd!1p-2n+y?H_j#lz;*d}!VroN zeVSYqelIHdg~imOn{{{;81arCWb@9P(u;w#`N3*2;+VsL(jf8q$`)5q@%6kPNsA5p zyU2vi!if3Ef-2ZQrNjofe#C}KOg5VHw;vETNuIDk+JJ-LWwPiU9?o!|R0r;kvWy=f zp366sOxEQ4k2ezoZxQluO~6G280V2|C7l-CG+$Hs#;b2Aeg(k_6m<6dVlfbw;E;c; zA0u)pUHKn5r*h;~yc_TGVnP?K(c9*H;Q~;NxmRt-Lr9__y&UvnQ-W^u=Y5&MsXEJ_ zE_H(xDv2*hUU1MsiK3lcS9x$2y5Ef80-dkdzc`E<(W06UC(Z^&x`;L7#y~c;vrawp z$E*o%BUMsw*y3ZRo!e_8hqFrh2U#6ykwl8%v^&`x4Z(I~5;xH`<#Uy~u?rbqX=hRN^=1oQ7Fh=WNd$DHK> zkR6S1y5)s@RyzLx=4~2!YK}#_%WE`(=|fwu=ObMq6o%KPxOxzZA<#pED2~wk8rkM+ z3S^1FVaj*AOrR*hj>CMojq`4}AP(Ocs>VY2km#G9a;Cu~0$9HNWwyWx2$Boy8b$y` zV}d(QunfC!Uz5L-a6!Fi09~rs~Ss^=}n3|J88uK~*OiWe)QiEPKZZc8b17@rkTyy|rJg;BR z#svXzxqM+;5*N#T;m2EAzf(8>ZjyB1;|zc_XQF2SdcET-qt$QAIadKXxDhl3%5`UWTEmv8W6_`oLB)ni^`UL!zj&f3i0ml% zxWb7J-miINO)kssq{(8nk?!jVz*>7eH;EjzRY#)C7h+pPhIy2N_{k%wKnsuVRxM9~ z{bQ&wQSH->ktOVInMswa@R>(9oOGJtLH=-oF{00$G6WJD7r(|#BBeZQg68gwRY31q zsAIj6y?2m6ohKP4$_c3R;}jVO9nOOQl<|ZIT7RqnH*$_0@x9C=#_lmMuj2?e;V_(X znY0SEP6v$guvLxf{oyesK!$UIU2Fgw72kL$EmQ_u*B6Xs07YmH{qHHH#ZSteW0FZM zUmg#0Hf;c+rPcDeG$7h-y=H^XibkAo=QpA;FO%c(f}Ic=hx{l z!J}Y|LGRu`2AURWjQn+iLTHTgDdovRLMS}ycr(|qU}yC>#U0v4FSbAd^N^A_G}BYA zO;6S!WfTYx#xuHB_G_GA=o6qC+y4N}GNZv7OE>Qg^pcMUU3tTx7SNH|JNJTmR_q<$ znU16FLbty&BMDl)yjM9%Vy-3g&I&12sGdv<0U|s-elRElaGsaWP{dS6WW~0=oL?#T zh^$JAe=MGpqpRuGI7ZyOmkXd^v4?rnPRlQyVFb29TO2yW?9CJAolZtWezsD^?=AEIPx;(5lt1- z_-_PfnhT`-@q`FHY)?z$5yN)};ld)VPmb@bQjNW%v(_P1Mx?+dAi&x8kd~SRo_74ti zuiidEk|x4*B=61;7am34y|=t4V(LKivk;g_OnJjYgITn~bqyv0k8EvA5-bl*Czl71 zx14a0@zxhId-sRB8m?J7V0gmt(~u%Q4lNYqF%73!R-izmzt#~{sv(H?iu<5Vk6A$? ziYq-UnQ3I@J>wTy-;u%4sIgx44Y zPSd_-Y&QXeb@TO-({&KnDE={fMlrVO1O4O*Ev`vj?*aInta9G)q;4u7%bu|j5WO6} zSwP$=!{E38Lli}NFiplSwB8>{8VtO{{{V56Ih3TXUtDC0kWl%2;9%(zL3!3x*q2jJ zj3z`OK}Xr+1405#F?3@autL7~{{R`%C}W4lNpdELUN7$%And;7B=?3TXEhaiI`^zi zH=ZC(bNS9gK*c@dhhmsT4>!C7s6*L%eB!JIf!CRvv?wN6&z!mdNvH<9zys=QY4CTK zU@Jsq(Dm;FE^m?Y^@@X4ArEICc;mzpmK^fnm;e#54j(*RV0b`(ydtF@y!y*WBdD*h zIIu~u(eMn^c!L2C-ZTLp0E%7j!>}t+@GV z)=2Ey1q0t0l!FR+8p#gg@CK~$k359z4PURu5B{2H9!oJ~8BhN+(zx5zrB?jla%oLVV~$*MkzG2oOY%oGx#GT2AlYabph* z5!%==Gf^rDwJrsSlnoYT(`6}^m@5>hEGHQ^WH=1sQxsQY^Z z@-&#~gt5AQF}@4L^Q{@8{RDY+9#=j3c5Ta z#xgbeTk93Jz=Ut-0kjeAz)b;5u;=3eMnyoEl*lRqFk|b+cJhsO=zlqFBno3+-Uaub zt)B3rma#2)#=YHk^kEW9Dvyvmz*r~;N#U4znb|Md#)3TU-V-1w2_*-!$%ugNh*Qwb zVO5+%UhDoOxW$9Sl%Kv(6Cq76qt>OWra-cq4}bZNxrLA61-=Ltz` zq8Dzxuull8aG&=X5qW_l4!!aQJ^0P?4Q?s=$ijL60OwdpMi_;9=MZiKvj(u?BU=-P z3Q-VrCJq7eW#n~=g>AEWv@h((VF8nGv%G8^G%$KRn$0X28XgRPE`lO1kDQgwmpjuz zeC))~IbJ(S+cKjbxFe^=QJ1j;-x_#4;Mof}hkS#aY62ch-Z@A)xV*7?$tEi)9C730 zHdqE$zK%yN=8fliz2%5jj>nnS4}6pezqStA3KPCEM)V4X{Q1NilL9+};9-f&r}XiZ zfS>|xyc!Bhbsi=MB0vZRNrzoEg1n!`AIT|~cY1qjV2}wAzMIZ60FnN4v_Bz-!`>L^ z#+vu@>luTH`1Ix3Telnp^_rD1C=Yv&@rMW}ruW~Cc*mhxG&z_3V(Y;44&pd%!T>!h zl%dlY(kk_iFqD|}lFdQbd+2K7N`(pFIs3<|ffGQV_0}X>_B-JXJH><+`C;IO;eK-r68A| z{l#0OEa%=J>?MXaBX4G~V7s!N<#rKXjHbmcoMmWfJ*Ow*0UJ{A1d*!hJny`wqlATd-|s551)2lj z=Nu}~aEvue2Q~ok)k3eifJrX&j!NZy4s8DbwTvtXA1vb0PL2t1SdgQ_9=>t_A*%5I z0PZDkO*Ds-ys8ZHM{4x|<6c{uc7MDLR5d_%{J}?q7ub}>MnN}&H`|C7v zSTsMM-XSIcI1Yb|cOw$ld*AC0x;q5>^@s59UT?(9k$epsZ|^H0iWbk?1^dPri=>^m*AB8Ek7X}YzHx=Y zC`j{)kN_q(oZL%8&nfYfm5s1moM8GV^uF+gVWid3ainO8g8MvRh{lDz0r9-!L(P@i zzdT@z2~r=%GL2$MW6}7{#W}6({q>Oc(vzvIMgSAt=hix-o$*{ z%b}J$>l{*1V4i2jAUl}}O*!?}6aqtCu_v;t^2hwB5cfa(1E#Os{S<{Bz0 zEfQFMu*joI@N1l4*m{)jI(8aj{{R>qwgnO%H-L0jp?R5h7N}V|o8B~0B;EMMU?Q4cu&zG{;|iroMOP`obkWO>UZLA? z{xEI23lJ_PDUAlxBtquiXJ^i65(oy*pVkA5k4LFa%Ou9t`FO^l)G{xF8qg)!{{RI0 zz<6~EK2&NDo%{;=GpF3+Qoy#$3&?)tGbKjr|&9?NEV>y%L`QYU^UzXc6oB@41y!a7!K(U;e7hY1^mm$Bku;VJVWW{>lV>b zjUN1915~vgJ3m>&gh_qD>S4ij&{tORo8T8no?2lJ@a)v)eJ!6#$BhZunw3{zit4Y!CQx!l(|YBep@>BpQmLqY}~hsGyOjnRB1 zP4_SWA!C)?H_6v4ogzF>+yjN04-d)*NiG%NhAmP!Y;55#onomL`j`;5l4IoYxo5e8!Zg|C`YvaZp9VET5Q34m+ z4$axmRKtKePpqt!<$2fq;s7Sk2RF2)uR6pYKq}2FZ&>94LqNz>6Q>XNo36x3{p6Vf!@G^E*{+H8ltX}*&MD0y zc@L?8Bi}~R=QqmuV9?;AqK-%BD9}Va`oWy9$tBh#T&gKsIroT4fG}(~>l7)WQN(gV zA`qBZ<{MNFcR{N2gr;l;?Ee6)I8+3Gh5`oNrkAZ?F3BK}%6^Z=4iZ5w*aMo_Ba;{< zhCT$ulDjMCBbJ3@zl=?W+Bz3E;ia4J3|q$}%~{ijp4>@2DmbPD7@H%!)X5N>%<6S_ zP2)CDA?E>1!7pXYbQ^;{uxez0pPVa_l{r7-H_Tr1aNa?oFatuPB!ctaQMQ*y7%jQw;?LY0f8=`By+*}df#7HpsFalA;YlxfIycrDwR=qt+nCi0L ziR^B&q`-$6>GyyE1rSZq*}Zp*jc_6~?C9*tjS@h5PV)7}$Ts-Jkc3E%+WldVMp(RG z8MK6s0Xc`9DEms^Qj+@hiUCZqI#3w6P=DmepPw=d6MSB9gx2rC?&8Q8+BQAhOBASh zKRAG>GP+rW1lj{rt~kI(tTlT5nCO~>AA9kDXcZOZa2E66Qy1)nZOHq@J*!zgZtS#I&5q`Wt8G@V>XB?ycS z(3uet6o+T8J>uOgkQC#87$}B#Ms`kiV7+p0iuU*KEl@*_7qXpPHVu(cgUD1pcZ37F z@_U>;;=2=8lsu)sn7)o=zd+b(<=J*(vLiXa>KFPsh_@{UZ9-tA4|;saH2-K;knBMX)u;VMV_tSJ?7PpN}e>k~RYDkZx3FT1}G<66b zvxatY!<+K731GN!4ep9MnW;+Y>#j3@(XH~t(4n_qtgh2)p^_uy^A0sLsaZ%#>UuE{0xZ{kVIhsp zAZ@}L6I&C_?0j>Gi8%)^JaLAK!hmw`cOhTY2>$>WTHx)x-}}5#VAZnyc*ItyXJ1Ys z+Z0j|;fxB26LfPkyoa)V3y@cxrC|Fvml&@76QB zpytPy*@QhnH)l8a!@d}#5pQ?(%ZVcuK$F1NuQ;F($_2bU`OfnJSuAwV=P9wAmDenN z<;CF;mv>EbEK=-(?_pn zKBP*3n-4qlg%Q@)ySYfW$d9|@2vW2xnhJh04A8j_hCSPcePtCpr+7A^MBdhM&LU(G zBDo&dtZbtK;@oI6VmJ;3?QnLnGmbJCRb(cdQ$v*j$6oMF-_IX^I0FrGP+9McTW+3& zUb*WIEefy)SWRP7cGC|H2YB0B?EG6W~{=hZ=wg<;N~PFRB%c znj&Mq@6K0!+j$$KkFii;LF@hC5D^sV?;$#6UjDkpDh#n%tcX{bO80Rwn=T{0xF*jM zGI(+<*e}K0`p!6jnfUgTv7ypGkoa7DGD*r=MsjhJO>xs{o=~h z9jDe&t@UtelPH(EY_9R3Y!+=!4>@@Pz2D;Al1MWMU?-{fk2H$~u!beS7AMxHm-lnK_u%2)OP=g&O zqa`Kc6L@%GLu%FIA<0KZg}mTa(22csFdatIZVT7eBs&o$+mOdCvjH}!M|^w6k{}Td zmz-y;-kO;1DjXOiu1<_mxg`jDiDY8T~2fRgSIPChzRm3)C`NT@}05Kz>Wb&Rd*>QGR z#y7%-$49sIk#+$D@@E)nm3+Kqgk=P<^O1#OyiXYm4$V2svUN)})*%fJCfSpcG;Mfu zS%ogOk&=bJPI<#AK-$?K#uh4~AwiZIMh8rI3$Lu9cN#a=N9xpX1-%(dLEmqmoRcby zyqJUTxq9)IN4RT%&T@t&dk^C*LJxs!#p?{Iv>d&ER}_?pu>7*~KolFN`^wPi=+{zv z#Yu~FBzzYr`vmj<060@@)!BFa% zO;?YMxD^s=KpL~oHUmyU-#_mT89;)hc-O{j1A4#q<3XWFkXWDI7+S|btlur%#HxUM zvZh%Q$3imGJn`!xhIhR>|8P8uLj^1rOGgF$HzjN96UUJYCU5b@R(?)5dsulI~>^!_V`KuBAWynb;tppWkv zE+AX*Hsa{yNvI-O=Nw3o(My3r08AS|iSPb!rER+lHgAc%S(8{f z6u}5X9WNa5kU$ebz9uY)i*la_)ykxeG9DlF^PATh7+2Yi5I|oK=LCca0xZP@Nzl8z zX1tU~!Rx#wK1oatlOziBNxXCXVmLxPx^t`l08F^7J7=32?qDJUuU822UwCAV(X-MH zK_$ka0Rde}_Z{K_-Hm-cGc54f4HeU|-<)V?O2mJ|l*S32FJtG{L~tctQ&Wvi$Bf^k z=1o(BQ@l#C3Qpcp=jS63lPJGf17i@WTu|>ERY*5c?Dv3CIv9tPoP6T7A~aEF=42qz zNfqM%o2!Qb4 zS=mrMQ>)>WK+>*9-XhXNnvNzA?DiaHpQn~MCKrM7V<_ZPsogYBj4%e_@PD`Wl!88B z@24)7li5qJ&Nen$96E0D5H?yW%p%363YX`+D_zV{#A*|+KPmNvp~MNlx6TrdYU^%> z^>J!4%{Pq#2B^)~Tfo3r9zicSb|86xI>jP&yLNJT(TZF-i;H&gJO%fH43nia==@?T zAVjzS0GXgEY%%A5d05T?oV?^MXeDqyFtG;BJkJ=^Bz8HzLqv!tsGGK*y z0tJ~96yVYC5&=1XtzgEnI}f}HMaZ%$96y{vBGK}O17Wao6E*^yL&gV1ZBIY<^@>`7 zL(cF+QlMS{ZvOx|7#k@YuUWW;qa689CJq3}qgk4j7MthR0XFPBCs;v7Q*U=+%I2U0 z*njS@?LpE`Z{Aulp^tejo3Qj^l-oq>#`1+uLaQ-FPyi)0iNbE_JHa1h131H#M*-v8 zl7mzreC+wg;}9NaKb+#78$BLy*BYFr<`S@52VG#iZ6W^vm^$iOK?S+Sp%JUon@KDR zLxT)MK%5iKvCKDfA)A z#pCNWJm?RDkjChzf?Q0N(}s>EK#C5xt^RNbz!iM&1o2LDXmPBqFv0Iy{;&g;J7RI` z2NX5ri>ZU?l^ytZ{{VQ)LqLkpPwNoZYZ`|WB*q#B+lNW2kA9+l@yv6#pm~_^>V_OF zzVLmdT3di&>wY`?$>@?GF_-$syaOlT{ble7cIYtw0J_D;XcPJR$Wp^7*6E#LD*-oc zc_&+NB#yLKukRgTCaR}EcYk$h&z zg1e4?iEuzjfFKSZ_m0fqUF}l-@W0FC&q98PzO7G!)tf_dLO z;%!<~h&)aF;XNJMsb`hB9s|MK{9<%6o2#(F+<~P0I4a!cpN}6H&WR~FdA}H>pvF%F z?;Aj&d3o=Q*g!1MU&P2bcS!G-Hv|#Np{28&B&4@5u08wBS^^7C{^3r+TcN(W%MmwQ z5pPFWsYR9xUo#!R0s?@&9ObAd3Rv^JkiY?;(TU)4vsVnZ28H3*yx5hPegkj;W!WRh z{{T(`qV*&P$DB(jZa1!`0w6?2=lyZ*Xtk%>;dJrCy<=O_aueC!SK3X~KYU;gu5dNc z^O`WmoihYcgQ`O1{3PEhW-$uKUb`^FNHV5*<`!ayq)xO`zZ&}&`q zjJ(kG82ZiVrJWoY#2rT3#k>m?BtB)v##>dcA1`>YW{J@=6u}q?7V_Ziom&)sPvZr! zHbpxlzpY^t5mul$!L@-w4TnK73UfZ3ct_1VesRj5XNv3$P=M?R^mT%vI3YRsF?xet zyPRJJDmSeWTfwe8WzcAaVs8l$ z7jNr~&^=BI&I5r)lV2upPH{pdPJDaI5KafD^k*;t*xLesIFOVLt=FzSW`Y1u7RmU+ z;R*i4#fAw6#3nPOsaw7>1+-RIgX;wr;!amrByvO>M&XA{3Y%7rj4;B|3dy-JQXbW# z!HAVoghS5o+2Eox)~>k86e1FQ+;tIKigSSUlFlCN_T=~x@Lo^#j8G9ypKQ{|#LAp; ziA(`BE8_^58PJ$f#7LF-#gTi_rrE&=pm3R}1#8$n7{wvwiwbVlWX2(?g|)4?B#0yt zFf;%b=%z^K@Gv9AaUIkMqq$5|IKqJJhxdYjVBnk{yyo&Ws&3P#&MvFK2!QIH^NeBx zUO?k`WTG{o_8n^A9wUMIezl2fu>qp~GGx4p6J87(15`Yz#vg-OX>1KRK$-gkM;Z(?iw2I44?E2{-HSI4&Ai zs#)#xhz?(J``y+?tB^f4gr(vub?|;%H0f3Bm!HOLJsl!k5;E1JePg2B6eYm`IBM?s zOoUJZoQD|=Ye}QVunTC#dDnQr%CD_|7^N`4^89^eE+DUM74a@4Nt#+}JN1NEV}OQV ziI&5WJb>r%iu;0U#{U5B2UxZ82gXD)-!ZkfePe{g?Hv6Y53H3Tv$sd~xq3kwYtm5p z%@Y+4&yPNG6Ql&}>sXoqxAI?uGz3wgYVm^@V6)*b8n~d)OH-iM?%y~SiYE~8BkB0U zy2>dno*8_G45wP5TT^RZ!eW+~F(J5B?R9~}z(`UIEEeln9tP79s2Z#1&O_un+qEKk z!Sn*!^lo<}c(x|_TAdr$o+nvvY#g4=<%Bd$9e*<{+a6o>jg>BIoz;#5aznRLq{>|= z0u7aKT;&01JiiGqj`53F@^W!u#%@GSlYFMKgeyr1I|-V(qK4LW^^RP9HSAZMVu;w~ z22Xh-H)x>m6Lfter;hkH-ZZEHDyNb0E)eDj-Pf?=1|;W230eGkxD*LWonG=JfN#60 z;^Y^#!4b>1UOU1gOkJCK#}hgf{w6vUE}nhk_DsA1k4d*h)bN;TEZm2Ip=c?6U_ogi z+2$EP?@otDc!3vS(w#HdrrvW#5Tpi|cFZ^0;%<KCxvG zwl&%D;{xSGOxfdCe>n%0O==!ZI2Z{U56b48Rd9qUYA$#l_f+t4UP42=~Br> zi1+IirY2uODZ|baQ}hD3DREb82(A&}?zn)W17`v2B~K{>^?_=vfyZ@lXa_JlHshn# z_roGeB`F7(@A{dDqXuCu!gRO&jujlTIwQkij@%?r{bHzT$m5O-O01v??e&CY=>^sjlJpCA&+&qSjL}f~{_?se#rb;Q z?%UnLF3?X>;V(J^bB$mjBL(MsKRK`!D^hk});o|2 zEgJr_NP5`cd*6(zMAbBwYG0g8SfCfD6DV^P)EnkG9FSe^zw_1(NR@>&pTxlgb{cK^ zeeVn8ReA;3d&Zy&EAV)}3@R=d*ge0T0N+3$zcvA|Z9H7l&1g(@g@G*dQwDhzHingXh{(0y!&yP z4L}sb{{V2HCP}TC7LOh=pe!1CrY@X7MxN$hXqEsq!HJzV zLWWrp2#&rmF_E9941>Of_W0*GWewVV=AIyd-dzKV8(#BdSJ>-c>jlp4{Y)7H5a=Gi zU1NhIV}AxQ1f9M4zy@XqmF@L^-bBIO8K<0JHiRlpwf5y(*%Qs?xXo}81AxFp7kd|Y z{{WZhU6TeAu?|bS{{VH0ok2K#{_-E$1GB6z0p9K%_0Fc_07~9GZIK zVs^PQr)>WK+)6Nepjr2VkOvJ;;rH>ZU^5#i9$Kqr=sZ_XmrS`E0tRvrO8ygu?J zg2V9#4lpYO4M5ia0IW%)A`-s`;|y~NVY_E|Yu5v*%Y=`lpfq^D#oGL~b zA=Do1z;a>~k=mRYY(iAmmU!MgmLX9vL8znF^5`X22dwWvV7fi)e>kC52AG>F9k@*F z0C@M#A*O-hyW@^>H);wEgKp;e$K*o`De2-|VW^>0><6wf>31qX-1x_t>1U2kr#WJ} z7Mfp1vPfi0Vt_q?H<9_Y9E}_6@6H&Q&?eD}%zP&EspW6IrZ#Dp3GMUF@${JCtxtb= zM8tw>Give>ixvK|($EaO4sSq-gUifK{y6PU-DjfpUpSvk-j@ zX&g&V0<(wl@r=Zm2K)$?r)+~E6EL({ofY)vuY&BdgTA|S!l}rFPAAcAeL>l0K?ra@GWOa## zz?4%FLv{xquufA>k!aov1wsthjM)7F4~vn407X}$zpOI(lA0elDw$^?4k3bK4(|pr z&lq|>@D98Kpk9N*SQi7hvO5RL!g}Gao8Ev#K1hBM)mQO7d3x_qF3_bkR`D+_QR!=1T~PSLYqG?iGZ!h<=!{F zI0=DG+-A;atUSvI8@Da^z=jk92KD1O63U$p7XbKXwb{`AZV{9*r@Q3$fjxrJN%PJM ztf68ae9Z6!Uv465;MmURi~M5@svrrr+>4g-Md0$|Q!#E50=?ltJKG&O^T&7wK%rAk zh4OXQ1YIB%EpOwjC<8_#{{XBHh%Sq+GmO`RT37k~W5F@NJK@MJ4)xJZmUgEqnWLKGm-*4oM$wwE692Me>g6lifP|-yegAGx2OGOs3NBiiT8`aoC9DweOEY` z2BwqNEorm|4_KrfP(U?bnqnOc14HYMv2{>W(R;vB5RAKVj06gsYhYvLH(2)X;{{%| zr%LlC7dW7U!t!7UX?7iDdVnWW6U02cJ1|L1hO=P5A34CV4(jmz;*6b?7yj!LBcU#X zs85`|Y{?NfjN~SXluilwbATqn^EHNLMWksP)PWaTYK}*j0mb& z&cvqiBna2&-c0t)b-y?W$(J(wPZ>z6G+s__JzT6gUhoz3bRSq5MMI8#e)F6t;s+l7 zaU<9PxvZ!Wf+6Ru6cC{Yr+Ce&X>~p3#v6k>{{WoVL(9{6z>d_5d4I+?tRShrD^47a zv{#3d`^49`Z5!U_4ah2D0U`p3e7FMySk(jSWiZ=XO+TDM=!7k?zJ74h4M%5h19ya4 zP;hU4OLvcJBDaZWC%!VGS_n@B|Mj=A0&v3w6u8n?-f0&Gc3r__7Kj*=0`AZaHU6OSlJcYWNBoRvqG_`l9q z0%+5wK=Jp0EOHvvIQ?9%mWX|a@s1S$4v%-=ImKJ`c09iS0M<(xD~jP^$a&5B!z@?^ z`8S)OimsfC@@@ma2%@|PYrl*afhl&~+`kbbHsq()2+;_MxX1!s#k=a*Eh=wReqK`-Wz#zVdFTUm@B5JRSXK2Y#7m3Bq4Ooy3r;%}3 zIwUhe?wIs*jM@JHn6Oa@424O%~Fq{~-G@Mv&lVtOd5v8kC@$-q<#DL{g{xGJh z_YZw4=as5OZnVsG$HGHmE#0O7?-~#&D5c8w|(HNOrsc%H!hYuKs-;iGBF#!-lr^mb_ zF7rsuxY9*LJLaEw%FJ*AYwrXQ0Is;{Fu7SzNxjT^G={tA;+T6LBsBi=nATCu*{*kj z=9OLrKfF=_HX52_;~I=mrv{h5Sn?GTqAWf-F(wAlRR{Xc=%J)-nn=yJ3W386OMtRAFpYk!=w}JCpmEjpc>ztHqn}#7py$VVDd`G3=9A{L66o<>Lf$+JWep)s|$R0 zue?e0m483`fz8t%Yc3j%ArVS;}EM+z{(Hu%N` zcASHI`Z0*FMcUrJaNJs>TEfevcF76g-;Yx_=HPH3<15rd3C3pMuvX}oCVJWe7s;XnMc#P?-1VJ_dMd7Hj0tHTmT_h4-t*7bE~0> zGlN9mfBZS3PL;I?ADmP}27>b(+6YE!{ufyx02vAAee?H^4FWh>XmzfySh}Fb&qqV+ z71&x<4UX*U>v+{3N78Y6ADoIvUQs8+cBYn;;sie>9{1?paA~>?yhn;`&nvl zXX(ef9(o|Pd(iM;-wZg=LE-P`4^q&;)!v!LK%dwF==<*`HjXk|R}rUA&a;I!<&Dbl`An-*GL1B}(f5}vfJwX0C#>NO(2^#eK5|>Jp)Yz^ zaisN#HY7rzac30H7>r?bzq}3=_8xfG{{V4OM#)gUZ~AiX5+N|~Ja5J#Y$C4?qxXmt z)4fiMIK@WIQX}SvCUcmpWOjzXh!}yFRkDV)nu(GoxogJqbAm>X3FPwQCEy17uf{xG zr~*ybPh8{^bCc}!*LhdAK92}*#++T$EIvREu~aw`1G;Z|`@}%qD+TA^>nm4V!JaGA z;{gpgL6u#b_kc8cMUNb=KpxD_xxVltkc*Xc_+mofypHvN8GLzHYl^}U-9hpP_mn+W zq)_kCg(9Tc1iS_dXG^E>bBjk6Y#!%~U_cTaqED<<76*Dg2b>x*qD0fy4MSlKleFs@ zfj}*9SKH&Ppl4KlS0Xa4o4<@z>XIw+elhTRilzbrisTcV2}GoFJCpwab47H4A1iyq zQY~t6S~|#ziiVCfVcR03*P`Nt1SlB^=1t{09J(&4UKq35hm5+IEaymQJU-h03-hsy96Xw*f*Pu<2=qC0o6 z@s{Mx0+90h-f)URdbdygtP5>GM?nR9$7P6$ARYd3f~x@`#ox#Ci&K<4UjCT2AZvtq z!c7TYgh^i+Mpg)q2>NI9hy+R(lD+uGZxE_LeEH`KJ)`^|&Ty$wcI$2;3ba@Uo&NwI z7@et6q2cBjY_J#Qca2+ev%~kC55(X<_V92D0~DOu;}}wrMbbDw?>Q96ZP%ISoKpfd z(;bVnS8s_{B$^DZl=?4J=bM zYG3Cd3@tlL$$gg$vZV=h8ozT8_1yS)nWYF{CDE?EX2P9<>(T3+J++`6@%(>SQ${G} z4&O#3Dw?fRxB2|xHv+ogRY&U*wGDk@f)+)a1{Ct;a9T~Qe_Adubd|KcKkrzg!rNwX zsg-z?J*QvB6VBC!K2zz!DAIzoyI#IA_<@Vm$BTv9rmjO<0}k8w zhZ>!`4v(A-CPWl)42e!j?*9PJD~Jt|KD)|`SS)k*lPVz>r*-aR`H4f=H4 z4$$*}kx~>N4)>H0RGx-U?a8E=d2~Twv{A_lwnWUxHT0;cJY!V9{M`Ea6)$@ z8vW-GOES*0my8}(PpoHcp%Eb!#|Dhn(S^EJYnXnr$4Yw5LiC>SH4M)lU0L&{=3j#z|kSJdm?}|}KsD_T*r4HfCZG!NBSrp253AX-G zH;Hxwwk7N(jvXl*RX!Tu!Gw}f3TXxg=JoT9*JJdmcmIYCwEB z^T^=|u!0RMOq9St62ULD>EnxvwB|~KZ%saO;EJUUc84!_23_Q6#CbC}2;d3!ztZ6n z^=twh4!QkjAZ9?hyv=p>fCRjTAfgZZjCX`0s^k-vTn0XpPJdn~;S3yPntJ%a7>h-% zT8{+Dn#!~xYHQXjz=7E}q|y>#m&6KH>E~I+C`4!+AB?LhK|r1g^_xr)1$cGImb?%k zlY#oqW`wS^{a_d@FJpXQS5OUT4>8xUEI7W^F zs*ff3%5YRUdp;#HiLTWBOs~}_~GZ)PaYth z&BFj7A<5DqfUYVh46_3sWk z@L!x=u%lk*XXoB4X7XF%y_N4Cnz<6Z6yV+fHcMEClio0`HfL9y0V+XbY@S-HM0$MS z6P#cvfJ>n~_s&4gEDsa+i4_!dfANH3Z8!&m!SjiGLZY+7_lPP`ko$2!K9n1G7)=5T zXa4|LcUQg9iP}yM=R^3))T$PA-yazS84I!VFN~rCpodepI>%?EZxtXY2i54AZ)sFm zynpU+$V2gU>UW(*N^g_L8M0Pp`|GS^21^)Datz3IK{c-##SdC(ow!U&t>7u=)(F8} z8?Ronn^!ei#b-R=op1w!9v zOKGx44`1&ez_cO_(R^HB0tM+x*^$)vAPQLPL0KyXpGS-?^yx^$ap5szHm<7VhxafS&#t3I6Nnx zjIitiSo!gmmev=AzvH|MTKaTwUpVlcgL_-Ayk;-8v^!(gF~4HSfyv{ncug6_HLn*T zl0!Dfzl=>Q2bF*G3W!P+=lCD%984euIS+u|a-pF%1N2N8GR^Fc{>&g$2vs|$k2w&- z7Sui&BsO#+plW-+yp`c$=SBL(ZwW06_5T1&22ThLapq6l(jKqYHn9sQRgq<2MCvU<5r;Sh}{TmJyK#z-1WrFKvIynwWY zc5{Bb;KKK-WIB2CiV#s^AbCCWg((3gpmX}?3LNwT^l_wG0zV8}cz5u;`fbgHXltPi z)->WB2K;l5?RHkgG2@M6AuJB z0-8qn@s2L7I~+e9IqAQn;UVg9{Ng&NCOyY>uW#Px`19y{$X*7Oum?nBuu zLBF1|cf~~!o6w$4uyLaWG;n$O{9p)j1dMfc_j$xdjv)u2Y`x@uU=WEk?Zt?*QmFBR zk;UA;x03n1AbjGAr>Vi~5V#By{ag$mQl=qJ3ANT-BPc+*(ZIN_kjSO&PyNBLtQ+oL zLUVwor?Ic`aMmFb8j+5&XU=&K!s(62lK?NqtYn!4yWy5fi z6T=-A#XHUh@D(B8pJernn!vaaY*LH8U<6jxcy7iYBy&^^p)1Pr>lnI%iPNsX895!E z9+XZejOEDG0(JB25mAB>=(wnsK_&5mY05|+%Y-G!26~5#LYy%0xvTFDv=Ad<-ZN>G z)AP&d%HU)dLSn5`z~8^Dp6P7Zyv%tJ)vB%zay0bO3C0Zt^Ye%*5ycgiI(30AfmFhi zcjpA*2okP>`N6o7J~yzR8K;90+&(z*T&;F){5ho|1VaE1I0=)<0w?XjFeMd8UH!6Sf!IdVh-844hS*mG2iPXn z*dKTu@F*4DkNd_1X~|BM;rq&sp@Xg`<;p;srjRz`Eefg7?REOdY+i^QC?0s{95ow= za2mBqP%8mYuCI(g+X)W5xA?`_=AK5!#KQQ7q|x}zFB?y@`oj!>gHbu0 z7*A0GMQiK6Fpb6!1b6Az89>P}c6I9zTR=(-p_ZWN9QjW(DnOdNj?cUx`UWjT4~!>i zKrK9;NBhd~7ADf)_{}gNDB2_O&I=CPi?M!En75KcfQ~10)>wL`yaKd;1of7oU@aKY z{{VZ-m{J8Ux%Y^Owm_Uo7yi}@1j0Ekx9^NelSm?T(}NCa2wE7wSe$X|vq}$~TkkI+ z%|4Is0Ehuv?-9BvWdmYm_N)ph>(d8q3M6cA>zp`_#h@K0`pZ8+6ZynkYZHWif4nK6 zf_)Ibc|}<&YiO^{mhh5>ih#Ry!*NxmL4l9arj*}9a-;4-RyE?1U z=Oz`bfIH_PPOkl}zl;c*X;+7ITe#ZtT3r^n0`pYK%csSNHof~!hW3bv(NmtgMvrCY0(k%V?zzL57M08Iph&_q{i5)&NB%o2D3q3II zLuDd6SK}LDgIgj^A7(;8H#Nk*UOuq1x-Qdjd4=l;7GhqGzXh&AsxV!c>Z~hi5tD+{aj6wzQ&E9y()o2>D;vxf}Q{BJTGg=h8o*X+`W`K^~PO;90 z8BO3FXivsSv=%_UK16(ToYJm!wL`cDw~&E%B1ELn__V}brEv#aoL|e1*r9Y9bhO(t zy%77k+QbAB@O z?O+bV-X;v+C@vp;84#KVE0ep9KCTAGhkNyu^cAYNv#9#>o3aHg_HEgpS*xY<$EPOu6M&qM z^Ye^Qoa`uXpBZzjdMm=(I7I@C-ijyRj4Y<_VHtCZC@AYm{_@O(LAm!9@r+RjI7Xwa z-wGQD{WuriMrziKm{qWxosLZ3JvDeTE*$Ysyf_K!ubw%k)f4uSH?I@odEe5W5N*b zIe(n1nrW~*`qpu=X*Rw!-YJu!-x%OLA)K51X7T`n)qiZ^sPEdnp4-UubZ*HxGQugh zK;G_X3I$pob?C*a6`UONfb0{qw}dZe?*dY5y7+6i4ao`y(0u#X^OGn^ZIqiotZHLv zl>ompoaLc`6b+9q_``(m%c%>C9;#~hR3V0^o!F{&eLKODwy%SDx(fp`@94_ZA)>szZx?O=%LcRqtBFJevLAc6_M)Nlc0bpQM1ccxgT>Uh zcrZw)VDPct@@!QRfF47#69Pe)>&6gr zgc2UPd*#FlRCj4ck^ErbAPwkE9us&&t6C;4UN|PdB}}`OTg=& z3{6U5x{n|8j(Y4R5vN~xpb^=K{rq6)9EClSbaSjgpsE$BxAbCIBByHZJ;x%CRN0X0 z*y{tBla{BIIKmo5Tpyp~5Q}5VrkC@QXl1e3@y4;QC;<3u-~G-^MUg4L?+7r5 ze6#z<5H2OuKb+fEHY2T17^DcX>#NhrGT{RmHp6Y>d3&xHed#)JIGR$@%JYwu(ReCr z5j0q`n>+siyk?WAP;?kpDF`P20N)t!>a$?5>&_qyRrwZr-TY#Kf=J7~I4s3@cSfn_ zDIsWsgD-40qvmy|BgHKg^>D1wkCXEGxhE7oeYE8jCHkOod|`1(2#6FM*khpO?|5Kq ziP}B>xbF>Y0+CPsIA|hK?qAV0-J#F`h9my2v zFI3lADsIGUxDNMx7}8)qik5aBxWEDsW>A9gE#l}!3oj^ib$h`M0{yV9d~<~xR0pPo#X=Dj3OQP-n+yKP#OcWbl1LdQA{C`)$Ew}fP`bqt_r}w z2K+y<>BJHYMS_7N}Ge_}jj2j2;k^)$RT7294m=90V+J z?+;r_Y?thLn9d_oG`(Idv)*np4G;vK{CsCJKqA@m#xtN5wl^=%C>TWnLVIm8z?5hx zyG9XL>kS&yps@#&WO8MqnA8amcLGJKpM88~=aqtg8OUqD;$t?CjpIR^in~2{);l#e z1Fj4wsxW40lgWCD71oq z^v-eyB?MF1g#)CUZk_0G28E7h_kXM_-UJ7StlBL|1i@lLted@m>6?y6NSv>F*Vawd znYey%muPis_8(Y_ASk!j9Qw_p+dZw1-Yh#z3|C(XabHm+Kh?!;E|FQYcQS-Ww@PHE z2A_wcoZTWyLOko^JgpC?@9Wk*()nBm`o<=L8>tK4-mtBCnjAWatSQ;;!)p}5-)QV#5TpfsXGYsQ85J>%| zNn~U{@4SO66w;c|@v{QpYW1efJjgW&UOU1-`#K9+c;^eH0W=%l06NVxwkdLhvUEKi zd%#{Fus_}+vuGjH=e%eLTGqNg-f(*l6SAhEk)R!s2FKP*K%p0Hf!{pftsvP~74CD3 zruMw`qxFL^%QmNfTEt43Y1?n`;fJgRY+IigPA95wW}eKFf?P_VfSnlOuv(2Sj(+oN zln+opgyhKX7>?aT>Bb}gQtSH|G5|tFU(0yFs@`i6JN_m(n3Zk5yn6MJAp@wL3)Ze0 zjaUfwBfal@V(2YI0QEV^@V)>|yD&vA2CK;ZVGXHcS`U2q*La~r8Q26(`fdV?(t>Ec zzOlMm!LsuY`;1;D-bHZkesK+qUj+NbK@>+V#XgDmoInS_>U_F!aaS(XI-iUcnC(S3 z0C?fRNVLNM&>vVK(jkJbpR*EEqfoXCWxxS+l0?wtQvCCJf3{?Zj#4I#8t(+MPQ}#k zc%0ZX&phy6cKyse~KDvSJNqN@nh{{ZeJ ziAQSQYwI~`eqj3g$lj)kObW!duKMix{ASqqBhmG73Jv2RHxu!JfvHrKpUuWJBY3U< z09cS$b0i*q@yt;p`eb9PgWns%6rm9CNta@DXA;lfSPU8vSJ|AJ!!c~LzG7=wEdd~M zboI-WIAF3@2l1Smg&bP}Iuz))`o?8-VBb!E8KwxZ;C6e>jfHije119cj-~oYbNpn0 z1d0@#a2(l|Ry7L8ns~%y3Zx=(zWKvGw4-|O_ttD1RSoGbGiV)-h5rEE;v6MAW0|w# zATml<1IN$thwD1%O-1wT1{DR`o7VhfQkLKo@^8fRhzBE5%^%;1hl2Ko)OF9T{NRcN zBWKgB*)aoeiPM4btCokw$P(NJms+?lCsyC%JGzSB7Y!t!@~_vdIjY1MCx1B!1HY?m ze~j3RR5c!ERG=YQauE~6;*Z0fWZJS`+-x25&lyU{5)3I>H-FY74dIPjh19tBGBZ)f z4oKkva%i@1p_nSz1QQT$z4w$kKy<(kfShxHdJG_V?9b}}0M)c=$L!$7h^SCj&2?n^ zz$bMs!m^-^esMt+Q9~d(9N4gIAqO3gZyBRvhK|rYzkKHB%nL#Y$Ea%sX6FnJq5R>ggsR6ZbVIEr}IGZZV^;*Z7(>mvsK zZ@^)M2Vz@Rf|TzJj&v@ZJQkb&vbN0Cwh%vu1w^!(-hE;?4I+0nUP9uA=SAL>a=iTJ zuF)Whj#I9C$45Er>YtYxP6!UWNVzPyB>-$}T}kI8&d{t^YWM@Q4I#EV8?W`n!LYGc zlb!f-Q@)X;00|lT*OZ{;YH;cCiue<_!*6qAS$t2A_Zx~ouBB8y>*Uk}14vWxV&HBoH zf%R9$@&SNL+5DHq#B{SX6!I_YHjt5^=L^RAGC4?f=UQ^aLX>O`#(x+P$TMuR{otYw zsvhX&$6}VS*)VN9-v>BA z3v46)I52!|G{GDD?-JK#2vR4PyitN^)jM^@biovKNI#qnD1h#ed2n9hKnl)JS9!n` zq^R(C#DJn2t@F2>M@EXOPWm1E;VVY+Ch&Ljmq1Cga_oliiuMS47v~q4kP2?6sm2l_ zjnXz-hoWd9TVM9#&3!7PQN7#)l916tG3>kh!=;HwEiczO13(oAZ3+JX+(^3R({*A2@;l08|YhD=>tD14KFRU)B-f0PaM~P>Ct~!ReY9 zDZA&4ui>pY3PtW$-NH0*>MF(f?-Gth;tw$E45r2+SKk_DL4#v_h<*CRA~iKWX>dYP zI2Ee8W-3Es7MgA-mIJ3Es9D*GhKWR~*hSwsD&tKkE#Gi3grZSnXThu%-Pj!WKhH^X_r5}u*PGOmFthVP`n0o0-$x#Z`Z5C+OEI>tchUeM&c zPVrm1L0af;C(W{aLily}ff9@*5m(?H=CkDmjyLVN@{CefpPpt225TjK6P*e9%QOuM zP*Q2lC81e@*!3@W64(T}&@2`0xnW&=me%z??3Y6CE z-nq$xOYQ|mcP=e|!ocwD#JoN+kOOFC4u9`BArV#IvGFlGOQPRre;6AUm&2?1!>dA~ zItl#TiZxVTP7-xy0}%QFbH`TV4ar*XaDFBfP;5o#dQ4b_()c?E_4vw-F9jEa&p7PW z2+kq(!seE4#&Xs=;*$y{Gl9!A{9qzRMkAE`TDG_C7OZ9{}txIOdiv>(|aHaM{$l zIK?eQ)B*N!kZ?mpIr}8X2vQ;Nj{gAY;uD*2R_x79!?7%R{r<5k3em{(KkhCFU|cSR zo5dRA1dv^sC^w*KJ^XQ#m4a1x-_|H(bbyOnvpYSLHl{9xY>j&6;fj@-Ep+6h_lpKV zmP8Qf9q)KJ%86<{C72`QoE(n>a(VTF8*WCPd+~x)72Hye4mtV8QK$+-%Xl&|&1iY~ z;}x*a2c6@hR8lIB^^_EehR6LIh^)18#^_)BoZbYn3GIIy!Uszuhn7sEZR|PZ^^lZ6 zXJg=Wt|{E8H9H~CJo?^oS}v{4{EqFwe&L|o&pz%&)04f40i*t~k6xeyRy?=aF>hrU z4nf(1>yZ^z53}=#sTTMF+sHQknLA3JL-1^`I^H62+z6{xbY*;XrK?Cc$vi_MJfw62 zBWZl~ltyT}VJ*?+^@cSvvH@ z()p`9s&9*+h>q)V~!?i}kK zD|@RDuJ5lV0SexP8@pzV6cTAHTfJHyTym1&N^0-FHzpUh`jH$SHI>F`*~kuNu}=X> zB__Oj)*3YI00E)kaz06Pq~-CWG~y!B+2QJX!r_-$zd7q!yIhB}8oyYk>rc;v9=S_( zuPOM3bfE_K`Tqb|CVP}2`o+PP!=?s-^Adh0FAnT>Pn;R0Q$u=jfS_cdv(5ym<)JXp zU4)9`g%Z#plljK+-L@ZJFRZgi<2HElk`oEnI-sYhh6PC3D2AiJj__WafDNilh&@78wir_Zw* zW-62yM`DJ27)DZytskvoO+G_WPdlHi0s$$&Jo?23A+ozVuNW~M1Ge#mQts^aGO|eN zoE&q`CXEk#^S2WVbS3Tgi5|j7S2XI(9X$hXx^EwhBpVP^A%7V>yO@cKocO5_`rt+2SmHbE=cQ2Pt(p+@+}Sy zXX(u$P*!hIo{!!s7;>BkA51pS9S-;Me(*URe8lg!{j;CqbVBL(e^`rjql1mZ?K6i( zofH5*Q-6%A+-%UL{{YXdOcu(@cgm9#&Y;^l9lAK{I{yH0JnFu7-m=1CZ4zif!GsOC zw1&<++yMR=5#%SooMI}0BE2uDFWx!}lnTbSeg3lXZUxl5`uoisQWIbghZqP6-l259 zJIRDisngZ*fO+CF=0Da6fSML3LGg^}sVpSt9jaGnOVD5yAdRQWcP_sfR6}Uu zvG^zB8DHSg?T7V;041kRmtV8-gL-N=YSlg9h0A^Ka6Dy;sGLdmmhT@lrQ@ja2>lrt z0Z9N>{{Yt)WE4a^0`9DPmp^jfPEAXc2iIlM0Bg zc_X0lt@qX*D>_jXq1FB{M(fMaj!XnfVj48p`oi3aa1<}Z{&8#dhUIKs=y3+F<9Dma zlPtv|UzWDOJz~p4Pc3=t&%6X;-5v+!b%$0Q28F)OxT&I^a=g4uN{dJeY5e44PiGr9 zg)~-%q8%K|##~)A4lmMAR3}} zJr%&jgpbc&vzM}Lr;R=`n7~GWuO7*R@kNJ#em9onP=KAl@r@ghWD{i{crNH_&>sHV zf=$rrrm*j+N~Jsf%rbJc)~=nM=EX|ybG%ZeupEzO``%5c6&(RS+(1%V6*(GyCLVw? zyJZvW4@k5+Z2Q;qmv1R>J^ne%!^4TMztfsHgc2_!uC;;J0*9oY6yw%56d@6`m+vL& z)E*a~lO)y10rcaKc!wf&r8M(#&_E`@yYEJLg37~~Wf@^R3VG5)t1*58c zVBQw0G&UR$7;>ZMG!NH3Tm(b8R6%yX1|E*~rlnNf6L|CA5E^biFYi3kkON2_T{?Ng zL}j&})SAac5m+L?!Ff8~B+T2L5U)BnB#s5oO*6*J>m00@0i(brIp6OO#6T#bRe0gX zG$tq#wS>F+ags)|P^;{>725?Vi1|w*krFJVFNC-26M>S4!{o)Sk*(My{{Xjzg^`zE zyzqL>pHNc09P_+I&=mnz;c%GP77(MvIVWE78eEG(t z(j<)bIevpA*t$~wuJB-Hlr#WKx0fhExXOxb6BSf|q`a`+kDMxdN(5Bi_0-9`uT0K57_(Bp<1_$Q^52#e9Ci&|mb6{P# zsCw@nL-&F;+}(W{Q)Kr)Ev6$Td|^h)slDR^m{{llbE}Z3j5Kzg{2RbCX#EB3!9fp~ zA@jx>a(rFSoH%j;xcqOE0u_3Yp7@`5atdj6@5I0{0bup3gmIu2&<>c`7E6TJMzl|}+m{C(!;Eky}(uSRHR1}!*?%<+;(z8DJKym~jA1T+dRNzz<) z$8ZR1d|~?1RI8-UMIwL?!VC(bVT7ncY_ulhQ2EorHod&Yqh)L8nw~dnuP=G9Gy|skk+&b*! z{9_0mkVRK##K?kL;9ie9{&195G(oz*EH3D%;zpOu458}AmS5=JAdzhdJEHn70Zf3H zK;Zh#(nt?Nuf^7KbqJ=Dk8WH<1O(pB&;DX$!3T88Jj=(dblPr@4Uah)+5n&vdVFu3 zy(sSd3V0r|?}JnF{kX$Ubyl}TIyKL{WoVPgekugUIDi0gx%0*sZe=M3!Pox)aEqED z*bx`x%TyW|Lw_9N83<^jbbJm&qMD$yY2|W_4&php?SC1r2JLjUO=|!J>TSq}%$}|# z7BM;yf#{A764#^zK5zbEtd3TEXxd&pWTZ=V>1%II(cs1oQ%o*JZ&`d+tq5$zNCy=O zHI_RBp|pOr{APuLO94ceUA*WbJm1Qbe2x81*ZwUmIj5Y{tn zjsbiJz3&-J!j5`t@s>(n!2om5rSpIQB)>3+7o1Qk1`2tzug^KtMRCV}J>ezo?&Gj} z*^~g2h<~S^F*OaaVl}$+vBXAnRr7oIl(`KK%f?RXCPFXo8m(~X>YDkOG(F!-XU+-0 z)*2>{#~30)o5X8x)R{^m$Jo>SV`2`IwvhgEAydx2myTvDRWOy&z8#$J6l@4Q9(L>F z7^{JsMc1_N0^XTAFA}@)h~WSVw%PL>7|6QXmt^O26;BYxM)Nn%i*}7fMDyQboKR`P*n!E9%Y|68LN-wH*ZfK zvY{|F)Q9`Ux&Tb7t)EBd6eSg;?!PWDP>m2B3IY;=%Q_Y(aIbaxLsP3T#QQ&RE|f>~xE%=K^EG=s9_L$W+LQwjQa`Cj7T6$VtE6!HMVBkJOcVJ#%+%j5P**RFc24h zTc>0|zA~W03^CH3{bq>qC)k{C?ZPdUK>*=lmz`skWJ;yzytu_K2NXB(ZO7B4H0Z}v z*m5!ZZV~S`GHTT@b?aNbtz;u0NV-{@)du=bQrf>`Z zmX(#`2tok$++wrJmsl+=aVh3Cv1i(PbeF;}hbvDik-JpEbO;{d4*>PMV* z#8`^y?+x#RZkpTW!@F%v(O)m0Sb{c{KF9gNDA8@O^n6TPj>g9)342k-NEl&ML8;>7 zBw=zx$amI85jMj(k68nAT}L!d6v+Y#lBb8upUzhy1lOH>7`C&#-MR+{`ed3zX(P|W zl0|kkJju3slLLt%ZM?8Im8016JiTAc%~jdZ&JUhk4gQG})VK{2fB%P>EpFMtab4W~4j>lJ&-_8%N zG7U1qc;kMuita5fIJ(yLf-qc{$o0;5J*uj0;mghn6cC%V1>*R@kkq7W>)paidAnPB z4%fFg4pOdT0r)?Y8E8{yLr5IoKRE`_4+so?Fbh^T0E_AKf&Di4m^tExzzJpB ztfVg4fm;*L`pJm=`Af&IDdRU>)|>!u^M10T`)Zolb+yI;1u?sMPaeEEq$phqjN6XXwU;>&RK0?EtD8_z*kn$c`@pU0Ko>9k^MxvCuJ-Klt1+-) zwacLodVe@LPTu|SKAmBS7zu&ivx;-hBWj0d`@)Wyr;WuQ1iupkVM>B zr6kmOQQ7X}@>yFB&zZb$-(pe*s`D0zmF z@O#QAi8T=3`Et6Z@rXjszPrRCr2_Y4^@uKu%Gx)_Sz!gTojkhd27v1~F2294JkXS3 zuMc=9fLgrR`El&SQ2Ag=7OB#t#I&H~982@N^MIfLL21z6FE|M#6nEDkcmDE`CoJow zoNYCiiL_p7r_=F`fiCWlcR6>zj8%{*A>e`HV}JtF3+z?$Z|4NSh;1O~XA|>^p%5rh z>EB*466miv7_V0)33DAzQ?d*EV+@qRzHXQCtU0PH%2y+{&)x<8>zGf6p8ez*N>E)u zBuUR^TBfud1KSa$@<<5-oqSv-kVGc8C%!Q>Ohuw_`_~!37z5O7*PUcSlxmUT(iHyy z<^~+%BdcS*$o%Igg%RAR;nr)%!=e>GShXe6#54FX1pDakP4B^vA0hBUKBg-;6bk@R zdGV}ZyD~ybB&PL?MhF>N$Cr=A!OIrS5I>JOIdKv4ZVl@a4YKl|7380%1b9NX<~&?! znse}>=ylFR6krom+?d`9D-d}j&N~y;p`v(wc*MyM0Gm9bmY52ejQ|=Tb8$5}0JlI$ zzi@M)7OCKv1hrJFA5fQgeWEmjGzX35)+Nzhz(g@?18fp<$hmHww{=8(o7x+#D22YmG)_o?0wE7no{&&Geg6P% z3n4*sfb`1Vmw1BJFds3LlW4+js>6}E(kD_NJi=Q2k$8CV^F2j@iHeB z2?c7q=3Tkx1`0E+d5#oL;dl*hz2l-#jO&L3usLp7$l>-7?+g$dIwiVt&ET;j#SZZK zxfNt0QMR8)k6A>ETP}957V(KFDELl6)iK@;d8KUCQ#)6)Dl~cSADph?Rxl2{nW*Fo zsyRLjmi5(uB8d0ix~4P@q9nl$&A)htWjHSaKK1Ka!ZjKJ${n27tX>`3_$jZEtVzU2 z#C7m%^NViHsWdXXj+yn601#;lCb+2ch>#2|vi=xkL!-AX_WtqUn+Xj(4?UX2xz&;r zRr41D&d2%JUAw~h0P7+QmTMJ4dnG2;a5yQ%v8mgAOf(pnCFj5*QiC?xr+`sP!mf#FY7HH2ZVZixkoiI9y&6*f}ETq>+1$qtFhqMIxZG~ zg9z8b!!I1*jt!j2`KUkq!e>$oQX5zP-V^1kUOc{6k6OY2K^TFQdBa&ry;DC=p7A8x z0|-zl)(#L@sLFvLy<=(&Ld1PBuwFW^5;09(^13t1kLAjK>?`C!`H@baCWKc ze@stp;!Q%|pYH`;$Sr7J&t7+)4!X}`dlM-kOshig^}GPR&dU(@tU3sL;GaC1*CaFx z!F>E<1sG@q-UstUu^6}>k>`j9bR1X zlIZ1pGpD?+=nVj#Uw_U46W2pH^wq^>3Zs(_a6+87j(_ejVg`goZ`XL~Q@j#RUUGQR z62?3S&K)aob{^2XJUHAj3spa6Gk|Q^B{l4~H;3gVQ-=30o#Pam0dGOR&p275f;W7^ zBdrfx#(<1Kr~%`8CPk})fRe|+bH+#$4$-#`quvpW(9l?m*PpB?D9e>L(c?~xVGFB; zY9t=Zh-5m*)!}_^g8v9g&LxYbGoPgs*;)xF@{@@l8(BUBT;M*fW z>HuJMNGv6A@bhL8Dh9c}y_mCMW!l;3@qvjOy@b2tUNKq@%rp`K{AQuZU3`an$J>^X zx21m=Y;222LGrcuOkH}dDrU*vF@mftZ0x66!EIVSo=1>2Vp!=N}nw zuJPNB9Zq)OKhotu>%+X?fYDn~j|==@2y7++ReQmylfZU(dHHdm4FtLY_l_U>nl;D` z{FrT+8UpCNBd^9T!v`y^UjnQ2W&TNx0MPxT>&^tvVR=_?{qGhM>@>AE`%jl2MGnAtzt7o)HeW_ z)}A$vXs;UM4jGwTj$Mw`r93d#V5Dqa%i-1zsA$xoI^IlZ1F3xHD5AP2`^2PEDFpOz zJDO?;JWtLZaR~}|4>&W{C()vEV?D&QXXE=ErXjE2z`|{aeQs}lb4054C(nMdY!2}7 z8GTc{XNGSRR0Sz&EqQk{eJqBM(jSK8c=4Q?J)c>!=10M{_k;ZPnn}c%))OSf(Rg|H ziB!@g;E0+}yc;Csr>%725~$u26=-Q)oAHIKGST3kG7N_>6wsYy`T{Kkf^d7lvZDt8 zDu1k|WO}KwearaApCR6M$Mny?;7`wtbe$MhXiowJ`OUy|5{NeIzOFvimEhp=E@%Rj zkV^OmZ+KK|hV7@HIM}L!p2dGy5}TIkNCerAi%+1?9tv{gB>=p$py)lda1icnX*Z?U zcN0$y_@zDrSxq4WVCPe`*Q|BQ5Yc6Px`E}!e%6k>tMYR5fR{ZQ3aj4S93(WU%AGY+5MmkJ?}Tyi{ZqX6SAW zK@p?V~<06nzA@uPb?dnM9ERE{4AWGf12y?dG?({o*4Kea>II zmKh*6quBjpbns~D#q{6nI(2kZ8)vOz+I}d4K9A!x4sMcS2hoJLKT3D5HvX`xf*$O* zkTAdp>&1h->yc4!gOcWt5n^pRCjWpn0!UcaHjMLUqc~_ZYK<5VY zv7v-tjqme@%x=!r(|!K{^A54W2FjA{BZh(&M%&N5yznSgA^S!>!01rWBACT zU(Cg6EQ*VFFHelVor1wgVFb(jYCOJt;;V*0RIe}bn`GXa7XzMkG1bWBHjhWZbA#T1 z8V6+zdddRW?_}7#xC+WesW?%4=hhv!K=Vel00?~CE>Q3b-Ln%Kl{ysQ+ySmay)L=L zczn3gE(F0y8&{fPl2?b^p7E%(5buO_ILfM^?aAYv<>Q1>i+-lA+zTHqv(ev1iegYi zcn3Dj8vqiBMveUB@s@cY70M+}|m-a+ctbneoMd&o-TD4w|S@80lY$+t;mN7q@!g^!mI z%2xork5gZ~qoE*m9*c@=!A*(0)seP}{&FZKLJAlbk%3G<7x};m6KH=U7>$OY+!If7 zaB$Rn102$QH~GYVMcMc30U1u^CeZ7h;kkDP)5vQp;MJ$C=)k9vseAW@`4a12oTCRF zVrj<7fttumqsiZ_aT4)c?f!8n0!vH49O8+x0ZHX#e>n-otP=8kV9?kV2~pqu&Pk=a zA~iwUKCwU=k|vQ6ZN~J#yYO9pW;)izXz=5H{bizLj{0@0Im31meLSZZ-;5&JPyl$} zc+v4xJUrrYuhbumqL424`ZBJV3fViRGFXZ@Ui|!-wLufJ;~rstRdEnCghZQF`^4Gx zpsTd&&b{D4YEakb)-D=Fh;Uc6INK?s6L!B@an(Rqzz1I38koj|y1y<*l}#-xHx5$e z@~xHJ%6wnW0&Q${=f=1=*Lb4J18Eii0IbM0E1&=fkkRu@h;Gss8{Wj4;&h zpzS{H{TM`KEZpz`wOfT@g~Yj6d+5ckcR8m6<;8{@2J1`rR%Vvah!>LgysVNE;eRd( zgkl@%QTzjja+>Vz->xxBjj>dF2mRqf6(o{*%+coK4vCYs;qtk*O98eG2Z(cn?~gQf zeQSKUE$G0S!UCX|Z=6s_01!3_t{ZWOP#_%qQ~lg@M$L?Rfi^^L#(XMs)z2lxTIlcu?Ae6=QO)IAX4YLJxpXY{mz`SWw2a zpS)TKNywweX@QJpsKfFXv(6HD>@#|8;}2jU3Lr{7U?d(VcG)iI8$XP!#9t`&d|+ZG%>$tKvw3I)5fZgJ z;QZiPXoE#{_pW-!qJUHYSbCH18lcgLGBxbwxFScM9icbVyw?v6x%1@Q#H6I8n{a*!0Y$Gn^Xkf7H4*(Z#d$nGk3i1;;3i%CHKi0^nh z)-1aWuYtr#S!YDyzjz{`QEI)yQ+Sa{pwRWfx91N56>;qg@yq2O;3M=Z)On@UuhN(d!k3 zNl174QN@dDZhV}5Vj*6M-nZ3bnku6$hePmd>kCqzwh?#oLyTctg~|g%@rELN-qs(X zar;&0LuoB%SSh^0R;ah{7@82!YH1f0X)Ja#XQsLC;V4P*01(>=Ihdr5oM(V>$LY9S zU3i-CJ5cd)VJ9V{r+nxe?<#r(3T@rjA@hRS(ef$}))0s)uB4-GeNqqE-fHM~hl3ON37{gPp^7P{wL4c%}Up@@ngC)@Gc(h*Xqfvu{t;I154rfNbA@PfO8oIRb-}b~IUIMevK-`o8 zP<97&Jz}Ebp##*8`N{}HiC3}LtN|u~B3@bN2|;0dyY-d;fDm3gKUr1~OXcsrF*Cz~ zrRkgu#V39WLA~6v5xD}=6Rfaovt1qxumGS{^1$q#Auqf*YuSZzS zsm^H-2a7X+i|f2aG}08-7LW$cz8_`hC^wq9?0#~|dJ6r!n6*BL@9}`G6xS21ckhrl zXLyV<8@Mj-)-80(N;^{Cuplxy67YCEVifthzH7jSo4jplQ~29Q`f_J|vGZ zr#61_RV~HaM#gO6#?iYTzeYGUh?+pL+|6S-l7pw!!ZC@h%VFDdj2BCyAe|_6dcp0TgrJHYMY#Ojd}nEn;Ohl7XSpCJp5-hVQU-TbDVXr5Q9TV_j|%%C(t+Lb&ePh!0rkd6r|AyXC3*?F<4Yf zcI=Y)#JDmYXdf<2E<`3g!}JDBm!*0UXaALvC-XzKyAUrZo`9I=++saOEaD!VzhpvUiAWC`{-P(~&sdaIEjwA6ZE& zxKMZ5MEv2okBYZ*of_i~s{|k?jv=qcaPIQSArC3r12Yv}CcxrziS&gr*6$WlV5# zo8vZaMu3jtIyZ)y2r9G=1Md>yG_L#S*BB$NP#iCe2m%qViFM_{+*t;bjkRYkDJ$HK zw?`KL0Mi=*+eDW9xH=ikRB&){`NIeYOF+UKY&&pG@CYhw4)tyGkJY6BGz97I#um_; z8$j9l3C2n%2@q4Y(SMgGKPjwD!+iCIj`7^Ky1qAsR__aON%+JuW}5C<&{?k-64y~Y z55`qT_TW(8!w;!RMJewTk3U>$+*Vp3)u!1-oSAIA5jza5Q4VCl53~U}_YxHQv zDC7Z5-=eNFvs$zw#{3K|aKMcM_3CfldDpikRDAFlLDP%Z;pQ2}2cb0)8ZPONAqH6@JpTY#)`DsB+Z>&LITdk0M2KF_A!c%$*=FcB*9VE4z;R+5 zeSl+QxsZ1ut#NR45|6Rk_`NWbm41Uu&75x)ST-o&(f#v`9ZtldB)=yRhRHJ!J#E*c zjE(vPCG9!d!zJ!cK@0Z3yhs4m^6($4?&jf~R0VI7LBNnY;wQ_4XNfVv!=wEMJuDX> z0`Bmc6AI8&4{mOAy6F9rcIAf-It8eG{@OhHZ#LU_ydLXuiyl-W{JHaDrQ_`_i61k(gdecj^k zECnXe`SXMeviKEz@wejvIlDC-y-(*51szR9Wl&kAT9Z;9qjz{8OIj`s@g}jXU?4Md zme+kb#shArg8AbhES1u)KNuYB19Rg5B=8!W{H{A=9AZ2pv*#3}&@Df9FFNN&**r6(uj9m=M=Kb7q)y7rZ-aYK>XxL&gY@B|wT#W(;Fn zw_PLAn=kZ{={UMKh_FE*N^Ly6ZyUaWF@95(gEaw4zaGhxjYx8w0Q_qVaG)TGs0Rnm z^LU8SagVqj_JehD)$nl4gc~w;MdClb7 zFQ3%J7y#G|aY`?6H_ygV4ocfk&IOuu6a;w07z{gN7$G*-=`!*jCRA0!w^<{qD`+*n zZA=K8*#LZp1L431BXtYr&svy^%VKTC1_1$ZKb)YB_WMRi9TwMz_k`@gI|IZf-#uj{ z6)>D#KR&V>4OY*+yu8k_c7V13b*OcOA|sGp#pri|_`I#91HqPzRJ4e5?teHmnNCi& zfi3dj`gY1~x_61rGI=E6c=C0Nf(q;f?N-;{yb_S;4w`dLuvZlqp9APu-U86iXNBYk z5rj5j`6;#AGWR7BTt?as_u~rIM)VN0>vstd&cIYobCGrUEH~B!C*GytsotBecRruknW@YJ^ge_TL`NB-B6#h?~EM5p9W}I@#sx5L$lA6I}-9 zIOb4GD568I{&0$HRmSNq{cGMqLLI$R_Hm3xZp2x1vp_yOz!G(`Dh2n(yyNJ+aeRln z3F9e&z+Me^yR0*%MO52UuBJ9Dk-p$AlHGd60s;k}DbmaXKoW&FPfz|~T2i??M7($b z>kTUs+M|~`-U)&+MMI$Rat^A+;3ymC&Kh(sGGz|B*EkaZW~c^$<-L2y9``_2QgIK} z$o=+0T2k^F8ipPm}j{0orU&p|~`@?|cd?Ns3D)APGXtPu2B{anV4}9PCfW7J1RGz=v z3{9t2oI1!5l)ACEo~_@kSp=F5wpO`rvuePl2!Zi-&v?p!hJC(kZZGqNNj)3$oQHn& z8{Y(P)-hPYyWcKVd-Fjg;!q}4%$mQ0I%Ozm9N-@dfunja;Q5N^viw6e`Jue+Uj_kGDaeG6 zjw6UmI?)r09bk#bL81ZiQ^!5xOAbTHvOk;(MW=8qI0sm7K9@w?CyD#XHsKphk2P}Y zM0Z31JKi!IRny>Uu4V^NB4rUN*S889aRiGEI_L3+-DJ>F7op|&!3?mQeTlveJbJ*D zhI#W6#X7>eSPc@&=1Y|E(X=QYrRx(D^b-0 z=~`$VbB3pJ)RT!gPIsM9{@4XP-{&HJOYqo^>#2Z1p(uERW2oTkF{XKY`I)NQlcIq% z+TjCrpm{D!U4cD$2U(`%>&Iqpxlk2$=&-{a^b!Dhag-FG;=0$4TfobJHAMsM@75@~ zJ1>fIToD6e2E=UlE=fjSqT;<HM1vTwt9LT(6B2BPd{JA z02+iX+i`sSWNh|t>_Emqk;*UDT!{9JaxL?|zPE><0n=7F#&zOgkrlG%;}}#kv0PI` z949P?fIKE?VP2+D1f#yOshPq_f@w;yKTZ=+UiCh=n}Cb6x$6{0$qFN%&MFEoX0_Yi zLb9XacQ7G;n9621TB0)kg_HQxjbs=-JL)i(4mzVH_v{lhfhW2!YT==2KZd6A;AuVuO=Ljfl{DZzAGz^6Qfb=*I45DXVP*%mBnNRw?lXVkpj9G zLHuHL$=wBBzZ1?1^cLa(m*?||-5UT$VD~UP&CGjI$tMvh{p3dybwk6mXVx&4ZpHzi zjd3x%bA=(WJjuVt73)B4ZKJEc@{JUaq-MX~Y}{Z%gD$*lSlRGGDq5`U-a_qBI#-9# z+|y;S2rHk|#9}T>2XEI{TuAABhw^=4+1eHc#U4@oV^&LCjqLS=W2y*nZT|qiaVuht z5Yf+lU<#*|M(g0#Ek&;gx_)Wr0D>Ie9M{fkdAKN-f%*8r{hCJ64GG@z_Gmr*&#mI< zLT9QTT^Kll8c<)~T;hl+w3~$3M)~6>87#b^c!P~p8Ifp*+Z<-8MLGh1p zrep*FdD)Z#L0+LC29AH}l2R14UgSTQ0BPKSg;$ObonSF)>oVE5)_K@NvDs_j&LtFm z6%HfQ=Lb0hl%}{~AN0UFq0a|B=}z(}XeVG8AU-eS0!E=~gQdK)AT*RHrbE6a@*(PE zS3iz$1q}xvRp%G83Vj70?0&IDF)uZf(BPK^LJ(8gHTl3}APp*CSo!Hwnks7?AIv8$2F2&fwaR?Ok|69sl^@xhMSD2nY9&pY3F zrV+ZD7vQ|TU^QZhHLRmK>igCb#3&>M7ms)Z0cayyzO>;dgKnCr9@d_mIRc@VTYq^O zkw^lxzccfdkfkL2&7yOG!l4sNc%Sz2M}SA@&Y^k4Z4?T%A@?=nVWn&`Q(-}*5j^Jg zA&~$#?C<7daqo-~KlOwwAa($5-Y)^<$mA?-J{O%e&IwZmdoLHm&CTrz3A4l<>zRqz zkfc1*!0tOd;HbNX_g}XdAazDnhTb3JELycL_~|_e8UMDXEJT$=yR3a-00hfi_tH5Lj*ZO zP`l;kW7#1P(?f$!4hLx$$rx;6>#QL|6hz*s!RYgnPH!)SULV#$qn4THj(=G0G~!q^ zlXa$1RPJa*K4dYeR5Wr5%g>BvY!x*KJrm+!iO>-aoAtcEH&D2-c}G{q8XT~EKlhp& z<_8w845J&VJ56(zRWYbKm?vBp5N)V44<3+!x4xgtiU5!<3-yL0tFT0!I7e+A0QM&= z{P&v~2naw^+vniL!K_#;&F%-gfxLWUQfMDP@o@t+0GH7Dy1)rI1S#twZ9+Q-`wmeB zcU5#l-brYRI6C#bW2)ERzC$;Au2#Mpj>j;uY96lU6ff405i`7y<&rY3ngc4(}*8C5% z7hjVkohI%APcEpOZ~DQs*4o}*6V^4E0D{}c+F-%85cdONuD5`Pz&;D$f_cVq0Hr3W zieJ4;X5&Ci5-AZU!ulr5hU-TYa&up-I+rQ5ZT@A=K?nds@u2)*a0o2NfG(FR76f9J zk6dicf>U)4ypM-A>S(Q{eR{!Tg4Y4i%3XQZ3nqb~Joy98DUSnTI9|h9Q0Sj1;w(h9 zq+PCTfO3$k2bYuh#C;zl$zb;n&LRCNz&+eb3~b&w2jlaP_mKc-ujd$OS_py#FFCPW zha%sSNSVKb*{Zh`I2-uJWE@2EATI%|3o6TIh6hF&5P0|ie5(CmLQR^Lb|n7*j2BO7 z1w03+3}ZmhJQeMb`OBIO5>CWQUrq!7u}bKV)A+$TrhBuK-idxOg$F3S{{XFEgwt`$ zwt6;xaM%hQfGTtWOniWoFb+L|b5BTWZ!edQ4lu0`SJLAc!l^P{q~|4qunGf*?;7!;MWpa}@y79Diwq0-LTla_L|1|xd~dv9rX9-WYrL&U z9c8HY-m-lm65o;LTwnt`h*T33z}SQ#1#z|g<3Nq6=Q(roX1>zoKmuG{YE(}HxSF>Fo9N~ch zoWZZjDqitBOQG>84HVTJ9^ zM2?;?9$Qtcw7to^NYGuPso*$x9R#L;*6iE2A6}EXuLyCs16i?00ZV^a(V&jDCY^O=u_6L2MBh4R z6V9<02eutYk2~HXG^Vjra(I~)Nl_NNk9}g*N2nC6pL@jBIu5Q-yXUNF;mF9iJqY@_ zznDH@%6GQncD5bo1@o}Y3EZ3wN8=`;hO=R;b&{Lx$ib1g?d|%cq zAh6jlP3mTtBpM6ncVCQQC|W^UYEIZZiLNRfxm5R%qhZk}PfY!}U5S7dQ1jEb01#Na zDN=mDtB7Yz1qNDrYrK$P3atk3!-Vn_C~dX7rVh$LR@k*C15}bUG>?xs`SWzW1nU}uX#^Mn{G01pV&k-r_HPnd zT@0z?dUc3JPz6E=`zA6CbZdHmTsc)T0lJ(9{{WmBZ;e-Gz8=jvMN9Z&Rb@}c38auf&4$eubK?ynZxRU+ z{{Yay7|;TTmt1}1p7s+|t?N^q*kPiQp(Xrp6P6_NFeAjN-&mcHG9py*r%#-KIbzkZ z6XyahmYw#y+3Pp(7KzL+ zx*e}L!pW}60Qs6nCterA2YVJK@wyJF(IaLObvvPl8t1ODvF8J(y=B5E_fG)p`J!Q_rte}!pl5w}ry2k)=>0#lV zA9+;t@b`Hqz2!iourG=}vt=gOGbZR;p&8_HNDj-z`7wztstDn_KzU3VB^|8Qkn=D4 zaGIbxM?a~Q0aSF1Zi;+tesI-*tVue!^wQH&E^LB}WT(&GHV+N&UNFNzT%QiJQ9GE> z=7)D36x%!x9bN+EX4tg82MO$6%^lY z@S33~HnO_$0ako4m>0ud)!JpA>BC_!{WGhJz{ z?-Y!{!{oM_O&Bn;fH%T)zVoVqvnz;O_m2gd*cIP9q4kJf0^3D9U3d4CUC=jwJagj> zjDsYac=9-hQdeXL+`z=FDhky2n#wLql^4ER)aM50fP%CEJC7M2HSziI&Yt%&$kmtncj8rEpI21u+&!d1RI{(%gCbxk(kV)s??khd-fCHRBSjL8ZG$ z1XO9^4@GLCB6+yMScavM5FGwA(xx%?1N{Hjc_~3fWwzU~S+%VvH`%M#lX< zFdYso@*5tnAWd1SHPTE~IQBUh2@RBkP4o=_i zE+d2kt;u`PedBj4(B7N7SH5vaCWP8NhiK#{2cBf7y{@{!48Zm~6xXx&h8n39RWxj$ z)=f8szNW0Ha0S7kjD|#X?bH(Ai&%4XkT+9z#zXa4nKtNx|Uko9`)f^Ez4CW19XT zRtm(I_ugz86&bGH^Q7Flzo-tuT^`f-kP$Xy2@xe{CJty6H^-gqy1et6@Et%l!R9=A zxhg>kzR)}!TohYCgl_KAOcT*Rw2~W}%`ByXmu=N=_lsDP;4%a4kv-U0Vjy)A8*W(k zAcB@ZEl!*sp+g1aeNM6%2yls}>ZbLBT@0PoZS%Yv1KtpjcH}M+jfN2H6~s8RCj8c= zuLmX?bAx(~SJQ^uLQX@=&qc*V>0JqSlfQqqkufJ8LJ43N;!_qY6A#7 zo<1vs8M21?+xqJi@oFrtRlR&;-N{lrgVv@>!t>t+>x?{V6(NZo9m5S!Br5b~-7v1j zuN}C1(3jy{|cc1nSw(9Q|QzLV#D>tV)u0y8hhO1$YMJ z8FnO@CLm!F$#kxe&*tCD3&w>Uz} zP#`CZh31KGBb=h>U?5}v0L+^a;4HQMToEPY9TD0d9?W?;M|%dmGX607qCs0*;rG@L zs%+$wx#s|&;k)hqxne0f9e$gL)FzNoT6NU*kkKho9B-eCidd<%HK#|;2F{5ZP95<# zIKWKWg|K*DIc8`iKv7>#1Ts~H!uUt^l9?kC->#>FA}VT|#|-58#Y+^g>2U(nl(DY z2{8~(N83R4ox4>9Jf{wfi3LvqxORBNC8QFfUCwy3%re;}VN+pwn{Z*x8Oeki^0?SL zi4GJv{9xqbtX_~i=Zqs8uzBh{fIm2AONj+*7v~FxqgaJ^^WDQe!FCRj=Y8Y7;Hb#l zk0FYTxec9%?`A~l5INoW36-OyI_Rf*nWBKLkZ_)>_kuaISP8QxDvp$L==;Px?d_$l z9-q7cNKHfyG;$Y%9dT>`HBx@CyXXytUmZB~qJToZoofcv8@eX}dEfVzQP!}b8!0sI zm{!0ILpEP-w~hQInH;ax_xZqbg_|HM?f0pB!hagov96Xm6!EzizaagYTE&(;#!P(iNZYVdvH zAP)efa>ud3Y+B+p<$}sUQ}+Gi+Y@EFmHim%)>1U!&sjB*MO0G#Oir4iy7fPM%7Sg$ z(^dG%2~--SDEF(75F0h4W!B-AF<7cytkLZ8gpgEi5Q@HZbJMIXSJ-Jm2axRXkX)^_ z@K$xN=Li|UUT{77#iXQ>I}^s76h7miN5>xS5`eQ{Sb^Hl-Vvwhl>okbNfAESuW7!(7o|I`O4BpO?20eH-0gK z2sIRR{81$F?;RUJ#16-L{$6lE1@}RyYkfS9QfdQtxw<#A<;y%#Wom{ElDW&0i{9wd zgPi1i)qx$4^y4*Asix5D{{V2Bl_miy_Raj@b5sRe@#sG=-f`3~2#i+MyO{;9i4)R3 zasAP3SMvN}I0h$htn^%aUm*geypTsJM#I4=z9?tXz;hofb(1YMhK4Bpn#YM5x-_%9 z&aicwKuM$W&aosG-LUkhoicdJ69CNwACz%G(NHx`ZYJ^-r%=-LpB0bBBQqr-t|P6| z;ntQGji&g!?~Ds>nqMy+Q8Q4|sRTUnOsc+sRc}pkJHqIk5)J3{Ac6LK!(6vS62%+`tM4R0Q58|u^jPH_Y*%GE z-A%g4v4LnTo6*)1NhIocvouGju}b)QP45SGK!W*gPhgoMB#KL6dU?~AXaLC*6tfVx zmf5K!`7k6)1mR7WVpDt>3O5dt?3KJP#v33a>rpPvD>ds9@-H?3+_nN$9N+;& z#YizpLDK6SJR~+AGft2Zr-YvwuIs(Li{lqag6L58%nYCkhTjHoM^rR)u3vQHkWaYd zHfuqA?EbR-Pd+GSx!0}W)IEyRt!wzjL3mPnOq38`E->7a#vs#uV49#FOn5-~Or;nH zhsGe;X0;>W#!C7RChRr5ZfXHK={#oc%J;Vm+{JT`GMc~MU7|d5fnD>4szF}^!H(nJ zPh5TASA}I=4eY)$;1wz(uwCyAGeoYB`o!3UJ`Qsjd`9RCzWU4ig#`SFZ0ii9?7Qqv z99UMB)H|S>>x_&11^P8--YnqPaN?tnOmW5q;TpSp`@+IB+u#7+5wKRkdPu{KpNw*w z7!Jmu{BIL4mI-*}(}>uL)eiT=?7&UZI{;K=hZ|YH8P72dP`3wndA*2+rQk>1&A0%V ziUa#|eMVipo_&6C^*%ZqCFj6mt)dyCKyvYeOTO%wU7T8Cm(>cY1YK0aXc|Xp+ch<> zSR#{CDva@Ug^8l1*JCa=6Rgw4`Vq4D#ZJwYm`K0jsW1)9Ru*IzcASCaV) z{{WcqOv?ZQ^)>s(Lcl7Dsx})Y?rLNgn8l6=)AN7=1g)mj`QH5Fh81CNrG4{?83n3` zBjdl$SB1b3nj74P8z!02Ci(tyW}@72!F~<<%aiCnr;o;Hq7w7~TYJSccU01z$A7GN z(E!wNqpn9?%zZe40F80f!wl!8G@jQ3fKs44hd(%wySAxTkH_4{hoM_DTkvW>oV$Lq zBGPqqVYKNgs+2RHvycXGY@xrLjAzL}p?rqFI8R)Ibed`9pPU(b+Rzd3d3(Y^2npTv zcvBY^D?+CEd&`L5@Cd%Qg57GUDPzx6@?kFLolcd_DX)w!it|%wCzhctfyT-*_^DXn%=>Gr{H%y~~3zGZq zCcS-D<$C7}K+fD2h;IZ*UWNFC=PTgaHVzTH)@wibpx}Eie)o&@&_7A8PM@4(*VJr> z$-l-z5@=w>ckbZGL}?wjJru?u-MrKR{{UGh5NOw->8|ps8ptN8J_&1_ zXe$;wbol(_@|b5~4^;cW{D25Y4`~ig@km|VDq9^On#P*-DWl>8?|6EF39>HtG~nJ= zD@yTqezHR8Dq1N!nwUYv-UU?)hIo2LPLMS9(Q(MZ;E#L`R7hjy+qo62y zo{zi_Nq{Hg-|H>-T0H{QO^41n0qp{c&FiD{f{rQMLImk|zj%+ONYd3M51M>)lA92G zP(7!Q#tW4tUL^&de9`wY%q3VTPLF!4c! zx{VbH@taRDT+c5=k=KmdpryCu?XCUdLSmAf4$;0aO01MGB<%AX3Qo(b!0?W*I9<3< z8!Cno^x!o7diyil=0pcJ=Q}ade=Vjy9#h3 zb}nWl2SNRuaSxnM&_d9cLujr!42TB{GKdqDS9SN2G`Wd%pO2i|bB<6ULds$^QQ_;x zDgf%=*EspW!u;zlDG?G*ztPB!B#6=GI>d26xFfxrc*p^*VIPZxA|3{->A%)b8ShwD zf=qTjRA#?9A>j9MGek6;=IS!_PmBS9l;b&Fu<&a|`o$6AiG2bm*;T8uUiQu)d7;D8>9=M2eIOCJ~su-2(< zJbp3`XowGLch?x8%CAt6H~iokMF->`8}E1@d{pFXUL4&QIQtZ0vn@xbd3I#1)p1Su z)>{;B#T=h6jM++K)A5Q4WmO(r*`_qlKU_YuL|LX4!SR8Y3{4Y5zA(6>V8Pcxw`Ln} zd^nodw;lBbLy%|s%0i(a0bQLJ0U%V3Yop^|td=U|L}O9CVEXIWA)pO=ILb>Dk8)@W z`I$uJpf&4iYsRx`uuhjyyC<9iWCh3ofAJvj6vIzxj?cl}2TnbH}%w?S|MRC^m zz3k%^8$oa-c5%7Ya)zE_SA6*Y0H$wy`YQw@>u)%ffme+-#Qw7AUa3*3w|hzN6pFP4 z4J-FD%FTNyYkw--mEj{KH`xCGSOT(z39G*v#imo`79rp&-tx)*gaFV;Ds|Qt9EZkD ze>pFa=0>!)92zzaP%rBm!@&8u+ff{C7XJVpJ4a|}*UnN5X!s<%Pd+9|WEx7SuR8DE zu`@)CBQ$Q+AD>xLkw$B{y!`pcuVF66{tU8P;+>(ie9dG4MFN17^U;kc>QCq&SgGFx z!B=m1&^fgrm3;;z6H6tajq!v`vq2EtB$duKK#h}bgH$hF=GbAfpOcMq^M)DDpt(`i z{#hj?dTatuwhH>ADRsXsmgNCKcZ33qw%`P-Ks=|Q4l%IA5<13xr@&!0x?n!gC3y3d zs&Sw>1o14uLqK$<-whZQ*+-Urxpip34`amfgeDRS0Ifh$zqF+C8~V$%pOLEe>llcw zg4xs5tc_0H&hY&a$(lFUj{F2aoSp#%4i$%eYY>L1<~lj=7+&17NSCMi$5W^*R-#RK z^^ETtlxXYr!EppdhqJ|3@qmGWTtx6PL}RJ9=;RgKj!NzNz z?yxRO9DsHJ_*Bg@TfEV$^`C!U5We}d5ICp>u_qjS;tnYwp%Qs3x4af46F@Ol4!Ziv znh++9?aaJ?tU-*qv>S)YTs}f{i2Lx4@pp?5C-&a8fp;)fn@^98;Uz!@CM)Je!$t+o zg@N(CVE6$y4O88`e(05F*+NwyxNDJYok=Do1Ua zUHxOWD3*QKGtu4wim6FU{U13HAaAkz%Mq*wZQXX)#$5%k*z-OfMdK}FjA9@o`6u2e z2&2s=kDf3PZw_Gi*LfeoRYzJdfyKw#DtjIqLkbXvKs*>1NM?EW)yB1Y$p zbou&BiJp9pitw&n3{$`X5DBLaxWQJ5VbfJN-ucLT(jg29J?j&l8KgjdF#<%VLqzly z%>fWQ8uE_2!&;;`d^K;@6$2$Ax;#8QVSwzRTuJ5zy1<|AEp|Y*p z-QO9aeJS)_53FR&?d@<=SkxWmQHCLCg_!;85TXsBFUVvqa7n+zh{MXKkCnt)^nnx1 z#v9iy_(qIz(fhjh!7(%(;UM?t0$X##lZmNSa6^&!cZ;Bd#F6+{>_R zBvaA+1B_;Bg6`6T`oktV&PR&%g@FZh^{+W15TOeH0C~H@>IC7V8v$aO_gq#S7n^XJ z1_V~%8F+L@-tbE;@EPZxIlz(&kOzn9G1{CKDNo2lJ7=rXSYESGY1yOUmgU#6)S%^sudBIEs;_r9yyaF2x62w&Cg+A9Sx;dfR>D2Uv0fil>uP z2_roOHFtlkwcCqh$=P(X4_PI+kO|OKemrB8eFb`FBX@tC6Nn5`2)kXAtDDMUZ1X^o z2_uF?7!`XHr#OrSWv~xx`Rx2*0+1Vopu2F-wv>y5emwiikBvP#6VG=Hlz>qOd*{C3 zc*n8*}5vp;mzA#M+GZ^8w$o_D~^t;KKQgmABuT@9c+{}P>A>kcs z4XKXyg0Mcdgy@iiKzq^e4A|W^2~u**8GsEtau-{`Q(tD***{+S!Guv!(CCh?Xpiin z-{-z?&y}h)po0D6m98o&)$znHZagk@6g0miFf~9m0C~P8J=|n#(JQA2T$3080Dd~w z1qSE=0&&(Klxz#5ck2d9sZ;p!kpmU(~!El%<6RXd^I73rv?Rk6mg$WR0Gml;2HQHhh zun!t*=OqgO9*KQ!ePv3FUAlPRd9p|#H|@^&xFV#4kq(}^c6W`OgRJDW?R(Voky4ee zHse@cDJo5eG5OA=Ez6|ozotb1ST#>ac!WE0Lt#BVK5#{bw!)?8onV^-7j~_c4&s2_@~wx zBuG%xOZ7eEHCwe8=kbJbYFh28ldt^27{YRhf$6*CGNIB6pDdkV?41R<;k=ID;{~voUA>X~ zCJ!@85#&RF;{4&j3P>aC&TWMtFmVsoazEDtus?Ge=#duhg@^WL+HsR7$mz%4A_f3M z?Vj2jYvZ0Mq(u^b za64~;VLd|@A{VFda8er3O@6T=w)cTBqH=Iz30m`5%0c*Wz*l1C1CT8XNAEg{TV@<1 zbL=#Kc)UcZq$NFZlsc)Xy4UL(PgoYr6|yV1^AC?$D(ZX~k1;}AG1gn4?!5C(y;a^7}lApyt-fN}AL z)s-~txy*Ytw|~Ydt){6ROTO^7mB}NkI~)SZ8j-_#=Hpk#tp?7F{o*b$C~WcVE)B0q zt#?kOO<)3m1JVFuw4xe%I5}DI3_zF_sT#hz#&Q%COH=WNW6ldWgOA1uGmwJ~7iw2& zE+jb?*t1_o^)Wtwmqe6KuWmg-NEgAk;KVfT;P^v&^E~1;L3Lf5ooLIGUWjRVLzkb; zz#<@2sj6$AZ=SGJT96T?Pm@_*i?f6y^=SFX$q+9yliWJZMKds@A?L;`6~iDP3CH6! zvU+HiuY6^j0zFtD2YY&W%_1o~eE@$B2|j9<$j;Zj26?&*UNGINafnw<9t>6|ffi$xzZyNbi1@+SMOEUIo49^;@UN7`_A+rObGGi!%A3I%CW~<YsUA0{{VKiS)t?E zi81ssLCQYin)e9S2?gZ3aX2Eq)Q*IoSM zsI&{rPgV}Hfa@e2z&he!Fjfeba(j;d0Gt>ne8js0o@YJdp}>IwVk^O;^P1wqVl|*Od$r)Bb~kQ{o;h0P!Vc0Jo1)g-T*ic1MJ5eSa%hhaXJB*bebK- z=gujMD~7jETh2z?3NNubOlJujDMVjGdiR(9SCw6ydj9gX^xe)D?y_nHnW5;>mrL>)bCt(hMcH&H#+;rhouvyHNLP!0Ld-T zuP!(H&I&vgxb@#(jGzhtf%i@pADmrD_xyWDp7o0zbnsHYdQ0(+&QabWV4n8eCkCXn zjyKlb`M`IGX85GwnsK!DgE($Zt_e^_<<`GuObE7>2d|TPyjF_Z9V4!B6gUKkAdVNDDLHiDTJ?qo1sy5p2%!aZ8&rK^ z(`-dKb1{X05e@!7yfk9Bay(>7!KnkiJs1iJm1y=K#t>fzLLJ58@y1=l(hvR300nw4 zC(q7t>w>7AF5BklZqO1^r@_l?5G%R6a5|GFfUK zdc>$bD*DK~!Kdh^Ua_UI+2m&^BL<=0g!?doTr^f4=Kw^+YlDdk-U(m`-PK;$3sp`Q z+&=J5d;$=7=e*SeNj4cG3TOp4zVY^gls28a-rQ(oqzlh-;rdSrddLHP#2#LUyj500 z<^4h9EqN~miwBj+GQ}czB6G(R6&siGXfmK?@j5x07I1I zeeWOcN{bF*WO&WM0vbcfuC4mXq=DM1H|CK%;mE-C#&h78cG1>!F^<8{#j5m$Nz*$|y*@t+BwwqM@@rV^~lnAM)1Fr5>0`Z$W_=0{i z)wKw{@Hi+p-Z{Az)ua{mlWmTyB_q=Z8+eIDGK?Bp+-gXSgOStVa%oU>$#;HN?8i_2 zQ3~&)9^5FD9whCbyiwkk)8L2J955GA$5W5IuNoNl!55D@%hoo;CEMel##AVUX-7xL z7@QlNA@7#*%Q0k`$hv=64L(5KJ)U^hPvjYNHZMOIit0>6DOYV~weyq)<(g$g(nB_l z+)}e|el>-_q!qeTZw@rpq7viZNKjjqigIBk7fb^ z>`#%s{<4HeTpfn>H;wv3K;CQCPGt=NMc0lqP$k(q6TWr%!lm94Lz479@E!)5TKTNN(*t0r9tR&s7=)b)m75K4d(Bu@3@Dm(*Y8;>;ZsJ?zQcW(;7|w+s(H|H zf*o_FZ(M7GoM;GEh+RJ{2==RHmu*gEd^s6{@$gCTnL;ZZH@mVM!MtUcrJ?;8=~EoG zx8=rD)^Jdx-sYTZB?8mit^uEngd${Ir@bG}JKY%CpeF%>EYxPZP~y^_!1H>2=FX&A z&@lL)jNZ*MJ8gWJz67L(R4V7hm;Goxt@$;Sr7N8AXI)iX*O_td}f6nq2 zx`30-e(%mm!lzT!9lMwqK?j$Ev#LB{Y0<35nj^r>qQD&M5ShPuA;W_k<9YptgAn@Y(T=bkZ9I z1!u#rZa#EDMPq(GdzpM&RigkWLnk}L^sBF6(fOT^;{>^a=|V+(_;JNZIj!f7&ZnFJ zeI0~=zGl9%$~#dw*36Nb1rbgi@y)>zgK8VR6PE7-NQlKXtKQGvFvVJ@SjPfNN37pY z2&5%=@_XY5N~#7jaDgjVmBPVL9N96=u@J@cg&MI9>G89yFwnZ%di~(-1>o_6>El@M z$NuD`@mDPRz%6iApMG-TARg`Ji!ma&AV@0Drtuaa$hCC0j_d0XEJ{_@}|IHaA;udFhfROb2{jV{#cujKLM z!$QcOA5QRvnafuo3VGN2!naq*{{UG)fu=gjtymDr>25*@{NscvIvwK6Uz|myelb86 z?BUJ;9phlz`TlMsCwDv#?;UVE2Qy27(_iZk>zy3@4lP~q*XU+)8B|J7G7s+&<|OTU zOLO8_1ovnLNLWqo{hm#D!f+&fVD#?^jX}gZt}Yf(PO$;K_?QPR>r?aRj4VN&F2l6* z@;P*?X|7rWj~M(M2uZ0q)6B&-_a%ySefY@(;zo;l!V%pn0=-neOejo7v~O#}ClNq3 z0W}R|2|ZDp`oIF9hw}LO!WV3Sx<&pm0Lk7fd0wU+zH70Z@^kBW;(>u~gWsH!gFpd$ z8o6Q`52jTr=2@T0b(7o8(v!^A?^(?-Q)DBR?##*E-~$3cB^vs zV9sEgmC?r%xO8z53R%GTxu?=cc3*;g70rxzKngRCsR?J-ZPts=!Z5uC>f{(M!PrD+Y{AHB12zNQ#_3tQ2hJ-wHKUnT70DuEfHP;!tte2K?JZ}&pRce^2`aR+&M3*a= z`170Y=IMYyb+^VOvu^ka&u3!{&~T9t$6iMQpJRARsCV92$x}iUzC)kJLp4EnCjS6< zcVL(;TW1|Pwv7?8id6mwcquxnK=Oy4@BpBrbkGyJ=JJysA+B`IU>X9v1~qTqKXZA| z+P9+|N&-@+&qus)*pi|E;Sdf8Iwtow@s(2fc@L(8mmE+ELuQw`VIDBoR=tG|!n|b> zit$b<{p2JZfN@CnU|0ZR=z8l~!)w*p@RT~!FuC!u=}3vk&JHkn55wRgjfe)Ci={d5 z2UP;KYp*FMIFROq3(CJH2&qKbLhSQ~g)4>jd+->&!vG3G5!+lZcp@5>>zt<^d2_F< z7!jz;&lx`OwYeXl!=OdfG|@PLec(0OQ$c_Enh=Rn0%@EZ^MDqKu&nC@BtRjW<6fq4 z+${?jf#qiXWqUHiQ7QJ1)-AhdNNf|3lV$-b+&2zM*&HG04QbosjHVTkAgomAKb!+7 zLhN^HGgl+$nt9}=+y4NWQ%q*TJ{=U{xTJ9?ao)`mn2F#djwcLA%Wwg&p_3H^C{H4M zn)@&e_o1oT{_|>I5RUZ{&waSvD1v13pm9zvM>w@;F4}j)))xn@BPqgpW^A3}*hJ;s z$vqQWx-|ILcw3;3RI^&Yj0b%nx+h?0;KK>3jum{9x6W)DVAD=l-X%DVjW7-OmU@EX ztNyTIfB~rc^MDOXEL(q{AL|l4P+7vyGGfqG1>sF!;~m0As%`z{O465)vp9H4UU9)8 z1^(E98!5>q<~*Hw!$jk|N7VgchvLCJw|~5;tSiUpllPEo>ouG= zgP`B<1*P0Zml-4ogI>l5VMm~1lSREFjW(G=N-`}$zHkFlrbJ)EH~{N*F>}c}+5Bd# z-wbQ_ygITRG!N$(qvUvhSQCiT4oZW}H}(EAM#K>>S{=Ve1Ns@Hdxv>s&uYuM^OX|h zDEP)fy8!WaX>nkUxO{`oCN9xply~^a=5$`3L)HQE-hkIeXvC=VzdzOw_A-{a=OR*6 zH|CP@z2dOg5T!7LO?bo|AzSj=IBVui=6Fvz@}XfpL!Vi5r*3lS5B}ojWKzBZ-Sw<6 zrA8-cd_T?@ia`b#G4q=>1pwQ;Hz%7&QsX7Y2cyG0ahmN33sz<9wdUO4K03kO=fa%% zc=`Ft^jIL9tF9+_9u&?{AgkisH8Ty&0*Uv|QTZg`D80SCWm7R4YQ^!0)*D0SdoNhf zKvvObA?N+$NfHsk(}$laQFJH96KKRR!*lZR=CRUTQ?u3l%xJWZN?bn8s4po1AgXATlfjIoalMh z@JSE^c6d_t`k4rgR6JT85Y^K$`(p5Sir)w>8yK$AGzfHa*KQ4H`7mdHE+!_1E4&}j zn%1+HT7aWKf8FH}6o?BRbn*9rpoXx7qRlstt}-Qb28?haWTZZGm03_X#W?*nfEI-= z+N%C8HUdpJaH@BJWvNqFhyMU@`i2cH6UFN++JJ(!KH}mH3a`p8d<}6tpxdbKXyiG< zEUH)(r|3A!1lF+cwm7%(iD4v@)IK#l;c<2rwYT(OrvyNf{4}9^%`h3e1NQzh&^-*e zOEu2-j6E<*;3rHEiYU<$Oq=xQg8ns| z2{8B({TTt37^>Ai9f!si01CHg?B9H06)1|+Uc>U>$K>F*v^rETL5TTmcdcLN7tPrfGHLfilvjg3yBZNO1b zqV0GiOzqCVq)IjNf7Um!?_!;p?wbXr-G;tD812+P+>L)JfpVdvNVKl>WNVD**l<2R zyy1evScyu9T=AZUCxGY-nmuYzzE`c}Lfmm(>%qUqZ)*biUpQ-skf55QmB*(YhP3Em zJM!-YF3Sp4;nS};Xy`%&_&mSX6uMhcUEePq%nbsuq7zN!H=JsU5NW#}Na(=ZLWmN8 z&Ic6)#V`e?#gzHM856$5<{R^zpTuHrx-VE;LU<566~`EHCa~b{1cr411n8^>Y;)8m z{dm_mFF^kQlo0u!8Ob1wXOjXnf;3*oEnU}X*d8-|JOB#Fc*ORIfU|Tzj56wx6C_5l((rLJa_+P%$g{~X%Z?74v z$&fxv*Q{bIqJ?1_dZrh)>p}U$IDPSP2y$Khzisr6M?(J zHvm~F$aKBxYakEsTM|fWwb>jf%q`&}x;{Ld44B)N?vc4AZI3d{&=f-jhd$=Vy z+T)xN4)9l4psab#elbvKb)tL5NGYum_;X}+sY~YL$TS;1gRF2IRTy{V_lkP`fH!I6 z9`G8mNPLa8h-}e2Pb~NRVOQWqLKJ5hautvumzpeYI(2yppX(AKZeOnB;|R3rAQ5aI zj&M{QL8s*8edQWJA}g^=W@yw0*W3K(VH&Ak3%85~f<<-VwxycF;E;SZbp7Wq?HxW^ zuUt$du)!TXVYpI8f$NMaj)s;KAIIkkAhc{9YqxpP1%q7T@_fvoBNmFhVmwG0(W?)P z*lGby`|lp$0t-6>#v~FV%}C#F{{UE4y1e%DPmFDYSWtM^s^sHj2W;T=jE;T>dHgOb zPFy;h=N($98&UB5XB5(U3+KjNAt<5Ud>hDE(lA;KKQ0X$?=^RD=71bmt#X@s!gh!x z-(sT#V@A;+>F4^*8OW}WZv~9?yeHft9>-rieP)^?TBqf$6DMtIKSReqtTm{}ik5VB z{TNYq3`UbjuJ?d5z)aTX5Xzk@gojP=_mM4W<{cJ??^ueUTUzs_LgOUXbOIpjw*otq zYBr&IZyO?^qiMKk+sB+dP{`~7j+$2!wCku3jkAv!TF{0FN9etGFhNyNv8Mh9(~s=| zMKy`8XCHYdciPzNPl6c~alvIZ#o+Us0Jv%n#vk0vKoX7;dxyrdUq3TpuNvMf6-^3w zfiC|5tcsy9TcviUF&{+sEgXFaS_*0W;+ES6!N{Guez2^S6AevIgDP_MNE4sDrBZp4 z)*YKVFl_=Vb42UWiVY@-%JKQc-mxSOnS9e&aT8#m-Sq3O@#|v=FAvMsa=?NtfLZ69 zBF2(kE*bseBHrRtP4Mp(30uptO;0lxx3+>P&`tF7#uOA7j)C7@I`M`E^>Wn?dxz!9 zk(_H$C|+*&nkF?%SYD2I<0X-^?3$l=@`qnytM#md7eirn@TKoGC`Cci3)bw-=#WT4 z?@zpSq_1b>b{f1~Mxa9O78{1%^@u`^s65_F@s`X5Fe9!~J~2+^8Y^McLc=7$QQ~rV zaEGjS2%-nN`VXuM92p&MbF=r0I^%pyKD6r;W3D844_m_7W~c$Sc$X+|tAG+EXP=h| zz#2sYay((BYHL7r{M^w*3I~_08mgX1N}rX&E}Kw+(erXLi@L0ueox*AM2bnyhstx6 z5^51!^xO4@{{T>1J^b_D12ql>DdYWQO}%g#V7xYFtE+S)xonnZ=fFhW6g{R2&Kanh z9}euzKLSn>P!B)vENU&18Z|si_lJhco?GVu1Qr_BhfOz;j*8t6rz8?K*~Ur>bQ_7Qy?yAy_B4pKrR;71QbjbeH*NgfBKnHcPs8IB)&&|yyge8> z$la$9I&8%P)eIYR21QnVU$rBh6 zO}jNc<3Qx1fk9x|*~SjPjA(JO-Y~cXMqZG~o(RzUI=Cmhtrw#6fkg+Pe*XZhHlKX1 z$MJ#$H1CY=R`t9<2MWA6($SoTK_>+Y%wSW7%1nijL^?cMmPEcRG6+96G*+KC1Lf_FPiJ6{oL3iT05dA2EoN4M@Y!M*cA@ z;%Zpyf7UQuI9{4E=TL(2Zj~>3)-r?OiuQ-^5vy!OdfFexTSyRg2v>8P&N*wz4G2l5 z<82NA)!#D&NVKOE=jQ}~2sUd&V|b##!fPNKue=mv(xnvp=M2agqqAI!d}k&{A$pGT zEG8C%W3M-ZH7>w7IC}ZUBDx1hJT5@7qJo-V4b{X}bJcX=9rMmQKpiW1M<)LO7;B*S zHO?QRQmUvlG>zA;fx^A z*>}FM_yp}lb$u0Ij5O7c0vE?OjDGo~4wqZRCVa^{MEB>`ED%(J5#A|;MMB^J{_<<* zAa)hzaf1kQ9FI9z5s3PHcH_6+rBsTYyxe~1xV3dPuXw4&C;~mj^KtS7C3>$x^8PY& zSUJEg9qTnMNxB9VetEzk@gzgjx7S%L?CJ~9*PK+d*IGAQfbF6*`4lEX0mj5^e)!GB z17p%e@;mC}rYluVr|J92qyWaAt2mgw*C26`i5H9p5#3ML2pNjYF1g&P0PF9#2PEQezhYNxu!*#uc>)(KU&yKR5>^w?!__>oU6YI<7zu zrwvB*k(xci$=fm8fCD80IMI3G_{C-Bcn01PFI?jTuIM=_`Nd1B9d9oA->f^RMdiI- z^o#2y0v?Ih#XJkIcqrzC&xj|C#6 zr^t8KJQX0RtLzP2n#B(1ucKGXaR~HijhZXv2Q6U<>QW{D0C9)_T~g{F6B}H;0wrh2 z7||s)B1=ecY|X-|hansJxuOoEv3j0OC*D^r0Uk^7`^6kvYABJu08>42Z>U|}^zn^i zQ1XtyKdf??h&vUhy=CG#-iOV2dd1Q&UAMji+#Bs6f}co+b-kX=qVOav5r9mHMbk}CB45dL#s38P6}eYc95IEZ`7aGhiJ zOL0?ln$1NL15{UD=2Y9XazFPSMvyL}{{Yq}nRnBu~(-l zKmZY<51d_81*CZ&ytGFLV1M=a#j%hfB1o3(-ZnXHB2XWs{NeNfH1#w^-#E)<C&m zF}t)nFuOKc>nxu_z%TDD%}0j99NYZhFiH{N$xhja4Z6;}y6g9e!A7bKhd!~@n1yTy z!eW+O8&?mFJI3o^Vw)4(Xz;k|$ri9t%{`wORsM|=ll?P^P69Pm*{2RDnAZ}H2b@7h zTcvg94G2eiyiZ&FT%vAe({X|#i|Xuqu9eFDsgjPlkGl2Qa$ zT6Mngt*l5BfqcoXvZ573(S^hg;7^M>Zn zb?E$I%ScVHZv1@U))4JiQ8fEHzytm8{Jhb$U^M{+Yr?qomJPR`zpM#md1&XKCJ6)w z32i5>OjM_`=sY6t0kdHs&Rg2y07XZ4+~@OxH}XJ_&H}13NEzb0aH=9boc&=|dBvF_ z(D-gegVucD?8H2f`M`8-^Ol=$nqmz?blhr$ongv1?l6XdbuJ1iKRx8z6OF86UY!_1 ze+IENLfQ@hNqV?U(v4|>1cf3LeMbZTtP@(E=rc|F}Jv6d=I>?Se$Lq_^1832k3RKs< zVPNib8y+fL4b0(Tphr2V&a+hQ2K@+i{c;26Tt(!~bX(+|&r z6BB1&>SXD(G`POjZVoDli9+lrguS3DlmDRbGa^iy5;ywrKB4P2~S zKDUZ$cu9|1x7H;RH4;Sj`oj>&j$g-5Y*AI_5Wh~aq_di~@Lzs0XvPW)!F?IlKB+z& zILpTXmtxDK7Dwm-4t4134~5M*yQW+pi%D@8hf)3J%Pa)HCr+1me-dG(v3&h?hcgzr0s2H3a#X6jr*rS5xB!+taY1lyi0-XprH8V?w79KvJHz2Geof#!R| zCoKdNG-4r4!#ljOtcpuu@Z+g21QUVvDUN_G5Rb1}v4k{IY)@m3jV^Zi$X#2Si7X%o z$FJiUQf>*uftZ3G;Wa1yGGp75Z^-sJJQ#8tzPjE;hDbRbJ+F>31Q(DJh<$Eh4~<4| zPNtvE7Vr!040c855xBt(=^tnFi>o0*@?)+~Sw$pt9F1QyALO@xL+4rE&6}2W1D^3; zVDR<}=ZEJiQd?8x{NTR`taS2q>&^>13SQlu`Oah%ZhFT=lcz)Dec&kw7i(P8o^gf* zX&&>2s&$0)%qt^+H{YK-&RGRGC;tGG?;LvtdrseyesV99`G;RS!h<5(B5l$0k+dor zK78@4r6M{{Q>Jr}#Cs9xPrkaw9%~dJtDWx+y`7$WFSsslo+PP7pKI=6G#A&s-uKMN z26!0qsA%BHSOmdNOXC2wNTBHg>*3ySQedrJO#=)Fw%dL>51brSs3UEY>l$`Rn%%FN z_nj!Qa&`ync)z%6I64nltE;F+YyNu2FOAx%zRXWKpsZ`Ugl!H{=PaSjq!qf&DMu-r894iPS7Koy!s%gYPi@q-&aM)4c8qnFZ z94cyzI$aYK4{D3#OFr@?NMbu|4{Q~;aK4+9*76KAjt6ZiG7ot|od=hW@gv|V`A#RC zPJndkHFr72MfX>?)yqI3%b&xX2`j_?nXI5aq;q%dT`7SCR^f4yqnlRThbr|BaVJ1)j2IJgkiO8% z16I~c=5d0;N@zazAH3BA$*tdmj4sS>n)rqo5}MKWku#9YuO|H_2PB0<3hUJ8)Oluu zT3oZ(top!GFG&aRX1c{0XH8eHc_Bze_=blVv0VzY(b}0ruE-P0v_8zGH7r19C|mK9 zo|3Q+w*E2}uxya|)cD2}v_*UY>m%1N1Lbpe0jbpemw8J9P@Cnoo#y+lsXFKHhZtdU zLe90{w+m8C1Zfwi?*fiXaR4dTiJGjY%I^ThTeE4_3d2T>vZg!J#t;Q?A;4nhG8IoV z#vo2#IOz@SynpK$!B|4U!*0~@iOGL?A)Pyz&W6fsqmGv;)RC8QCG^{P_9Do~Dnbf9Evc zem+fT;CsVa96nr3g3v5a+}Gy=qM-DLp?a5jLqI9F&#n3I0Ah!cS3$={<{+`d>{I*6 zptTC}&@h==CgW@F&&F&&(QtGi=X@9ftD;EqcHLZP=D-yh?rRXDqQGAsXPigfQBl^q znIS`81C4Yz_v;lDG=M~>nf&1NVBPms)9Vjd5E=#B-#lc3g231$1EX0>iZyI>ck2QW zaiVM|m)=~BBk1tH`M+56k75TY&DR(z0v|XN&F~t0UVk|Tkybhl&n#pO`E|YV)xe(4 z(-OS@0A4dhl{7cy-U(`8fE!nO$V(hf$Hjsnd#6iDtvBxlEQx_lLG!l+Nc}b3J-79Q zy|oY)1-m2O1e+2f@S4{lJ}~Fa5fKx~DEi6?Xi^T~Y>?l)3QAQA5MhBB=K*`rP(#?+ z=`mh13Z)m1pYIUSdYfZm=1;?q=`)mhJ!`)g2@qDdLr)>m@rILymusua?4I*@O_Zu= zuA$T35V>fq>40laycjO14ItWoXX60Ixn&EpjSe^G6>6!c)Xg~Cs5&14D~L9lCI(C9 zYhM_s0VTZnCYp!dCGgR+dUe&r8-u1hxRryo*|GeXB51@@3msB86E6VQVh(uYIZv-C zZ(TSdjXKDt@7>lF#)W5_;o}VL&pIr>SW*!sFC%B;A(ruMQ%)W&!&N1j(?I&iAi@uh zaKfGePuYO3xF~daA5I~3w27j{bPd0KnQ~UZHk0^p37xX?5+3>QBor%L`}wmc!xn^r^iPhdap>J_rKq@t+-oRrDP{INcl; z$69NCpzJ7h-3n@(vL#FxO8Y~zDPa^X1@qr2OG@4_3ykSt#Z12gg zZ|5KgYk7o+k6CdeEd>5s;Km893@1c=PrT-|lU2wZ`JPZZo%lBzX^UKN)|)U4nS|$ASO@O1k*VN=irD zz1Av3PQ3_udaeUr%Qp0cYt9gaGd|bOB~9kVPkB=V>%0t6BZ}h4l%5kE(Edgw=S&0r zV77tCU*yQ~Ug!H67^)kF=i>n&)Zs=TRA(!{j2mQj*@B)3n}#Yxhx zoed9{G+~>LvxHQ%FNU(h?f^3TxwKtPu^n;$02m->-8Mh0)2^3UJCmQhLB#Y??}zZ= zse#mM{{XorIBE^?);9vylhBIw$#Qd(U`6Fq{a{Av&`*#}_ z0$T#B@x1RFKm+M5_mBi@?Vu5TWd#Ew^Mbz>!1+)jsjzDLb&t{sZlann`K+1(czYAB zu@;uTvqc@?4&*tKV%U&-ethBwL>y>@LV-Nv7?ZI>iCIwQ=*R90p1wP|bPT7GdQ4jWgy>k;w>gW8neIjF6XIvjE9pLtW-y~Sjl4|z9q z4Ig{;kT@A24O0IA+R8}>xW9Oo%QI2*#6oUH>Em1H3GPA5myWh#8Axq-VHfN$q5`Cd zxH5)MV^@FHJ-|n7G~Ch8;~2~cO|IuEoPKgO)=ffIlX<~i;Mc>B^oEC@bHR?2NNDdz z!ZQ{75fE03y_)>uQA^N4u>4?!D!#PXu4j(-n`F+S$E|aLb0i0$x9x5^um!mFDCgq= zsBQ=jm-_dLViwxS_pB zs?$pHCjPR}R)heYt+Sl84ctm?WYgcqK^6gZdN>sx3?HHc5D+D|&Lc^u02C6u{QJb5 z0bL+|5^Tq@g1y8C!l*rD$btT%le)i*Yyhzb=pG(n_l@TQjj?ym_mYBCIqQBW`osWS zO8Orqc+H(?R0zNL#4_6XxxZYqngXbGMi+^GusA8887-&HaaplbRe5;($^wE*v}7?Y zy27E|9qm4c6qyfqbFQZGD9zZr(Kmlr2qBEq-|rrxqNhWd^???h07~$~W(|M|tqvUh zd%)qiGp9nlZuDYq;a z3lm7}>Rd$)`>^=V0u@e|$&D10F6-7SyRuOHoFQm-8jl`VG=s>zCm4`BR^9q}E(oRY zWr$2eKz46O4gS9v3cy31AI?lQbU74n<5=LpB5y^nT>k(V?@dP%`JLeM1jAq;`?u>V zT%)1o`!U~CJCVci>l2y~h;SHHL^@e)h2@p;jA{f+1S`)@@SMQ6&TcjT0L)@x1b140 zSc3KhI8%GnbAN0y9xc=K8K*9_m3(iWwvHp>6)x=wx6_g1OM#^)e>gbOBDYTtDy*cP z2;U`~Vi0SP1(c+F*LMgnYK65Yt>LpoNT2@PNDH-h_Tt*`1wK8v{Qbp{%9mBl&&?`r=57&zU6p?G3`a+t-LM~Izod9qQ7PJ40G2`=21 z#w{vELPv)YLJeA9yjl)<)jYU{wCM<#6IAxu`oy;o;lcQ!yKq*p`5zN3xlTmIix*95#rT$mAU<;x+okDWT+L`WLMxYgO|1h%3--KVguE4g`LifdGZj zzxj-GZz|_{K1g8t1e{sk@dbeh1O?{vmwHC&Cp&t>8fXZ4Tn74(9r@P=K)H&5 zyjA7a8X8*pD1G9fAr^KX<|18%s&D0*l^|#yT^~0P<)`wL`RDV5eTNpBi>FRPH^#S( zA>$Mmc}9Y-FIb@?=Lj(n?m_1_Z>ZFmYPPSON!j485rW@c7{zOOSTAS(;nW3fe;GGDm-xn8Hz>{g z;tr`)sWhneYdo%rLGR8;4khyRn98)0B7F0I7)8pXh-;T8yz-!hjW_hSJ8+GV@n3jU zgCo1yiqZ;+XE8b6I_Rj6GyP)`nO5fk!L`DStq7YEKO_0VI{_sHpQiGcLKb`M;q|;g z!(h@j&*O|iKBPi4e-{E0jjQA`JPTq+zAq)faA?CobeQq$E8A+mtC|T-03c_s@eCb+ zBp!T*{{R?RFGIe_2f>tcyp{DC! zc~^|CsS$PNPrM1_3qHf9#|_oL5*>j#WNE3zIULPU505`s1V$CDNWSI?djs0)4)q!M#H~h}0Udah&sfB-PXVXY50@&c zm6nmGA$r2zFQG`9;7;5bbsNGMN~NUOeC_Ayj$W z5kt5~A$$RYCVbf#^|*77)BgL!C^P_%?EZH@2x#KETudv9BDdtx1ie$jEY?HbVbzj>);xIFs9lg6v`Fam%h(D3HR z1GyFA^_vu2iU*uXi%q)N^KvMy6lpltP*6Abg}vz>X^PWO@NaMH5ORuYcU>5?2TJ5f z*VZUSVMuv`yh-_TY5|K-+Hap;GQ|`O#n=u_Nt#<;!$slY3O^aPdy;giH_#UcEViXL zNnHs9)-Br9iFE32^D2fpd$U-|Ls!?QonotW{{YL* z2pB054UafiJz#(uKJa3YP|583!I$ufr)Znw4yt%D=*l@|HY;DU{{R^&MAk0Ab8mQU zf|j+KJx%8VLiA+q;{ZK^1$!7j81ubB=`?qcp_Q$lCwWo4M#rjPFwv=wCL3<-NPgU= zRy$?qyaO6`G3^|$M~a`k;A{ZeeJ(bR8~*^464D#Zf2={JL(c{y0nPIMG z6i{mN*_u^yy=7JpDTK7DGGBdXut?hRgV=Deuih*dnqvF&gohe93HBSn0gs|jvjCzC z(5=T%MGJaN=U$EJImnIo9pXG`x(D zoqyZQ1fVt>OW?^8S?@O-o~{5#5D7Yoz|OICfu@6@iGj9+Yv4TT*_36E%sl*Jux)?? zd+#nmyi#m*9&*8XV0u-sd-t1Qe24nPIS)4gM@lrgW<#Tc!r)sUm0A{Ro>~oj9{r@?KNI- zD`+&WIO`eC;mAJ!0PZm16<;a6Y2sWG>nhD!4~gRsv~cv0_r5LwHc_&GukSk_;&Hw2 z-UwjI7OolzWwjjZw-DnLUSBw@3D^RcIW`wzJ#6{msQv zGh?%(i)e#l4I2C7B6+n!8(p4HW;!$hJ1BMH=aoi+rj<>+Kb#d{h(-?3y6?OIkXH)Q zI^@}wT}IHv26Q|Ro#k68#UAU}Cq8qdSXD_+%j4$ex@3>(jwl~;k-)+fCjqx zjvfnu2GO~Hc!&zocpyh#H}4`?6)u2F{{WtFr>7UN@AHmagOkxQL9s9`OrQMV z4(1>kYBp_M&(IWb*jzD-fX1{YZM|k$Y zt7>i6oJlny>gKRt0AcOn5}Q5z=EP;BpGW$|_gy5B`|ldk6&hf0xMaHhMvCgQi)Iqf65)tSxF}18+PX)BW;t((;S2ng-!s!Y5TxQ7`xg0xH)tBH;NBX7rfsnI7P?Ue>qVFAMRHZ+2u`^<3W62 z>6{Rc?J=RH1upo|7z*|>5p>#CW1`wxJ2dJ#x4mT&_*g41@Z=&g$Xw|BR*scp}HMhJyn(0mAwubs? zl*W73BqF_JlktMMJZ#t2G#RG~<{-N@sN0l~7u%MIoLp_(@g={U;pE!CqYDJQ7kC2c zJuW9pa~yH znSTLxP6p_2f%uxhH<8}2sSH-%g6FDXJ%Bb`f)eecTSwnsGATl61vNHcB9+QXIHQOS zpg$wF54=Io2fX9w1Z%af4p`0NH}_Z&ilxRSfR$PIH>+GUdn1>eI{)#gO?Y6jRplFh$aja9SP1SW_8K` z0GOaBG<(Jtmc-`d9BQj>J;X%5a;Io|*kYg}0dVxe)*yj|S;Uqo-jZh#|`7$Ep;yJuTi0RNi@E8QvDjohYnRp{kjovhw4qUKl z{;n>?V~TgXC&mD?u&Bbrk5>xDxX2GF;}lmVWv};%2sohC#zO2WHx4JKU%Vm4v0t2M z0(FTJGCjPQfGIr~Op1~*{{X`^LB4ZAwQL9l)<6A3bQaNR2efcBV@ z0`;Nf^UT3@7zpZIP(?&93De`8DXTd~wPoV}02e6I@I$Ug$#OGy5ChM>;ytLe;PP>m z=sxVtNt-r+Zk?CK>mB07APYV4z@4D-7KME-9qDm)YnbsiYbx=_#o?&%gCh)q9IGqz;EyJbL=eGUuWC{?cMs9pu zl3EV*`NsfJD_8aPh;IS}hqf{h4=ma`h9nKzsIG6zQGd*J2VS7rX%ir5$7qKEa6ykB^MiRBn+H zpYI(&P&o;?DJ$k)_Ix#Hl9;n}oM`G$1cBnOjELx3SD0IJ_PsmEBB0E{~h zM)7k%V3L@Ki#VEkxN3$09UXePL?H57Fge~Yn)c)cN)KM%b=Ei-8FgB|vOT^9PM`bE zEJC!{;G7>=A!d#SE|pJ7g-Zj>ntW)^eC2}w0Nurk0lm_Et{`y2=^iA;gh?e1`7l{j zN{_l?q)TEs{GDRbH%VW$rxK75;(RXu0GuRQDr&zp#3-Z!FOkV84wLiC?7`104X9h( zz)(+&UtT@nHLmkdnsN7(EZ|btmN8js^BJ0+mqFJQv7Q=oN;g_e z^59mF7!Z;9nPRStBw(WZd9x9^4ul5~0yb#Z*^AF^17d$Ua7J1yA0lNcO9D;gZGcs| z^>auFPGbFG6bexv&afVVRcOB&%0=-KeLT#83KvE^Ul{8^s4w2!50_|;q|0oUZTLi9 zHJ*#0dqLOECj+GfPKVJS|}fk zNV+3X-B;fkW~aTkju zgBlAwm=`Cz=LA@&^3F3uNuapmhH}OQKk<&1BdLTjU_Bf`y*O*U8pCUH0Hff>TS2%v z4>psa$HG3FpIE4z1BJX}6MZ%B7CZz{h5qnJv~&bdelQgh#0fqLyyxQ>lmmP^FerkT zcbexU19rrC41yG}doA&lB{{DTK8zWF_bD5v0W{;{uVbIuEy41?W^@-(Bwn0D|4REB4$Fw(9=?7^z-$gzWOk ztV(N;Nl3o%bxjtV^MdkYXBYRJZCefT#m(8!q<|B6z}r&Im=|j+NFC!GcRFRgpIDdx zk3%0k%v&L-2f|$3Jt39YMtSQl$ZPTk_T1GAhKTRiiHyM18aUziivZ9BH^cAy!Pjvg zgJ0(fvPfau!Ee7<%D^VMyC=CZ$4#RBs~-71t!gq)5aA6L{E$nQ`3$y2sH6^ul14yrpd{OQ)gkvyk2sem{OhOZq+-) zDJsZ%hVbZ+DqsaY!^UnwrBU8Z&_PWeKR74>f=6iQ`^MlEyZ-V43AWpsO_AN?b3pUO z!5Lf>Dm&rD5KC@CPB6rAAwMsRjVOggFK?~5KwuK`Jb6iR_HGM^(B8N6k5h9P0-?~& zJ-Qp!CNgYLi~7L}gM0llkEVW6j=u1$ z5hGgliE3l0-3QKZ+~y6|tiV-^7)tF#GFniDKGsYK3C)M(Qv@P`uzqyp0c+3nb(||) z1TbdQx-6RYtP>_U6~89=z&Q~srW*VpPk6MeuoGn^b&K>+2A=~cSXWx!Lk$;@#h`T9 zX1q%=i0e8TB7w_In99YQ-oID`OL?YX2!wIV90Q*NoB^2~biHK+YDZZGqkG{+^16O)`GIjSc*PjUYM3`4w&O~Qcy*tdD1tnrL& z+6>Z;F|emzE)=W{c*eAV8pKEkH=S=-MCn5wa8`2MJN54xQ}dQl^Y0V^M?spaLzfW@ zb~>07_nfB&04moV2bTb8Al&>9?-o!td>_%5mriw~{o{#16n?x3$MZ=CY zr%3ky0IXGLbQ>^dB|)^j8M#6#A01(2Qasr`Wm2Lp=#%@$f~6Nr(TPCaFHd-u)sHd; z9aOHK%jbCZ0cGX7hm1sI38Z#TCs>Lh+zkU90tC_>N0V4rwwn{_=K;AjiGFgDL_*qs zSw|-Ei8$A@2v(3pEdJb{#B~IB@p0ArM5(_oc!Vwy!ZqKEmTAD`E02xf2dy2TAKt#O zfWBd{uaT$ojHoFNNNT=eesFL%8NBF(>%AD22$;pUh2Q5jx50vQ{o^o3lx}y5ijyZp zTKrNo3eB}$w;P>;B)ouC-k9Uf zTgQx8Np(d0X6^aF!+L*N%OyuVK5+%1wk0h$S!W?l;U@H?rY{YU_`ytMM9R%xHuZ;4 zmW^KL;{dN$i@eoEvke)b(oO3C8i7B&62(un^^&0iiCkk@kTLSnl+^&>u;*Oh1x-^* z2T!b(&s9-bqHTN0$uUV-`*dHdVAl68%knfZ)H{W*ZE-#0L|$>Pj8eWtF+lOC@Xj(J zjsOi=lJ>%%%OSNE)qmH{B9r9fnauNqnrHy8Je>IB5=I^YPnhMH&4k1I#!!Zpe)i*( zjeqVurUk8-?Kyc0V3kr+0|RKght5M8?MC;UZD}7S8Urn(MmcXts~`1{z7jqD@^T7t zZIje&-;6gd41d!GMn0TkWhL#IwFUGrM$Vf<@o*}HO+~=CDcIo52g$tAtzHFYP-tp` z<2LQ#5XRM@eB#;-tX^@Fl6f%(XiF)qMN#8HaZ>7eF)qJMd=rPpR6NAdF)Elwi!}I7m?!h{{W5E)+3?Kec4TTImgM?02SjDUfqsz z)WoT|0b4jSyX3v+k*sA$Ab5j-b^RWg=*xT`#1{>kA*j01m7fn1D#%|C{5HVCT zzAUk8DZ|ej`NuWZ>HvxNaw!0lM_vQ|)=^H|!i_m#GL&emqW9Jog&b{lf1FUx$9Skm z4IC_2d%-oVH$ZN;kzK*tgCNjxj3Pf;#i>{g-VH>z6+{W%a1CBv`|lwA(_G*I8fBFg z&=s%i9iUTF9E}bHgXqE;pg`?DGgQxZR}s-m!HZG%xz`kFPexgr)3X zIcN(3s<)_giLC$h+GhRLO7>8`KEJ0N3?dH zF-SOb5Pe`9mWQi1{pGJ9VdEI^n@5WGjb2bNgF#QMbI=1_?<~Tqmxl508UVE*r}LXA zLke`@hTQ~cE6yqiZ4t(u*8q(7h_|E|0~Uc6x-6I*a>rgn+9UL2iob2f)^d|+#KafbEZ zj35VI^4z8g8WURMAd&H0HVYfehD#TfOeV)p{pP^>$aPHvhdQIB&RMckoTgP1=iUKg z3Xj+N`^n-4*T;-8jkMz9q}W5rcH{u#Ql1Qav}knBpZmNK#exn5)P6BaOwC6}`*1c+ zxrVTM(vt)jH9Fy-_;P?pM*$D~!(v;+=HQ4>R=UB%JX5R27OT@sgdy2?nn8*~W;e(P zWnUfQmtd)@>l;BlMqkDYS*cvO7}L{ilQ&nh34yN#mjEk4%;y9sjUcD~VhO19Zhd3C zlfj~Yydg?CYkyz+n_#&j7aofa_tr~LoGz{aprrg_=xmw~cu)>6d72}*+0oFymIJ$-6<3dkGzpQ0a8ts!rZK6LfyhR9?Yx<1C@JNQg ztc^l!#D9$EN9r%+$2e;Qwecg9FPp3Ut_fOg5d10D3@B38bsUd^{AHUGJ$F^13} zu@1j@=y(Ke_`keO@HePDHw}ZKbZ%;36QriKtQ7+T!SLho4AW<)8fc(|x6V6TJz$LB z{b9Zmw{LIw*gfIcw-*gryOP};G%oo}HN3e>%t_mTg#+Udn%jc_cZyKOb#Z2sUb2;3 zK>16$hL^^k0J=T8*K}oRf~B9sT0TfT$d>GKBO6-T0hfw~&1& zIQ1MV(f*Qa65YZQFLS*;;lsy{I9TeRL<(9rnD6fp0E@qr7? z1b8!)V{WO|EDc2MBbpQkNfQL4vD0vudcub|>9+LB5F?wa9nmmArQmqR;V2~Yj!$VZ z2{a5-b3FH>?;}wE0L(UMCD>RA7OFY05`1X zF==Nth;zOwz=a3&{34Vu5s0Ybx($6XQeaWzRijuzzdYJPCrUDDhf z5`6QMUAg767)n1*1myY{$Z%h*2V@TBMB;-*3->X^bj%Ba{9=wp$~9R19IA>nB*p8k%vvIJuKdA^XXxyI1s2?>H?wcz$rF1Vf?baKI#W4xxMEp7H!Z!MqJ* z0Lw@^ePFN<$4`g60jLFR2PMSBSXeJl&+(gLb|l`Z)@>D2T5m~$iILGa-bRW;v&R^b z=S1-1+-)vZCqA(xHtuCKOc1VIG6ptyaa5y}t>+E*l@o^)!2_D}l?_ZxP^?omn@67V zVj=4|akFMU*~p&qW$xp13~d4zlO_0II?~Ex^M#V8uXwfJLtGCbytezz>`RPd_cB=R zH1Xwzc2HWCzHzEu3q0bBy>JZl21RrnkLhI zK1>s=8#1M0#Oa#DngqVXubd=7t3X5(%(n^w;Y)dLPA~}ygm}kd(QDvcV-k!6=XtW% zdUPsn`o;Cb!J*Y&v49dGfN_3dfD#~u)V(^+XcE_jbbQN-mC5FfqWvGnMrGVC*{; zXj3bg5LFo%0&dsnnBWz*$v)2TKSE;JF0^jok6vl(8`i>~tb!OJyjOE=2hJI=FGgts zom^xalPXrx8HuBYqlDfIYoIWFt}-LETwN&(uRbtB-Mw5P1x_o4b|*X-(xP-d`NbC7 zoNz&-r#Fkv0Y{9IF0cf&ERT30#8Pb^d22a$l<&?Eaq)=p#m{YF&g699#b;Qk$5_$% zdBqU9N72HnKmz<{Djo><%^@^(jMH;wGj$&wxc3O=YbMn4m=#H#47M`D4eBMyr5oAd z${}`?xKP;HePTw0BivGfb)ZVDorzJ2RE{tJQ6?w=56eC<1z%|30o#Py}f|w+j(|=6UKUlGuwZzvotgjEo z9UKQ3*@RR)rtu*vzZlbrJ=Z0zecY78$UkYv% z01dXd22giS@rXgqs}4)&TeW%$pb<3VKp&fU~119rBcGCwf_LzdBLSkUNIn54AfC4tXLRybaZd$ z4FYfngxKf(VzGv&%IkOwww51}O&Bo5^KB5m=5fc!(3EqC3f7bV05VT#0ioG{j98@# zEb8OLh0=ZR1g3&tyh*6+_linD4NmZ6##7!h)Qj2tWfwMCF(E+ebm9WI$!$gl>S4t%2C{&R_kpo6h^5W|efY)!PE4e%Ri{{>K=kDU6~b#ab-#FnZdtx^6V3>E zUhrL}Aw0Zep)BC>llBg1AI>G^9t=)G6%SuHN+Zq7`gg`Lr5gr;^@ZRb+@k8&lhzPM z>RiwoDx3~93aGzOdKJW{%Fe|03M3q;w9D|uXM+88Ik-}KgBTMHU1EBAmP$=^!I0;DcH-s<- zKm|FsS)e2Jlj9cc^Ox;I)2xgY&tZYu$0JyY%e*9quy>6%y#tpKH>AxqMTH3BM1K5r zmYtY{O>o>2pD5M?&^polV{m7fe~jW>={1`kC(AHYuKC*xK%@;#V+}t}{{UD$Vc_R4 z=tpk8u|q_{D12NKVOTqt-c%~C5f9Gs2~D@r$QNpu2#{|`r>sQ}2r#^J%kh>+b0+-Y z(tC(aq&Jmbmmx$zP;uTg+AxHTyLIF9lj}t6v}_x0M2&)jLBG9W2XYlQ?bb3Ap(r@# zGz2<*<79#^APfCsQa*-vkx5h6c*}faw>HO2IKqN;{!LN!itU^ntjhC{6|Fdz8J9SJ zgEkG_;M4CCC3eKe(Qi0c)nl2UK*7q-Ox$kr96MZS+~+(P)vD7V0QX!>9xzAqhOzMD zq{OPa9NQ#rI;S|5{{RElDkr=;d|+IhK*A$(xF=2|4d*-F6(YXzHM)7l2JJ2aTU|3P zAUXTO5&%#P<&AifKLA*ahGfT=VhZ#01!uWmc=5*CiwK@Lv*rWRx*65R;;jv(^J{10Ck zg8)#GEz4h2W(&Qu>*G@xKnMB`>MHI7EikDQ3p96+X=573@F!GTRKAm@P}cw*agc!dg< z%up}_X@It$E(RnGvnT;ad9=v5`^JF{Wtc8J2G3cnQa7v#WS8C|A%;kR7Z)9z_p8oc zw;8i9nP(xA^-IgN!&ODn>pWVUj|9Mlex}!5@@??j7Ak@5IddM=NLFdB5my9 tkHi +

+ +{{ end }} diff --git a/node_modules/.bin/autoprefixer b/node_modules/.bin/autoprefixer new file mode 120000 index 0000000..e876d81 --- /dev/null +++ b/node_modules/.bin/autoprefixer @@ -0,0 +1 @@ +../autoprefixer/bin/autoprefixer \ No newline at end of file diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 120000 index 0000000..3cd991b --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1 @@ +../browserslist/cli.js \ No newline at end of file diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 120000 index 0000000..e2be547 --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/node_modules/.bin/postcss b/node_modules/.bin/postcss new file mode 120000 index 0000000..236af7c --- /dev/null +++ b/node_modules/.bin/postcss @@ -0,0 +1 @@ +../postcss-cli/index.js \ No newline at end of file diff --git a/node_modules/.bin/update-browserslist-db b/node_modules/.bin/update-browserslist-db new file mode 120000 index 0000000..b11e16f --- /dev/null +++ b/node_modules/.bin/update-browserslist-db @@ -0,0 +1 @@ +../update-browserslist-db/cli.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..bb236ea --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,973 @@ +{ + "name": "tech-doc-hugo", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001491", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", + "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.413", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.413.tgz", + "integrity": "sha512-Gd+/OAhRca06dkVxIQo/W7dr6Nmk9cx6lQdZ19GvFp51k5B/lUAokm6SJfNkdV8kFLsC3Z4sLTyEHWCnB1Efbw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/node_modules/@nodelib/fs.scandir/LICENSE b/node_modules/@nodelib/fs.scandir/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.scandir/README.md b/node_modules/@nodelib/fs.scandir/README.md new file mode 100644 index 0000000..e0b218b --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/README.md @@ -0,0 +1,171 @@ +# @nodelib/fs.scandir + +> List files and directories inside the specified directory. + +## :bulb: Highlights + +The package is aimed at obtaining information about entries in the directory. + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :gear: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type. See [`old` and `modern` mode](#old-and-modern-mode). +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.scandir +``` + +## Usage + +```ts +import * as fsScandir from '@nodelib/fs.scandir'; + +fsScandir.scandir('path', (error, stats) => { /* … */ }); +``` + +## API + +### .scandir(path, [optionsOrSettings], callback) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path with standard callback-style. + +```ts +fsScandir.scandir('path', (error, entries) => { /* … */ }); +fsScandir.scandir('path', {}, (error, entries) => { /* … */ }); +fsScandir.scandir('path', new fsScandir.Settings(), (error, entries) => { /* … */ }); +``` + +### .scandirSync(path, [optionsOrSettings]) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path. + +```ts +const entries = fsScandir.scandirSync('path'); +const entries = fsScandir.scandirSync('path', {}); +const entries = fsScandir.scandirSync(('path', new fsScandir.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settingsoptions) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsScandir.Settings({ followSymbolicLinks: false }); + +const entries = fsScandir.scandirSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. On Node.js below 10.10 will be emulated by [`DirentFromStats`](./src/utils/fs.ts) class. +* `stats` (optional) — An instance of `fs.Stats` class. + +For example, the `scandir` call for `tools` directory with one directory inside: + +```ts +{ + dirent: Dirent { name: 'typedoc', /* … */ }, + name: 'typedoc', + path: 'tools/typedoc' +} +``` + +## Options + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` without the `withFileTypes` option. ??TODO?? + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely use `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} + +const settings = new fsScandir.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## `old` and `modern` mode + +This package has two modes that are used depending on the environment and parameters of use. + +### old + +* Node.js below `10.10` or when the `stats` option is enabled + +When working in the old mode, the directory is read first (`fs.readdir`), then the type of entries is determined (`fs.lstat` and/or `fs.stat` for symbolic links). + +### modern + +* Node.js 10.10+ and the `stats` option is disabled + +In the modern mode, reading the directory (`fs.readdir` with the `withFileTypes` option) is combined with obtaining information about its entries. An additional call for symbolic links (`fs.stat`) is still present. + +This mode makes fewer calls to the file system. It's faster. + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts new file mode 100644 index 0000000..827f1db --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts @@ -0,0 +1,20 @@ +import type * as fsStat from '@nodelib/fs.stat'; +import type { Dirent, ErrnoException } from '../types'; +export interface ReaddirAsynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }, callback: (error: ErrnoException | null, files: Dirent[]) => void): void; + (filepath: string, callback: (error: ErrnoException | null, files: string[]) => void): void; +} +export interface ReaddirSynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }): Dirent[]; + (filepath: string): string[]; +} +export declare type FileSystemAdapter = fsStat.FileSystemAdapter & { + readdir: ReaddirAsynchronousMethod; + readdirSync: ReaddirSynchronousMethod; +}; +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.js b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js new file mode 100644 index 0000000..f0fe022 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.d.ts b/node_modules/@nodelib/fs.scandir/out/constants.d.ts new file mode 100644 index 0000000..33f1749 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.d.ts @@ -0,0 +1,4 @@ +/** + * IS `true` for Node.js 10.10 and greater. + */ +export declare const IS_SUPPORT_READDIR_WITH_FILE_TYPES: boolean; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.js b/node_modules/@nodelib/fs.scandir/out/constants.js new file mode 100644 index 0000000..7e3d441 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; +const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); +if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); +} +const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); +const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); +const SUPPORTED_MAJOR_VERSION = 10; +const SUPPORTED_MINOR_VERSION = 10; +const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; +const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; +/** + * IS `true` for Node.js 10.10 and greater. + */ +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; diff --git a/node_modules/@nodelib/fs.scandir/out/index.d.ts b/node_modules/@nodelib/fs.scandir/out/index.d.ts new file mode 100644 index 0000000..b9da83e --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Dirent, Entry } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function scandir(path: string, callback: AsyncCallback): void; +declare function scandir(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace scandir { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function scandirSync(path: string, optionsOrSettings?: Options | Settings): Entry[]; +export { scandir, scandirSync, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod, Options }; diff --git a/node_modules/@nodelib/fs.scandir/out/index.js b/node_modules/@nodelib/fs.scandir/out/index.js new file mode 100644 index 0000000..99c70d3 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.scandirSync = exports.scandir = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.scandir = scandir; +function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.scandirSync = scandirSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts new file mode 100644 index 0000000..5829676 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts @@ -0,0 +1,7 @@ +/// +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare type AsyncCallback = (error: NodeJS.ErrnoException, entries: Entry[]) => void; +export declare function read(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdirWithFileTypes(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdir(directory: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.js b/node_modules/@nodelib/fs.scandir/out/providers/async.js new file mode 100644 index 0000000..e8e2f0a --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const rpl = require("run-parallel"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings, callback) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } + readdir(directory, settings, callback); +} +exports.read = read; +function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const entries = dirents.map((dirent) => ({ + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } + const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); + rpl(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, rplEntries); + }); + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function makeRplTaskEntry(entry, settings) { + return (done) => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; + } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } + done(null, entry); + return; + } + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; +} +function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map((name) => { + const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return (done) => { + fsStat.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + done(null, entry); + }); + }; + }); + rpl(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, entries); + }); + }); +} +exports.readdir = readdir; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts new file mode 100644 index 0000000..2b4d08b --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts @@ -0,0 +1 @@ +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.js b/node_modules/@nodelib/fs.scandir/out/providers/common.js new file mode 100644 index 0000000..8724cb5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = void 0; +function joinPathSegments(a, b, separator) { + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts new file mode 100644 index 0000000..e05c8f0 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts @@ -0,0 +1,5 @@ +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare function read(directory: string, settings: Settings): Entry[]; +export declare function readdirWithFileTypes(directory: string, settings: Settings): Entry[]; +export declare function readdir(directory: string, settings: Settings): Entry[]; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.js b/node_modules/@nodelib/fs.scandir/out/providers/sync.js new file mode 100644 index 0000000..146db34 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } + return readdir(directory, settings); +} +exports.read = read; +function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { withFileTypes: true }); + return dirents.map((dirent) => { + const entry = { + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } + catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } + return entry; + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map((name) => { + const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = fsStat.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + return entry; + }); +} +exports.readdir = readdir; diff --git a/node_modules/@nodelib/fs.scandir/out/settings.d.ts b/node_modules/@nodelib/fs.scandir/out/settings.d.ts new file mode 100644 index 0000000..a0db115 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.d.ts @@ -0,0 +1,20 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLinks: boolean; + readonly fs: fs.FileSystemAdapter; + readonly pathSegmentSeparator: string; + readonly stats: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly fsStatSettings: fsStat.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.scandir/out/settings.js b/node_modules/@nodelib/fs.scandir/out/settings.js new file mode 100644 index 0000000..15a3e8c --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.d.ts b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts new file mode 100644 index 0000000..f326c5e --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts @@ -0,0 +1,20 @@ +/// +import type * as fs from 'fs'; +export interface Entry { + dirent: Dirent; + name: string; + path: string; + stats?: Stats; +} +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; +export interface Dirent { + isBlockDevice: () => boolean; + isCharacterDevice: () => boolean; + isDirectory: () => boolean; + isFIFO: () => boolean; + isFile: () => boolean; + isSocket: () => boolean; + isSymbolicLink: () => boolean; + name: string; +} diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.js b/node_modules/@nodelib/fs.scandir/out/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts new file mode 100644 index 0000000..bb863f1 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts @@ -0,0 +1,2 @@ +import type { Dirent, Stats } from '../types'; +export declare function createDirentFromStats(name: string, stats: Stats): Dirent; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.js b/node_modules/@nodelib/fs.scandir/out/utils/fs.js new file mode 100644 index 0000000..ace7c74 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts new file mode 100644 index 0000000..1b41954 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts @@ -0,0 +1,2 @@ +import * as fs from './fs'; +export { fs }; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.js b/node_modules/@nodelib/fs.scandir/out/utils/index.js new file mode 100644 index 0000000..f5de129 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const fs = require("./fs"); +exports.fs = fs; diff --git a/node_modules/@nodelib/fs.scandir/package.json b/node_modules/@nodelib/fs.scandir/package.json new file mode 100644 index 0000000..d3a8924 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.scandir", + "version": "2.1.5", + "description": "List files and directories inside the specified directory", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "scandir", + "readdir", + "dirent" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4", + "@types/run-parallel": "^1.1.0" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.stat/LICENSE b/node_modules/@nodelib/fs.stat/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.stat/README.md b/node_modules/@nodelib/fs.stat/README.md new file mode 100644 index 0000000..686f047 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/README.md @@ -0,0 +1,126 @@ +# @nodelib/fs.stat + +> Get the status of a file with some features. + +## :bulb: Highlights + +Wrapper around standard method `fs.lstat` and `fs.stat` with some features. + +* :beginner: Normally follows symbolic link. +* :gear: Can safely work with broken symbolic link. + +## Install + +```console +npm install @nodelib/fs.stat +``` + +## Usage + +```ts +import * as fsStat from '@nodelib/fs.stat'; + +fsStat.stat('path', (error, stats) => { /* … */ }); +``` + +## API + +### .stat(path, [optionsOrSettings], callback) + +Returns an instance of `fs.Stats` class for provided path with standard callback-style. + +```ts +fsStat.stat('path', (error, stats) => { /* … */ }); +fsStat.stat('path', {}, (error, stats) => { /* … */ }); +fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ }); +``` + +### .statSync(path, [optionsOrSettings]) + +Returns an instance of `fs.Stats` class for provided path. + +```ts +const stats = fsStat.stat('path'); +const stats = fsStat.stat('path', {}); +const stats = fsStat.stat('path', new fsStat.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsStat.Settings({ followSymbolicLink: false }); + +const stats = fsStat.stat('path', settings); +``` + +## Options + +### `followSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`. + +### `markSymbolicLink` + +* Type: `boolean` +* Default: `false` + +Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`). + +> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; +} + +const settings = new fsStat.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts new file mode 100644 index 0000000..3af759c --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts @@ -0,0 +1,13 @@ +/// +import * as fs from 'fs'; +import type { ErrnoException } from '../types'; +export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void; +export declare type StatSynchronousMethod = (path: string) => fs.Stats; +export interface FileSystemAdapter { + lstat: StatAsynchronousMethod; + stat: StatAsynchronousMethod; + lstatSync: StatSynchronousMethod; + statSync: StatSynchronousMethod; +} +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/node_modules/@nodelib/fs.stat/out/adapters/fs.js new file mode 100644 index 0000000..8dc08c8 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/index.d.ts b/node_modules/@nodelib/fs.stat/out/index.d.ts new file mode 100644 index 0000000..f95db99 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Stats } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function stat(path: string, callback: AsyncCallback): void; +declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace stat { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats; +export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats }; diff --git a/node_modules/@nodelib/fs.stat/out/index.js b/node_modules/@nodelib/fs.stat/out/index.js new file mode 100644 index 0000000..b23f751 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.statSync = exports.stat = exports.Settings = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.stat = stat; +function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.statSync = statSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts new file mode 100644 index 0000000..85423ce --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts @@ -0,0 +1,4 @@ +import type Settings from '../settings'; +import type { ErrnoException, Stats } from '../types'; +export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void; +export declare function read(path: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.js b/node_modules/@nodelib/fs.stat/out/providers/async.js new file mode 100644 index 0000000..983ff0e --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + callSuccessCallback(callback, lstat); + return; + } + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + callSuccessCallback(callback, stat); + }); + }); +} +exports.read = read; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts new file mode 100644 index 0000000..428c3d7 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts @@ -0,0 +1,3 @@ +import type Settings from '../settings'; +import type { Stats } from '../types'; +export declare function read(path: string, settings: Settings): Stats; diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.js b/node_modules/@nodelib/fs.stat/out/providers/sync.js new file mode 100644 index 0000000..1521c36 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings) { + const lstat = settings.fs.lstatSync(path); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + try { + const stat = settings.fs.statSync(path); + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + return stat; + } + catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + throw error; + } +} +exports.read = read; diff --git a/node_modules/@nodelib/fs.stat/out/settings.d.ts b/node_modules/@nodelib/fs.stat/out/settings.d.ts new file mode 100644 index 0000000..f4b3d44 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.d.ts @@ -0,0 +1,16 @@ +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLink?: boolean; + fs?: Partial; + markSymbolicLink?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLink: boolean; + readonly fs: fs.FileSystemAdapter; + readonly markSymbolicLink: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.stat/out/settings.js b/node_modules/@nodelib/fs.stat/out/settings.js new file mode 100644 index 0000000..111ec09 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/node_modules/@nodelib/fs.stat/out/types/index.d.ts new file mode 100644 index 0000000..74c08ed --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.d.ts @@ -0,0 +1,4 @@ +/// +import type * as fs from 'fs'; +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.js b/node_modules/@nodelib/fs.stat/out/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.stat/package.json b/node_modules/@nodelib/fs.stat/package.json new file mode 100644 index 0000000..f2540c2 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/package.json @@ -0,0 +1,37 @@ +{ + "name": "@nodelib/fs.stat", + "version": "2.0.5", + "description": "Get the status of a file with some features", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "stat" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.walk/LICENSE b/node_modules/@nodelib/fs.walk/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.walk/README.md b/node_modules/@nodelib/fs.walk/README.md new file mode 100644 index 0000000..6ccc08d --- /dev/null +++ b/node_modules/@nodelib/fs.walk/README.md @@ -0,0 +1,215 @@ +# @nodelib/fs.walk + +> A library for efficiently walking a directory recursively. + +## :bulb: Highlights + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :rocket: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type for performance reasons. See [`old` and `modern` mode](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode). +* :gear: Built-in directories/files and error filtering system. +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.walk +``` + +## Usage + +```ts +import * as fsWalk from '@nodelib/fs.walk'; + +fsWalk.walk('path', (error, entries) => { /* … */ }); +``` + +## API + +### .walk(path, [optionsOrSettings], callback) + +Reads the directory recursively and asynchronously. Requires a callback function. + +> :book: If you want to use the Promise API, use `util.promisify`. + +```ts +fsWalk.walk('path', (error, entries) => { /* … */ }); +fsWalk.walk('path', {}, (error, entries) => { /* … */ }); +fsWalk.walk('path', new fsWalk.Settings(), (error, entries) => { /* … */ }); +``` + +### .walkStream(path, [optionsOrSettings]) + +Reads the directory recursively and asynchronously. [Readable Stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_streams) is used as a provider. + +```ts +const stream = fsWalk.walkStream('path'); +const stream = fsWalk.walkStream('path', {}); +const stream = fsWalk.walkStream('path', new fsWalk.Settings()); +``` + +### .walkSync(path, [optionsOrSettings]) + +Reads the directory recursively and synchronously. Returns an array of entries. + +```ts +const entries = fsWalk.walkSync('path'); +const entries = fsWalk.walkSync('path', {}); +const entries = fsWalk.walkSync('path', new fsWalk.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsWalk.Settings({ followSymbolicLinks: true }); + +const entries = fsWalk.walkSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. +* [`stats`] — An instance of `fs.Stats` class. + +## Options + +### basePath + +* Type: `string` +* Default: `undefined` + +By default, all paths are built relative to the root path. You can use this option to set custom root path. + +In the example below we read the files from the `root` directory, but in the results the root path will be `custom`. + +```ts +fsWalk.walkSync('root'); // → ['root/file.txt'] +fsWalk.walkSync('root', { basePath: 'custom' }); // → ['custom/file.txt'] +``` + +### concurrency + +* Type: `number` +* Default: `Infinity` + +The maximum number of concurrent calls to `fs.readdir`. + +> :book: The higher the number, the higher performance and the load on the File System. If you want to read in quiet mode, set the value to `4 * os.cpus().length` (4 is default size of [thread pool work scheduling](http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling)). + +### deepFilter + +* Type: [`DeepFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the directory will be read deep or not. + +```ts +// Skip all directories that starts with `node_modules` +const filter: DeepFilterFunction = (entry) => !entry.path.startsWith('node_modules'); +``` + +### entryFilter + +* Type: [`EntryFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the entry will be included to results or not. + +```ts +// Exclude all `.js` files from results +const filter: EntryFilterFunction = (entry) => !entry.name.endsWith('.js'); +``` + +### errorFilter + +* Type: [`ErrorFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that allows you to skip errors that occur when reading directories. + +For example, you can skip `ENOENT` errors if required: + +```ts +// Skip all ENOENT errors +const filter: ErrorFilterFunction = (error) => error.code == 'ENOENT'; +``` + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` with additional `fs.lstat/fs.stat` calls to determine the entry type. + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: `FileSystemAdapter` +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat: typeof fs.lstat; + stat: typeof fs.stat; + lstatSync: typeof fs.lstatSync; + statSync: typeof fs.statSync; + readdir: typeof fs.readdir; + readdirSync: typeof fs.readdirSync; +} + +const settings = new fsWalk.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.walk/out/index.d.ts b/node_modules/@nodelib/fs.walk/out/index.d.ts new file mode 100644 index 0000000..8864c7b --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.d.ts @@ -0,0 +1,14 @@ +/// +import type { Readable } from 'stream'; +import type { Dirent, FileSystemAdapter } from '@nodelib/fs.scandir'; +import { AsyncCallback } from './providers/async'; +import Settings, { DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction, Options } from './settings'; +import type { Entry } from './types'; +declare function walk(directory: string, callback: AsyncCallback): void; +declare function walk(directory: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace walk { + function __promisify__(directory: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function walkSync(directory: string, optionsOrSettings?: Options | Settings): Entry[]; +declare function walkStream(directory: string, optionsOrSettings?: Options | Settings): Readable; +export { walk, walkSync, walkStream, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, Options, DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction }; diff --git a/node_modules/@nodelib/fs.walk/out/index.js b/node_modules/@nodelib/fs.walk/out/index.js new file mode 100644 index 0000000..1520787 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } + new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); +} +exports.walk = walk; +function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync_1.default(directory, settings); + return provider.read(); +} +exports.walkSync = walkSync; +function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream_1.default(directory, settings); + return provider.read(); +} +exports.walkStream = walkStream; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.d.ts b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts new file mode 100644 index 0000000..0f6717d --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts @@ -0,0 +1,12 @@ +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +export declare type AsyncCallback = (error: Errno, entries: Entry[]) => void; +export default class AsyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + private readonly _storage; + constructor(_root: string, _settings: Settings); + read(callback: AsyncCallback): void; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.js b/node_modules/@nodelib/fs.walk/out/providers/async.js new file mode 100644 index 0000000..51d3be5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const async_1 = require("../readers/async"); +class AsyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._storage = []; + } + read(callback) { + this._reader.onError((error) => { + callFailureCallback(callback, error); + }); + this._reader.onEntry((entry) => { + this._storage.push(entry); + }); + this._reader.onEnd(() => { + callSuccessCallback(callback, this._storage); + }); + this._reader.read(); + } +} +exports.default = AsyncProvider; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, entries) { + callback(null, entries); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.d.ts b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts new file mode 100644 index 0000000..874f60c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts @@ -0,0 +1,4 @@ +import AsyncProvider from './async'; +import StreamProvider from './stream'; +import SyncProvider from './sync'; +export { AsyncProvider, StreamProvider, SyncProvider }; diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.js b/node_modules/@nodelib/fs.walk/out/providers/index.js new file mode 100644 index 0000000..4c2529c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0; +const async_1 = require("./async"); +exports.AsyncProvider = async_1.default; +const stream_1 = require("./stream"); +exports.StreamProvider = stream_1.default; +const sync_1 = require("./sync"); +exports.SyncProvider = sync_1.default; diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts new file mode 100644 index 0000000..294185f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts @@ -0,0 +1,12 @@ +/// +import { Readable } from 'stream'; +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +export default class StreamProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + protected readonly _stream: Readable; + constructor(_root: string, _settings: Settings); + read(): Readable; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.js b/node_modules/@nodelib/fs.walk/out/providers/stream.js new file mode 100644 index 0000000..51298b0 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const async_1 = require("../readers/async"); +class StreamProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._stream = new stream_1.Readable({ + objectMode: true, + read: () => { }, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } + read() { + this._reader.onError((error) => { + this._stream.emit('error', error); + }); + this._reader.onEntry((entry) => { + this._stream.push(entry); + }); + this._reader.onEnd(() => { + this._stream.push(null); + }); + this._reader.read(); + return this._stream; + } +} +exports.default = StreamProvider; diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts new file mode 100644 index 0000000..551c42e --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts @@ -0,0 +1,10 @@ +import SyncReader from '../readers/sync'; +import type Settings from '../settings'; +import type { Entry } from '../types'; +export default class SyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: SyncReader; + constructor(_root: string, _settings: Settings); + read(): Entry[]; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.js b/node_modules/@nodelib/fs.walk/out/providers/sync.js new file mode 100644 index 0000000..faab6ca --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +class SyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync_1.default(this._root, this._settings); + } + read() { + return this._reader.read(); + } +} +exports.default = SyncProvider; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.d.ts b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts new file mode 100644 index 0000000..9acf4e6 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts @@ -0,0 +1,30 @@ +/// +import { EventEmitter } from 'events'; +import * as fsScandir from '@nodelib/fs.scandir'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +import Reader from './reader'; +declare type EntryEventCallback = (entry: Entry) => void; +declare type ErrorEventCallback = (error: Errno) => void; +declare type EndEventCallback = () => void; +export default class AsyncReader extends Reader { + protected readonly _settings: Settings; + protected readonly _scandir: typeof fsScandir.scandir; + protected readonly _emitter: EventEmitter; + private readonly _queue; + private _isFatalError; + private _isDestroyed; + constructor(_root: string, _settings: Settings); + read(): EventEmitter; + get isDestroyed(): boolean; + destroy(): void; + onEntry(callback: EntryEventCallback): void; + onError(callback: ErrorEventCallback): void; + onEnd(callback: EndEventCallback): void; + private _pushToQueue; + private _worker; + private _handleError; + private _handleEntry; + private _emitEntry; +} +export {}; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.js b/node_modules/@nodelib/fs.walk/out/readers/async.js new file mode 100644 index 0000000..ebe8dd5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const events_1 = require("events"); +const fsScandir = require("@nodelib/fs.scandir"); +const fastq = require("fastq"); +const common = require("./common"); +const reader_1 = require("./reader"); +class AsyncReader extends reader_1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = fsScandir.scandir; + this._emitter = new events_1.EventEmitter(); + this._queue = fastq(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit('end'); + } + }; + } + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error('The reader is already destroyed'); + } + this._isDestroyed = true; + this._queue.killAndDrain(); + } + onEntry(callback) { + this._emitter.on('entry', callback); + } + onError(callback) { + this._emitter.once('error', callback); + } + onEnd(callback) { + this._emitter.once('end', callback); + } + _pushToQueue(directory, base) { + const queueItem = { directory, base }; + this._queue.push(queueItem, (error) => { + if (error !== null) { + this._handleError(error); + } + }); + } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, undefined); + return; + } + for (const entry of entries) { + this._handleEntry(entry, item.base); + } + done(null, undefined); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } + this._isFatalError = true; + this._isDestroyed = true; + this._emitter.emit('error', error); + } + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _emitEntry(entry) { + this._emitter.emit('entry', entry); + } +} +exports.default = AsyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.d.ts b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts new file mode 100644 index 0000000..5985f97 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts @@ -0,0 +1,7 @@ +import type { FilterFunction } from '../settings'; +import type Settings from '../settings'; +import type { Errno } from '../types'; +export declare function isFatalError(settings: Settings, error: Errno): boolean; +export declare function isAppliedFilter(filter: FilterFunction | null, value: T): boolean; +export declare function replacePathSegmentSeparator(filepath: string, separator: string): string; +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.js b/node_modules/@nodelib/fs.walk/out/readers/common.js new file mode 100644 index 0000000..a93572f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; +function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; + } + return !settings.errorFilter(error); +} +exports.isFatalError = isFatalError; +function isAppliedFilter(filter, value) { + return filter === null || filter(value); +} +exports.isAppliedFilter = isAppliedFilter; +function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); +} +exports.replacePathSegmentSeparator = replacePathSegmentSeparator; +function joinPathSegments(a, b, separator) { + if (a === '') { + return b; + } + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts new file mode 100644 index 0000000..e1f383b --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts @@ -0,0 +1,6 @@ +import type Settings from '../settings'; +export default class Reader { + protected readonly _root: string; + protected readonly _settings: Settings; + constructor(_root: string, _settings: Settings); +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.js b/node_modules/@nodelib/fs.walk/out/readers/reader.js new file mode 100644 index 0000000..782f07c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const common = require("./common"); +class Reader { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } +} +exports.default = Reader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts new file mode 100644 index 0000000..af41033 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts @@ -0,0 +1,15 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry } from '../types'; +import Reader from './reader'; +export default class SyncReader extends Reader { + protected readonly _scandir: typeof fsScandir.scandirSync; + private readonly _storage; + private readonly _queue; + read(): Entry[]; + private _pushToQueue; + private _handleQueue; + private _handleDirectory; + private _handleError; + private _handleEntry; + private _pushToStorage; +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.js b/node_modules/@nodelib/fs.walk/out/readers/sync.js new file mode 100644 index 0000000..9a8d5a6 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsScandir = require("@nodelib/fs.scandir"); +const common = require("./common"); +const reader_1 = require("./reader"); +class SyncReader extends reader_1.default { + constructor() { + super(...arguments); + this._scandir = fsScandir.scandirSync; + this._storage = []; + this._queue = new Set(); + } + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); + return this._storage; + } + _pushToQueue(directory, base) { + this._queue.add({ directory, base }); + } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + for (const entry of entries) { + this._handleEntry(entry, base); + } + } + catch (error) { + this._handleError(error); + } + } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } + throw error; + } + _handleEntry(entry, base) { + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _pushToStorage(entry) { + this._storage.push(entry); + } +} +exports.default = SyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/settings.d.ts b/node_modules/@nodelib/fs.walk/out/settings.d.ts new file mode 100644 index 0000000..d1c4b45 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.d.ts @@ -0,0 +1,30 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry, Errno } from './types'; +export declare type FilterFunction = (value: T) => boolean; +export declare type DeepFilterFunction = FilterFunction; +export declare type EntryFilterFunction = FilterFunction; +export declare type ErrorFilterFunction = FilterFunction; +export interface Options { + basePath?: string; + concurrency?: number; + deepFilter?: DeepFilterFunction; + entryFilter?: EntryFilterFunction; + errorFilter?: ErrorFilterFunction; + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly basePath?: string; + readonly concurrency: number; + readonly deepFilter: DeepFilterFunction | null; + readonly entryFilter: EntryFilterFunction | null; + readonly errorFilter: ErrorFilterFunction | null; + readonly pathSegmentSeparator: string; + readonly fsScandirSettings: fsScandir.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.walk/out/settings.js b/node_modules/@nodelib/fs.walk/out/settings.js new file mode 100644 index 0000000..d7a85c8 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsScandir = require("@nodelib/fs.scandir"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, undefined); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.fsScandirSettings = new fsScandir.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.walk/out/types/index.d.ts b/node_modules/@nodelib/fs.walk/out/types/index.d.ts new file mode 100644 index 0000000..6ee9bd3 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.d.ts @@ -0,0 +1,8 @@ +/// +import type * as scandir from '@nodelib/fs.scandir'; +export declare type Entry = scandir.Entry; +export declare type Errno = NodeJS.ErrnoException; +export interface QueueItem { + directory: string; + base?: string; +} diff --git a/node_modules/@nodelib/fs.walk/out/types/index.js b/node_modules/@nodelib/fs.walk/out/types/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.walk/package.json b/node_modules/@nodelib/fs.walk/package.json new file mode 100644 index 0000000..86bfce4 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.walk", + "version": "1.2.8", + "description": "A library for efficiently walking a directory recursively", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "walk", + "scanner", + "crawler" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*", + "!out/**/tests/**" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "1e5bad48565da2b06b8600e744324ea240bf49d8" +} diff --git a/node_modules/ansi-regex/index.d.ts b/node_modules/ansi-regex/index.d.ts new file mode 100644 index 0000000..2dbf6af --- /dev/null +++ b/node_modules/ansi-regex/index.d.ts @@ -0,0 +1,37 @@ +declare namespace ansiRegex { + interface Options { + /** + Match only the first ANSI escape. + + @default false + */ + onlyFirst: boolean; + } +} + +/** +Regular expression for matching ANSI escape codes. + +@example +``` +import ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); +//=> ['\u001B[4m'] + +'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); +//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] +``` +*/ +declare function ansiRegex(options?: ansiRegex.Options): RegExp; + +export = ansiRegex; diff --git a/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js new file mode 100644 index 0000000..616ff83 --- /dev/null +++ b/node_modules/ansi-regex/index.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = ({onlyFirst = false} = {}) => { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); + + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +}; diff --git a/node_modules/ansi-regex/license b/node_modules/ansi-regex/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/ansi-regex/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json new file mode 100644 index 0000000..017f531 --- /dev/null +++ b/node_modules/ansi-regex/package.json @@ -0,0 +1,55 @@ +{ + "name": "ansi-regex", + "version": "5.0.1", + "description": "Regular expression for matching ANSI escape codes", + "license": "MIT", + "repository": "chalk/ansi-regex", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd", + "view-supported": "node fixtures/view-codes.js" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.9.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md new file mode 100644 index 0000000..4d848bc --- /dev/null +++ b/node_modules/ansi-regex/readme.md @@ -0,0 +1,78 @@ +# ansi-regex + +> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) + + +## Install + +``` +$ npm install ansi-regex +``` + + +## Usage + +```js +const ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); +//=> ['\u001B[4m'] + +'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); +//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] +``` + + +## API + +### ansiRegex(options?) + +Returns a regex for matching ANSI escape codes. + +#### options + +Type: `object` + +##### onlyFirst + +Type: `boolean`
+Default: `false` *(Matches any ANSI escape codes in a string)* + +Match only the first ANSI escape. + + +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/ansi-styles/index.d.ts b/node_modules/ansi-styles/index.d.ts new file mode 100644 index 0000000..44a907e --- /dev/null +++ b/node_modules/ansi-styles/index.d.ts @@ -0,0 +1,345 @@ +declare type CSSColor = + | 'aliceblue' + | 'antiquewhite' + | 'aqua' + | 'aquamarine' + | 'azure' + | 'beige' + | 'bisque' + | 'black' + | 'blanchedalmond' + | 'blue' + | 'blueviolet' + | 'brown' + | 'burlywood' + | 'cadetblue' + | 'chartreuse' + | 'chocolate' + | 'coral' + | 'cornflowerblue' + | 'cornsilk' + | 'crimson' + | 'cyan' + | 'darkblue' + | 'darkcyan' + | 'darkgoldenrod' + | 'darkgray' + | 'darkgreen' + | 'darkgrey' + | 'darkkhaki' + | 'darkmagenta' + | 'darkolivegreen' + | 'darkorange' + | 'darkorchid' + | 'darkred' + | 'darksalmon' + | 'darkseagreen' + | 'darkslateblue' + | 'darkslategray' + | 'darkslategrey' + | 'darkturquoise' + | 'darkviolet' + | 'deeppink' + | 'deepskyblue' + | 'dimgray' + | 'dimgrey' + | 'dodgerblue' + | 'firebrick' + | 'floralwhite' + | 'forestgreen' + | 'fuchsia' + | 'gainsboro' + | 'ghostwhite' + | 'gold' + | 'goldenrod' + | 'gray' + | 'green' + | 'greenyellow' + | 'grey' + | 'honeydew' + | 'hotpink' + | 'indianred' + | 'indigo' + | 'ivory' + | 'khaki' + | 'lavender' + | 'lavenderblush' + | 'lawngreen' + | 'lemonchiffon' + | 'lightblue' + | 'lightcoral' + | 'lightcyan' + | 'lightgoldenrodyellow' + | 'lightgray' + | 'lightgreen' + | 'lightgrey' + | 'lightpink' + | 'lightsalmon' + | 'lightseagreen' + | 'lightskyblue' + | 'lightslategray' + | 'lightslategrey' + | 'lightsteelblue' + | 'lightyellow' + | 'lime' + | 'limegreen' + | 'linen' + | 'magenta' + | 'maroon' + | 'mediumaquamarine' + | 'mediumblue' + | 'mediumorchid' + | 'mediumpurple' + | 'mediumseagreen' + | 'mediumslateblue' + | 'mediumspringgreen' + | 'mediumturquoise' + | 'mediumvioletred' + | 'midnightblue' + | 'mintcream' + | 'mistyrose' + | 'moccasin' + | 'navajowhite' + | 'navy' + | 'oldlace' + | 'olive' + | 'olivedrab' + | 'orange' + | 'orangered' + | 'orchid' + | 'palegoldenrod' + | 'palegreen' + | 'paleturquoise' + | 'palevioletred' + | 'papayawhip' + | 'peachpuff' + | 'peru' + | 'pink' + | 'plum' + | 'powderblue' + | 'purple' + | 'rebeccapurple' + | 'red' + | 'rosybrown' + | 'royalblue' + | 'saddlebrown' + | 'salmon' + | 'sandybrown' + | 'seagreen' + | 'seashell' + | 'sienna' + | 'silver' + | 'skyblue' + | 'slateblue' + | 'slategray' + | 'slategrey' + | 'snow' + | 'springgreen' + | 'steelblue' + | 'tan' + | 'teal' + | 'thistle' + | 'tomato' + | 'turquoise' + | 'violet' + | 'wheat' + | 'white' + | 'whitesmoke' + | 'yellow' + | 'yellowgreen'; + +declare namespace ansiStyles { + interface ColorConvert { + /** + The RGB color space. + + @param red - (`0`-`255`) + @param green - (`0`-`255`) + @param blue - (`0`-`255`) + */ + rgb(red: number, green: number, blue: number): string; + + /** + The RGB HEX color space. + + @param hex - A hexadecimal string containing RGB data. + */ + hex(hex: string): string; + + /** + @param keyword - A CSS color name. + */ + keyword(keyword: CSSColor): string; + + /** + The HSL color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param lightness - (`0`-`100`) + */ + hsl(hue: number, saturation: number, lightness: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param value - (`0`-`100`) + */ + hsv(hue: number, saturation: number, value: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param whiteness - (`0`-`100`) + @param blackness - (`0`-`100`) + */ + hwb(hue: number, whiteness: number, blackness: number): string; + + /** + Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. + */ + ansi(ansi: number): string; + + /** + Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(ansi: number): string; + } + + interface CSPair { + /** + The ANSI terminal control sequence for starting this style. + */ + readonly open: string; + + /** + The ANSI terminal control sequence for ending this style. + */ + readonly close: string; + } + + interface ColorBase { + readonly ansi: ColorConvert; + readonly ansi256: ColorConvert; + readonly ansi16m: ColorConvert; + + /** + The ANSI terminal control sequence for ending this color. + */ + readonly close: string; + } + + interface Modifier { + /** + Resets the current color chain. + */ + readonly reset: CSPair; + + /** + Make text bold. + */ + readonly bold: CSPair; + + /** + Emitting only a small amount of light. + */ + readonly dim: CSPair; + + /** + Make text italic. (Not widely supported) + */ + readonly italic: CSPair; + + /** + Make text underline. (Not widely supported) + */ + readonly underline: CSPair; + + /** + Inverse background and foreground colors. + */ + readonly inverse: CSPair; + + /** + Prints the text, but makes it invisible. + */ + readonly hidden: CSPair; + + /** + Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: CSPair; + } + + interface ForegroundColor { + readonly black: CSPair; + readonly red: CSPair; + readonly green: CSPair; + readonly yellow: CSPair; + readonly blue: CSPair; + readonly cyan: CSPair; + readonly magenta: CSPair; + readonly white: CSPair; + + /** + Alias for `blackBright`. + */ + readonly gray: CSPair; + + /** + Alias for `blackBright`. + */ + readonly grey: CSPair; + + readonly blackBright: CSPair; + readonly redBright: CSPair; + readonly greenBright: CSPair; + readonly yellowBright: CSPair; + readonly blueBright: CSPair; + readonly cyanBright: CSPair; + readonly magentaBright: CSPair; + readonly whiteBright: CSPair; + } + + interface BackgroundColor { + readonly bgBlack: CSPair; + readonly bgRed: CSPair; + readonly bgGreen: CSPair; + readonly bgYellow: CSPair; + readonly bgBlue: CSPair; + readonly bgCyan: CSPair; + readonly bgMagenta: CSPair; + readonly bgWhite: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGray: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGrey: CSPair; + + readonly bgBlackBright: CSPair; + readonly bgRedBright: CSPair; + readonly bgGreenBright: CSPair; + readonly bgYellowBright: CSPair; + readonly bgBlueBright: CSPair; + readonly bgCyanBright: CSPair; + readonly bgMagentaBright: CSPair; + readonly bgWhiteBright: CSPair; + } +} + +declare const ansiStyles: { + readonly modifier: ansiStyles.Modifier; + readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; + readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; + readonly codes: ReadonlyMap; +} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; + +export = ansiStyles; diff --git a/node_modules/ansi-styles/index.js b/node_modules/ansi-styles/index.js new file mode 100644 index 0000000..5d82581 --- /dev/null +++ b/node_modules/ansi-styles/index.js @@ -0,0 +1,163 @@ +'use strict'; + +const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; +}; + +const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; +}; + +const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; + +const ansi2ansi = n => n; +const rgb2rgb = (r, g, b) => [r, g, b]; + +const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + + return value; + }, + enumerable: true, + configurable: true + }); +}; + +/** @type {typeof import('color-convert')} */ +let colorConvert; +const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = require('color-convert'); + } + + const offset = isBackground ? 10 : 0; + const styles = {}; + + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } + + return styles; +}; + +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + + // Bright color + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + + // Alias bright black as gray (and grey) + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + + group[styleName] = styles[styleName]; + + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + + return styles; +} + +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); diff --git a/node_modules/ansi-styles/license b/node_modules/ansi-styles/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/ansi-styles/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json new file mode 100644 index 0000000..7539328 --- /dev/null +++ b/node_modules/ansi-styles/package.json @@ -0,0 +1,56 @@ +{ + "name": "ansi-styles", + "version": "4.3.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": "chalk/ansi-styles", + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "color-convert": "^2.0.1" + }, + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/ansi-styles/readme.md b/node_modules/ansi-styles/readme.md new file mode 100644 index 0000000..24883de --- /dev/null +++ b/node_modules/ansi-styles/readme.md @@ -0,0 +1,152 @@ +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) + +> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal + +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. + + + +## Install + +``` +$ npm install ansi-styles +``` + +## Usage + +```js +const style = require('ansi-styles'); + +console.log(`${style.green.open}Hello world!${style.green.close}`); + + +// Color conversion between 16/256/truecolor +// NOTE: If conversion goes to 16 colors or 256 colors, the original color +// may be degraded to fit that color palette. This means terminals +// that do not support 16 million colors will best-match the +// original color. +console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); +console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); +console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); +``` + +## API + +Each style has an `open` and `close` property. + +## Styles + +### Modifiers + +- `reset` +- `bold` +- `dim` +- `italic` *(Not widely supported)* +- `underline` +- `inverse` +- `hidden` +- `strikethrough` *(Not widely supported)* + +### Colors + +- `black` +- `red` +- `green` +- `yellow` +- `blue` +- `magenta` +- `cyan` +- `white` +- `blackBright` (alias: `gray`, `grey`) +- `redBright` +- `greenBright` +- `yellowBright` +- `blueBright` +- `magentaBright` +- `cyanBright` +- `whiteBright` + +### Background colors + +- `bgBlack` +- `bgRed` +- `bgGreen` +- `bgYellow` +- `bgBlue` +- `bgMagenta` +- `bgCyan` +- `bgWhite` +- `bgBlackBright` (alias: `bgGray`, `bgGrey`) +- `bgRedBright` +- `bgGreenBright` +- `bgYellowBright` +- `bgBlueBright` +- `bgMagentaBright` +- `bgCyanBright` +- `bgWhiteBright` + +## Advanced usage + +By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. + +- `style.modifier` +- `style.color` +- `style.bgColor` + +###### Example + +```js +console.log(style.color.green.open); +``` + +Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. + +###### Example + +```js +console.log(style.codes.get(36)); +//=> 39 +``` + +## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) + +`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. + +The following color spaces from `color-convert` are supported: + +- `rgb` +- `hex` +- `keyword` +- `hsl` +- `hsv` +- `hwb` +- `ansi` +- `ansi256` + +To use these, call the associated conversion function with the intended output, for example: + +```js +style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code +style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code + +style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code +style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code + +style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code +style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code +``` + +## Related + +- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + +## For enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE new file mode 100644 index 0000000..491766c --- /dev/null +++ b/node_modules/anymatch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/anymatch/README.md b/node_modules/anymatch/README.md new file mode 100644 index 0000000..1dd67f5 --- /dev/null +++ b/node_modules/anymatch/README.md @@ -0,0 +1,87 @@ +anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) +====== +Javascript module to match a string against a regular expression, glob, string, +or function that takes the string as an argument and returns a truthy or falsy +value. The matcher can also be an array of any or all of these. Useful for +allowing a very flexible user-defined config to define things like file paths. + +__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ + + +Usage +----- +```sh +npm install anymatch +``` + +#### anymatch(matchers, testString, [returnIndex], [options]) +* __matchers__: (_Array|String|RegExp|Function_) +String to be directly matched, string with glob patterns, regular expression +test, function that takes the testString as an argument and returns a truthy +value if it should be matched, or an array of any number and mix of these types. +* __testString__: (_String|Array_) The string to test against the matchers. If +passed as an array, the first element of the array will be used as the +`testString` for non-function matchers, while the entire array will be applied +as the arguments for function matchers. +* __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. + * __returnIndex__: (_Boolean [optional]_) If true, return the array index of +the first matcher that that testString matched, or -1 if no match, instead of a +boolean result. + +```js +const anymatch = require('anymatch'); + +const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; + +anymatch(matchers, 'path/to/file.js'); // true +anymatch(matchers, 'path/anyjs/baz.js'); // true +anymatch(matchers, 'path/to/foo.js'); // true +anymatch(matchers, 'path/to/bar.js'); // true +anymatch(matchers, 'bar.js'); // false + +// returnIndex = true +anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 +anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 + +// any picomatc + +// using globs to match directories and their children +anymatch('node_modules', 'node_modules'); // true +anymatch('node_modules', 'node_modules/somelib/index.js'); // false +anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true +anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false +anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true + +const matcher = anymatch(matchers); +['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] +anymatch master* ❯ + +``` + +#### anymatch(matchers) +You can also pass in only your matcher(s) to get a curried function that has +already been bound to the provided matching criteria. This can be used as an +`Array#filter` callback. + +```js +var matcher = anymatch(matchers); + +matcher('path/to/file.js'); // true +matcher('path/anyjs/baz.js', true); // 1 + +['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] +``` + +Changelog +---------- +[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) + +- **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. +- **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). +- **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) +for glob pattern matching. Issues with glob pattern matching should be +reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). + +License +------- +[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) diff --git a/node_modules/anymatch/index.d.ts b/node_modules/anymatch/index.d.ts new file mode 100644 index 0000000..3ef7eaa --- /dev/null +++ b/node_modules/anymatch/index.d.ts @@ -0,0 +1,20 @@ +type AnymatchFn = (testString: string) => boolean; +type AnymatchPattern = string|RegExp|AnymatchFn; +type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] +type AnymatchTester = { + (testString: string|any[], returnIndex: true): number; + (testString: string|any[]): boolean; +} + +type PicomatchOptions = {dot: boolean}; + +declare const anymatch: { + (matchers: AnymatchMatcher): AnymatchTester; + (matchers: AnymatchMatcher, testString: null, returnIndex: true | PicomatchOptions): AnymatchTester; + (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; + (matchers: AnymatchMatcher, testString: string|any[]): boolean; +} + +export {AnymatchMatcher as Matcher} +export {AnymatchTester as Tester} +export default anymatch diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js new file mode 100644 index 0000000..8eb73e9 --- /dev/null +++ b/node_modules/anymatch/index.js @@ -0,0 +1,104 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { value: true }); + +const picomatch = require('picomatch'); +const normalizePath = require('normalize-path'); + +/** + * @typedef {(testString: string) => boolean} AnymatchFn + * @typedef {string|RegExp|AnymatchFn} AnymatchPattern + * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher + */ +const BANG = '!'; +const DEFAULT_OPTIONS = {returnIndex: false}; +const arrify = (item) => Array.isArray(item) ? item : [item]; + +/** + * @param {AnymatchPattern} matcher + * @param {object} options + * @returns {AnymatchFn} + */ +const createPattern = (matcher, options) => { + if (typeof matcher === 'function') { + return matcher; + } + if (typeof matcher === 'string') { + const glob = picomatch(matcher, options); + return (string) => matcher === string || glob(string); + } + if (matcher instanceof RegExp) { + return (string) => matcher.test(string); + } + return (string) => false; +}; + +/** + * @param {Array} patterns + * @param {Array} negPatterns + * @param {String|Array} args + * @param {Boolean} returnIndex + * @returns {boolean|number} + */ +const matchPatterns = (patterns, negPatterns, args, returnIndex) => { + const isList = Array.isArray(args); + const _path = isList ? args[0] : args; + if (!isList && typeof _path !== 'string') { + throw new TypeError('anymatch: second argument must be a string: got ' + + Object.prototype.toString.call(_path)) + } + const path = normalizePath(_path, false); + + for (let index = 0; index < negPatterns.length; index++) { + const nglob = negPatterns[index]; + if (nglob(path)) { + return returnIndex ? -1 : false; + } + } + + const applied = isList && [path].concat(args.slice(1)); + for (let index = 0; index < patterns.length; index++) { + const pattern = patterns[index]; + if (isList ? pattern(...applied) : pattern(path)) { + return returnIndex ? index : true; + } + } + + return returnIndex ? -1 : false; +}; + +/** + * @param {AnymatchMatcher} matchers + * @param {Array|string} testString + * @param {object} options + * @returns {boolean|number|Function} + */ +const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { + if (matchers == null) { + throw new TypeError('anymatch: specify first argument'); + } + const opts = typeof options === 'boolean' ? {returnIndex: options} : options; + const returnIndex = opts.returnIndex || false; + + // Early cache for matchers. + const mtchers = arrify(matchers); + const negatedGlobs = mtchers + .filter(item => typeof item === 'string' && item.charAt(0) === BANG) + .map(item => item.slice(1)) + .map(item => picomatch(item, opts)); + const patterns = mtchers + .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG)) + .map(matcher => createPattern(matcher, opts)); + + if (testString == null) { + return (testString, ri = false) => { + const returnIndex = typeof ri === 'boolean' ? ri : false; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + } + } + + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); +}; + +anymatch.default = anymatch; +module.exports = anymatch; diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json new file mode 100644 index 0000000..2cb2307 --- /dev/null +++ b/node_modules/anymatch/package.json @@ -0,0 +1,48 @@ +{ + "name": "anymatch", + "version": "3.1.3", + "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", + "files": [ + "index.js", + "index.d.ts" + ], + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "author": { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + "license": "ISC", + "homepage": "https://github.com/micromatch/anymatch", + "repository": { + "type": "git", + "url": "https://github.com/micromatch/anymatch" + }, + "keywords": [ + "match", + "any", + "string", + "file", + "fs", + "list", + "glob", + "regex", + "regexp", + "regular", + "expression", + "function" + ], + "scripts": { + "test": "nyc mocha", + "mocha": "mocha" + }, + "devDependencies": { + "mocha": "^6.1.3", + "nyc": "^14.0.0" + }, + "engines": { + "node": ">= 8" + } +} diff --git a/node_modules/array-union/index.d.ts b/node_modules/array-union/index.d.ts new file mode 100644 index 0000000..379fc1d --- /dev/null +++ b/node_modules/array-union/index.d.ts @@ -0,0 +1,25 @@ +/** +Create an array of unique values, in order, from the input arrays. + +@example +``` +import arrayUnion = require('array-union'); + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar']); +//=> ['foo', 'bar'] + +arrayUnion(['🐱', '🦄', '🐻'], ['🦄', '🌈']); +//=> ['🐱', '🦄', '🐻', '🌈'] + +arrayUnion(['🐱', '🦄'], ['🐻', '🦄'], ['🐶', '🌈', '🌈']); +//=> ['🐱', '🦄', '🐻', '🐶', '🌈'] +``` +*/ +declare function arrayUnion( + ...arguments: readonly ArgumentsType[] +): ArgumentsType; + +export = arrayUnion; diff --git a/node_modules/array-union/index.js b/node_modules/array-union/index.js new file mode 100644 index 0000000..a5a3df8 --- /dev/null +++ b/node_modules/array-union/index.js @@ -0,0 +1,3 @@ +const arrayUnion = (...arguments_) => [...new Set(arguments_.flat())]; + +export default arrayUnion; diff --git a/node_modules/array-union/license b/node_modules/array-union/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/array-union/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/array-union/package.json b/node_modules/array-union/package.json new file mode 100644 index 0000000..e7f7468 --- /dev/null +++ b/node_modules/array-union/package.json @@ -0,0 +1,46 @@ +{ + "name": "array-union", + "version": "3.0.1", + "description": "Create an array of unique values, in order, from the input arrays", + "license": "MIT", + "repository": "sindresorhus/array-union", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "array", + "set", + "uniq", + "unique", + "duplicate", + "remove", + "union", + "combine", + "merge" + ], + "devDependencies": { + "ava": "^3.15.0", + "tsd": "^0.14.0", + "xo": "^0.38.2" + }, + "tsd": { + "compilerOptions": { + "esModuleInterop": true + } + } +} diff --git a/node_modules/array-union/readme.md b/node_modules/array-union/readme.md new file mode 100644 index 0000000..b0b67fb --- /dev/null +++ b/node_modules/array-union/readme.md @@ -0,0 +1,39 @@ +# array-union + +> Create an array of unique values, in order, from the input arrays + +## Install + +``` +$ npm install array-union +``` + +## Usage + +```js +import arrayUnion from 'array-union'; + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar']); +//=> ['foo', 'bar'] + +arrayUnion(['🐱', '🦄', '🐻'], ['🦄', '🌈']); +//=> ['🐱', '🦄', '🐻', '🌈'] + +arrayUnion(['🐱', '🦄'], ['🐻', '🦄'], ['🐶', '🌈', '🌈']); +//=> ['🐱', '🦄', '🐻', '🐶', '🌈'] +``` + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/autoprefixer/LICENSE b/node_modules/autoprefixer/LICENSE new file mode 100644 index 0000000..da057b4 --- /dev/null +++ b/node_modules/autoprefixer/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2013 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/autoprefixer/README.md b/node_modules/autoprefixer/README.md new file mode 100644 index 0000000..13b2ddb --- /dev/null +++ b/node_modules/autoprefixer/README.md @@ -0,0 +1,66 @@ +# Autoprefixer [![Cult Of Martians][cult-img]][cult] + + + +[PostCSS] plugin to parse CSS and add vendor prefixes to CSS rules using values +from [Can I Use]. It is recommended by Google and used in Twitter and Alibaba. + +Write your CSS rules without vendor prefixes (in fact, forget about them +entirely): + +```css +::placeholder { + color: gray; +} + +.image { + background-image: url(image@1x.png); +} +@media (min-resolution: 2dppx) { + .image { + background-image: url(image@2x.png); + } +} +``` + +Autoprefixer will use the data based on current browser popularity and property +support to apply prefixes for you. You can try the [interactive demo] +of Autoprefixer. + +```css +::-moz-placeholder { + color: gray; +} +::placeholder { + color: gray; +} + +.image { + background-image: url(image@1x.png); +} +@media (-webkit-min-device-pixel-ratio: 2), + (min-resolution: 2dppx) { + .image { + background-image: url(image@2x.png); + } +} +``` + +Twitter account for news and releases: [@autoprefixer]. + + +Sponsored by Evil Martians + + +[interactive demo]: https://autoprefixer.github.io/ +[@autoprefixer]: https://twitter.com/autoprefixer +[Can I Use]: https://caniuse.com/ +[cult-img]: http://cultofmartians.com/assets/badges/badge.svg +[PostCSS]: https://github.com/postcss/postcss +[cult]: http://cultofmartians.com/tasks/autoprefixer-grid.html + + +## Docs +Read full docs **[here](https://github.com/postcss/autoprefixer#readme)**. diff --git a/node_modules/autoprefixer/bin/autoprefixer b/node_modules/autoprefixer/bin/autoprefixer new file mode 100755 index 0000000..785830e --- /dev/null +++ b/node_modules/autoprefixer/bin/autoprefixer @@ -0,0 +1,22 @@ +#!/usr/bin/env node + +let mode = process.argv[2] +if (mode === '--info') { + process.stdout.write(require('../')().info() + '\n') +} else if (mode === '--version') { + process.stdout.write( + 'autoprefixer ' + require('../package.json').version + '\n' + ) +} else { + process.stdout.write( + 'autoprefix\n' + + '\n' + + 'Options:\n' + + ' --info Show target browsers and used prefixes\n' + + ' --version Show version number\n' + + ' --help Show help\n' + + '\n' + + 'Usage:\n' + + ' autoprefixer --info\n' + ) +} diff --git a/node_modules/autoprefixer/data/prefixes.js b/node_modules/autoprefixer/data/prefixes.js new file mode 100644 index 0000000..d9872fb --- /dev/null +++ b/node_modules/autoprefixer/data/prefixes.js @@ -0,0 +1,1124 @@ +let unpack = require('caniuse-lite/dist/unpacker/feature') + +function browsersSort(a, b) { + a = a.split(' ') + b = b.split(' ') + if (a[0] > b[0]) { + return 1 + } else if (a[0] < b[0]) { + return -1 + } else { + return Math.sign(parseFloat(a[1]) - parseFloat(b[1])) + } +} + +// Convert Can I Use data +function f(data, opts, callback) { + data = unpack(data) + + if (!callback) { + ;[callback, opts] = [opts, {}] + } + + let match = opts.match || /\sx($|\s)/ + let need = [] + + for (let browser in data.stats) { + let versions = data.stats[browser] + for (let version in versions) { + let support = versions[version] + if (support.match(match)) { + need.push(browser + ' ' + version) + } + } + } + + callback(need.sort(browsersSort)) +} + +// Add data for all properties +let result = {} + +function prefix(names, data) { + for (let name of names) { + result[name] = Object.assign({}, data) + } +} + +function add(names, data) { + for (let name of names) { + result[name].browsers = result[name].browsers + .concat(data.browsers) + .sort(browsersSort) + } +} + +module.exports = result + +// Border Radius +let prefixBorderRadius = require('caniuse-lite/data/features/border-radius') + +f(prefixBorderRadius, browsers => + prefix( + [ + 'border-radius', + 'border-top-left-radius', + 'border-top-right-radius', + 'border-bottom-right-radius', + 'border-bottom-left-radius' + ], + { + mistakes: ['-khtml-', '-ms-', '-o-'], + feature: 'border-radius', + browsers + } + ) +) + +// Box Shadow +let prefixBoxshadow = require('caniuse-lite/data/features/css-boxshadow') + +f(prefixBoxshadow, browsers => + prefix(['box-shadow'], { + mistakes: ['-khtml-'], + feature: 'css-boxshadow', + browsers + }) +) + +// Animation +let prefixAnimation = require('caniuse-lite/data/features/css-animation') + +f(prefixAnimation, browsers => + prefix( + [ + 'animation', + 'animation-name', + 'animation-duration', + 'animation-delay', + 'animation-direction', + 'animation-fill-mode', + 'animation-iteration-count', + 'animation-play-state', + 'animation-timing-function', + '@keyframes' + ], + { + mistakes: ['-khtml-', '-ms-'], + feature: 'css-animation', + browsers + } + ) +) + +// Transition +let prefixTransition = require('caniuse-lite/data/features/css-transitions') + +f(prefixTransition, browsers => + prefix( + [ + 'transition', + 'transition-property', + 'transition-duration', + 'transition-delay', + 'transition-timing-function' + ], + { + mistakes: ['-khtml-', '-ms-'], + browsers, + feature: 'css-transitions' + } + ) +) + +// Transform 2D +let prefixTransform2d = require('caniuse-lite/data/features/transforms2d') + +f(prefixTransform2d, browsers => + prefix(['transform', 'transform-origin'], { + feature: 'transforms2d', + browsers + }) +) + +// Transform 3D +let prefixTransforms3d = require('caniuse-lite/data/features/transforms3d') + +f(prefixTransforms3d, browsers => { + prefix(['perspective', 'perspective-origin'], { + feature: 'transforms3d', + browsers + }) + return prefix(['transform-style'], { + mistakes: ['-ms-', '-o-'], + browsers, + feature: 'transforms3d' + }) +}) + +f(prefixTransforms3d, { match: /y\sx|y\s#2/ }, browsers => + prefix(['backface-visibility'], { + mistakes: ['-ms-', '-o-'], + feature: 'transforms3d', + browsers + }) +) + +// Gradients +let prefixGradients = require('caniuse-lite/data/features/css-gradients') + +f(prefixGradients, { match: /y\sx/ }, browsers => + prefix( + [ + 'linear-gradient', + 'repeating-linear-gradient', + 'radial-gradient', + 'repeating-radial-gradient' + ], + { + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ], + mistakes: ['-ms-'], + feature: 'css-gradients', + browsers + } + ) +) + +f(prefixGradients, { match: /a\sx/ }, browsers => { + browsers = browsers.map(i => { + if (/firefox|op/.test(i)) { + return i + } else { + return `${i} old` + } + }) + return add( + [ + 'linear-gradient', + 'repeating-linear-gradient', + 'radial-gradient', + 'repeating-radial-gradient' + ], + { + feature: 'css-gradients', + browsers + } + ) +}) + +// Box sizing +let prefixBoxsizing = require('caniuse-lite/data/features/css3-boxsizing') + +f(prefixBoxsizing, browsers => + prefix(['box-sizing'], { + feature: 'css3-boxsizing', + browsers + }) +) + +// Filter Effects +let prefixFilters = require('caniuse-lite/data/features/css-filters') + +f(prefixFilters, browsers => + prefix(['filter'], { + feature: 'css-filters', + browsers + }) +) + +// filter() function +let prefixFilterFunction = require('caniuse-lite/data/features/css-filter-function') + +f(prefixFilterFunction, browsers => + prefix(['filter-function'], { + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ], + feature: 'css-filter-function', + browsers + }) +) + +// Backdrop-filter +let prefixBackdrop = require('caniuse-lite/data/features/css-backdrop-filter') + +f(prefixBackdrop, { match: /y\sx|y\s#2/ }, browsers => + prefix(['backdrop-filter'], { + feature: 'css-backdrop-filter', + browsers + }) +) + +// element() function +let prefixElementFunction = require('caniuse-lite/data/features/css-element-function') + +f(prefixElementFunction, browsers => + prefix(['element'], { + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ], + feature: 'css-element-function', + browsers + }) +) + +// Multicolumns +let prefixMulticolumns = require('caniuse-lite/data/features/multicolumn') + +f(prefixMulticolumns, browsers => { + prefix( + [ + 'columns', + 'column-width', + 'column-gap', + 'column-rule', + 'column-rule-color', + 'column-rule-width', + 'column-count', + 'column-rule-style', + 'column-span', + 'column-fill' + ], + { + feature: 'multicolumn', + browsers + } + ) + + let noff = browsers.filter(i => !/firefox/.test(i)) + prefix(['break-before', 'break-after', 'break-inside'], { + feature: 'multicolumn', + browsers: noff + }) +}) + +// User select +let prefixUserSelect = require('caniuse-lite/data/features/user-select-none') + +f(prefixUserSelect, browsers => + prefix(['user-select'], { + mistakes: ['-khtml-'], + feature: 'user-select-none', + browsers + }) +) + +// Flexible Box Layout +let prefixFlexbox = require('caniuse-lite/data/features/flexbox') + +f(prefixFlexbox, { match: /a\sx/ }, browsers => { + browsers = browsers.map(i => { + if (/ie|firefox/.test(i)) { + return i + } else { + return `${i} 2009` + } + }) + prefix(['display-flex', 'inline-flex'], { + props: ['display'], + feature: 'flexbox', + browsers + }) + prefix(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], { + feature: 'flexbox', + browsers + }) + prefix( + [ + 'flex-direction', + 'flex-wrap', + 'flex-flow', + 'justify-content', + 'order', + 'align-items', + 'align-self', + 'align-content' + ], + { + feature: 'flexbox', + browsers + } + ) +}) + +f(prefixFlexbox, { match: /y\sx/ }, browsers => { + add(['display-flex', 'inline-flex'], { + feature: 'flexbox', + browsers + }) + add(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], { + feature: 'flexbox', + browsers + }) + add( + [ + 'flex-direction', + 'flex-wrap', + 'flex-flow', + 'justify-content', + 'order', + 'align-items', + 'align-self', + 'align-content' + ], + { + feature: 'flexbox', + browsers + } + ) +}) + +// calc() unit +let prefixCalc = require('caniuse-lite/data/features/calc') + +f(prefixCalc, browsers => + prefix(['calc'], { + props: ['*'], + feature: 'calc', + browsers + }) +) + +// Background options +let prefixBackgroundOptions = require('caniuse-lite/data/features/background-img-opts') + +f(prefixBackgroundOptions, browsers => + prefix(['background-origin', 'background-size'], { + feature: 'background-img-opts', + browsers + }) +) + +// background-clip: text +let prefixBackgroundClipText = require('caniuse-lite/data/features/background-clip-text') + +f(prefixBackgroundClipText, browsers => + prefix(['background-clip'], { + feature: 'background-clip-text', + browsers + }) +) + +// Font feature settings +let prefixFontFeature = require('caniuse-lite/data/features/font-feature') + +f(prefixFontFeature, browsers => + prefix( + [ + 'font-feature-settings', + 'font-variant-ligatures', + 'font-language-override' + ], + { + feature: 'font-feature', + browsers + } + ) +) + +// CSS font-kerning property +let prefixFontKerning = require('caniuse-lite/data/features/font-kerning') + +f(prefixFontKerning, browsers => + prefix(['font-kerning'], { + feature: 'font-kerning', + browsers + }) +) + +// Border image +let prefixBorderImage = require('caniuse-lite/data/features/border-image') + +f(prefixBorderImage, browsers => + prefix(['border-image'], { + feature: 'border-image', + browsers + }) +) + +// Selection selector +let prefixSelection = require('caniuse-lite/data/features/css-selection') + +f(prefixSelection, browsers => + prefix(['::selection'], { + selector: true, + feature: 'css-selection', + browsers + }) +) + +// Placeholder selector +let prefixPlaceholder = require('caniuse-lite/data/features/css-placeholder') + +f(prefixPlaceholder, browsers => { + prefix(['::placeholder'], { + selector: true, + feature: 'css-placeholder', + browsers: browsers.concat(['ie 10 old', 'ie 11 old', 'firefox 18 old']) + }) +}) + +// Placeholder-shown selector +let prefixPlaceholderShown = require('caniuse-lite/data/features/css-placeholder-shown') + +f(prefixPlaceholderShown, browsers => { + prefix([':placeholder-shown'], { + selector: true, + feature: 'css-placeholder-shown', + browsers + }) +}) + +// Hyphenation +let prefixHyphens = require('caniuse-lite/data/features/css-hyphens') + +f(prefixHyphens, browsers => + prefix(['hyphens'], { + feature: 'css-hyphens', + browsers + }) +) + +// Fullscreen selector +let prefixFullscreen = require('caniuse-lite/data/features/fullscreen') + +f(prefixFullscreen, browsers => + prefix([':fullscreen'], { + selector: true, + feature: 'fullscreen', + browsers + }) +) + +f(prefixFullscreen, { match: /x(\s#2|$)/ }, browsers => + prefix(['::backdrop'], { + selector: true, + feature: 'fullscreen', + browsers + }) +) + +// File selector button +let prefixFileSelectorButton = require('caniuse-lite/data/features/css-file-selector-button') + +f(prefixFileSelectorButton, browsers => + prefix(['::file-selector-button'], { + selector: true, + feature: 'file-selector-button', + browsers + }) +) + +// :autofill +let prefixAutofill = require('caniuse-lite/data/features/css-autofill') + +f(prefixAutofill, browsers => + prefix([':autofill'], { + selector: true, + feature: 'css-autofill', + browsers + }) +) + +// Tab size +let prefixTabsize = require('caniuse-lite/data/features/css3-tabsize') + +f(prefixTabsize, browsers => + prefix(['tab-size'], { + feature: 'css3-tabsize', + browsers + }) +) + +// Intrinsic & extrinsic sizing +let prefixIntrinsic = require('caniuse-lite/data/features/intrinsic-width') + +let sizeProps = [ + 'width', + 'min-width', + 'max-width', + 'height', + 'min-height', + 'max-height', + 'inline-size', + 'min-inline-size', + 'max-inline-size', + 'block-size', + 'min-block-size', + 'max-block-size', + 'grid', + 'grid-template', + 'grid-template-rows', + 'grid-template-columns', + 'grid-auto-columns', + 'grid-auto-rows' +] + +f(prefixIntrinsic, browsers => + prefix(['max-content', 'min-content'], { + props: sizeProps, + feature: 'intrinsic-width', + browsers + }) +) + +f(prefixIntrinsic, { match: /x|\s#4/ }, browsers => + prefix(['fill', 'fill-available'], { + props: sizeProps, + feature: 'intrinsic-width', + browsers + }) +) + +f(prefixIntrinsic, { match: /x|\s#5/ }, browsers => + prefix(['fit-content'], { + props: sizeProps, + feature: 'intrinsic-width', + browsers + }) +) + +// Stretch value + +let prefixStretch = require('caniuse-lite/data/features/css-width-stretch') + +f(prefixStretch, browsers => + prefix(['stretch'], { + props: sizeProps, + feature: 'css-width-stretch', + browsers + }) +) + +// Zoom cursors +let prefixCursorsNewer = require('caniuse-lite/data/features/css3-cursors-newer') + +f(prefixCursorsNewer, browsers => + prefix(['zoom-in', 'zoom-out'], { + props: ['cursor'], + feature: 'css3-cursors-newer', + browsers + }) +) + +// Grab cursors +let prefixCursorsGrab = require('caniuse-lite/data/features/css3-cursors-grab') + +f(prefixCursorsGrab, browsers => + prefix(['grab', 'grabbing'], { + props: ['cursor'], + feature: 'css3-cursors-grab', + browsers + }) +) + +// Sticky position +let prefixSticky = require('caniuse-lite/data/features/css-sticky') + +f(prefixSticky, browsers => + prefix(['sticky'], { + props: ['position'], + feature: 'css-sticky', + browsers + }) +) + +// Pointer Events +let prefixPointer = require('caniuse-lite/data/features/pointer') + +f(prefixPointer, browsers => + prefix(['touch-action'], { + feature: 'pointer', + browsers + }) +) + +// Text decoration +let prefixDecoration = require('caniuse-lite/data/features/text-decoration') + +f(prefixDecoration, { match: /x.*#[235]/ }, browsers => + prefix(['text-decoration-skip', 'text-decoration-skip-ink'], { + feature: 'text-decoration', + browsers + }) +) + +let prefixDecorationShorthand = require('caniuse-lite/data/features/mdn-text-decoration-shorthand') + +f(prefixDecorationShorthand, browsers => + prefix(['text-decoration'], { + feature: 'text-decoration', + browsers + }) +) + +let prefixDecorationColor = require('caniuse-lite/data/features/mdn-text-decoration-color') + +f(prefixDecorationColor, browsers => + prefix(['text-decoration-color'], { + feature: 'text-decoration', + browsers + }) +) + +let prefixDecorationLine = require('caniuse-lite/data/features/mdn-text-decoration-line') + +f(prefixDecorationLine, browsers => + prefix(['text-decoration-line'], { + feature: 'text-decoration', + browsers + }) +) + +let prefixDecorationStyle = require('caniuse-lite/data/features/mdn-text-decoration-style') + +f(prefixDecorationStyle, browsers => + prefix(['text-decoration-style'], { + feature: 'text-decoration', + browsers + }) +) + +// Text Size Adjust +let prefixTextSizeAdjust = require('caniuse-lite/data/features/text-size-adjust') + +f(prefixTextSizeAdjust, browsers => + prefix(['text-size-adjust'], { + feature: 'text-size-adjust', + browsers + }) +) + +// CSS Masks +let prefixCssMasks = require('caniuse-lite/data/features/css-masks') + +f(prefixCssMasks, browsers => { + prefix( + [ + 'mask-clip', + 'mask-composite', + 'mask-image', + 'mask-origin', + 'mask-repeat', + 'mask-border-repeat', + 'mask-border-source' + ], + { + feature: 'css-masks', + browsers + } + ) + prefix( + [ + 'mask', + 'mask-position', + 'mask-size', + 'mask-border', + 'mask-border-outset', + 'mask-border-width', + 'mask-border-slice' + ], + { + feature: 'css-masks', + browsers + } + ) +}) + +// CSS clip-path property +let prefixClipPath = require('caniuse-lite/data/features/css-clip-path') + +f(prefixClipPath, browsers => + prefix(['clip-path'], { + feature: 'css-clip-path', + browsers + }) +) + +// Fragmented Borders and Backgrounds +let prefixBoxdecoration = require('caniuse-lite/data/features/css-boxdecorationbreak') + +f(prefixBoxdecoration, browsers => + prefix(['box-decoration-break'], { + feature: 'css-boxdecorationbreak', + browsers + }) +) + +// CSS3 object-fit/object-position +let prefixObjectFit = require('caniuse-lite/data/features/object-fit') + +f(prefixObjectFit, browsers => + prefix(['object-fit', 'object-position'], { + feature: 'object-fit', + browsers + }) +) + +// CSS Shapes +let prefixShapes = require('caniuse-lite/data/features/css-shapes') + +f(prefixShapes, browsers => + prefix(['shape-margin', 'shape-outside', 'shape-image-threshold'], { + feature: 'css-shapes', + browsers + }) +) + +// CSS3 text-overflow +let prefixTextOverflow = require('caniuse-lite/data/features/text-overflow') + +f(prefixTextOverflow, browsers => + prefix(['text-overflow'], { + feature: 'text-overflow', + browsers + }) +) + +// Viewport at-rule +let prefixDeviceadaptation = require('caniuse-lite/data/features/css-deviceadaptation') + +f(prefixDeviceadaptation, browsers => + prefix(['@viewport'], { + feature: 'css-deviceadaptation', + browsers + }) +) + +// Resolution Media Queries +let prefixResolut = require('caniuse-lite/data/features/css-media-resolution') + +f(prefixResolut, { match: /( x($| )|a #2)/ }, browsers => + prefix(['@resolution'], { + feature: 'css-media-resolution', + browsers + }) +) + +// CSS text-align-last +let prefixTextAlignLast = require('caniuse-lite/data/features/css-text-align-last') + +f(prefixTextAlignLast, browsers => + prefix(['text-align-last'], { + feature: 'css-text-align-last', + browsers + }) +) + +// Crisp Edges Image Rendering Algorithm +let prefixCrispedges = require('caniuse-lite/data/features/css-crisp-edges') + +f(prefixCrispedges, { match: /y x|a x #1/ }, browsers => + prefix(['pixelated'], { + props: ['image-rendering'], + feature: 'css-crisp-edges', + browsers + }) +) + +f(prefixCrispedges, { match: /a x #2/ }, browsers => + prefix(['image-rendering'], { + feature: 'css-crisp-edges', + browsers + }) +) + +// Logical Properties +let prefixLogicalProps = require('caniuse-lite/data/features/css-logical-props') + +f(prefixLogicalProps, browsers => + prefix( + [ + 'border-inline-start', + 'border-inline-end', + 'margin-inline-start', + 'margin-inline-end', + 'padding-inline-start', + 'padding-inline-end' + ], + { + feature: 'css-logical-props', + browsers + } + ) +) + +f(prefixLogicalProps, { match: /x\s#2/ }, browsers => + prefix( + [ + 'border-block-start', + 'border-block-end', + 'margin-block-start', + 'margin-block-end', + 'padding-block-start', + 'padding-block-end' + ], + { + feature: 'css-logical-props', + browsers + } + ) +) + +// CSS appearance +let prefixAppearance = require('caniuse-lite/data/features/css-appearance') + +f(prefixAppearance, { match: /#2|x/ }, browsers => + prefix(['appearance'], { + feature: 'css-appearance', + browsers + }) +) + +// CSS Scroll snap points +let prefixSnappoints = require('caniuse-lite/data/features/css-snappoints') + +f(prefixSnappoints, browsers => + prefix( + [ + 'scroll-snap-type', + 'scroll-snap-coordinate', + 'scroll-snap-destination', + 'scroll-snap-points-x', + 'scroll-snap-points-y' + ], + { + feature: 'css-snappoints', + browsers + } + ) +) + +// CSS Regions +let prefixRegions = require('caniuse-lite/data/features/css-regions') + +f(prefixRegions, browsers => + prefix(['flow-into', 'flow-from', 'region-fragment'], { + feature: 'css-regions', + browsers + }) +) + +// CSS image-set +let prefixImageSet = require('caniuse-lite/data/features/css-image-set') + +f(prefixImageSet, browsers => + prefix(['image-set'], { + props: [ + 'background', + 'background-image', + 'border-image', + 'cursor', + 'mask', + 'mask-image', + 'list-style', + 'list-style-image', + 'content' + ], + feature: 'css-image-set', + browsers + }) +) + +// Writing Mode +let prefixWritingMode = require('caniuse-lite/data/features/css-writing-mode') + +f(prefixWritingMode, { match: /a|x/ }, browsers => + prefix(['writing-mode'], { + feature: 'css-writing-mode', + browsers + }) +) + +// Cross-Fade Function +let prefixCrossFade = require('caniuse-lite/data/features/css-cross-fade') + +f(prefixCrossFade, browsers => + prefix(['cross-fade'], { + props: [ + 'background', + 'background-image', + 'border-image', + 'mask', + 'list-style', + 'list-style-image', + 'content', + 'mask-image' + ], + feature: 'css-cross-fade', + browsers + }) +) + +// Read Only selector +let prefixReadOnly = require('caniuse-lite/data/features/css-read-only-write') + +f(prefixReadOnly, browsers => + prefix([':read-only', ':read-write'], { + selector: true, + feature: 'css-read-only-write', + browsers + }) +) + +// Text Emphasize +let prefixTextEmphasis = require('caniuse-lite/data/features/text-emphasis') + +f(prefixTextEmphasis, browsers => + prefix( + [ + 'text-emphasis', + 'text-emphasis-position', + 'text-emphasis-style', + 'text-emphasis-color' + ], + { + feature: 'text-emphasis', + browsers + } + ) +) + +// CSS Grid Layout +let prefixGrid = require('caniuse-lite/data/features/css-grid') + +f(prefixGrid, browsers => { + prefix(['display-grid', 'inline-grid'], { + props: ['display'], + feature: 'css-grid', + browsers + }) + prefix( + [ + 'grid-template-columns', + 'grid-template-rows', + 'grid-row-start', + 'grid-column-start', + 'grid-row-end', + 'grid-column-end', + 'grid-row', + 'grid-column', + 'grid-area', + 'grid-template', + 'grid-template-areas', + 'place-self' + ], + { + feature: 'css-grid', + browsers + } + ) +}) + +f(prefixGrid, { match: /a x/ }, browsers => + prefix(['grid-column-align', 'grid-row-align'], { + feature: 'css-grid', + browsers + }) +) + +// CSS text-spacing +let prefixTextSpacing = require('caniuse-lite/data/features/css-text-spacing') + +f(prefixTextSpacing, browsers => + prefix(['text-spacing'], { + feature: 'css-text-spacing', + browsers + }) +) + +// :any-link selector +let prefixAnyLink = require('caniuse-lite/data/features/css-any-link') + +f(prefixAnyLink, browsers => + prefix([':any-link'], { + selector: true, + feature: 'css-any-link', + browsers + }) +) + +// unicode-bidi + +let bidiIsolate = require('caniuse-lite/data/features/mdn-css-unicode-bidi-isolate') + +f(bidiIsolate, browsers => + prefix(['isolate'], { + props: ['unicode-bidi'], + feature: 'css-unicode-bidi', + browsers + }) +) + +let bidiPlaintext = require('caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext') + +f(bidiPlaintext, browsers => + prefix(['plaintext'], { + props: ['unicode-bidi'], + feature: 'css-unicode-bidi', + browsers + }) +) + +let bidiOverride = require('caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override') + +f(bidiOverride, { match: /y x/ }, browsers => + prefix(['isolate-override'], { + props: ['unicode-bidi'], + feature: 'css-unicode-bidi', + browsers + }) +) + +// overscroll-behavior selector +let prefixOverscroll = require('caniuse-lite/data/features/css-overscroll-behavior') + +f(prefixOverscroll, { match: /a #1/ }, browsers => + prefix(['overscroll-behavior'], { + feature: 'css-overscroll-behavior', + browsers + }) +) + +// text-orientation +let prefixTextOrientation = require('caniuse-lite/data/features/css-text-orientation') + +f(prefixTextOrientation, browsers => + prefix(['text-orientation'], { + feature: 'css-text-orientation', + browsers + }) +) + +// print-color-adjust +let prefixPrintAdjust = require('caniuse-lite/data/features/css-print-color-adjust') + +f(prefixPrintAdjust, browsers => + prefix(['print-color-adjust', 'color-adjust'], { + feature: 'css-print-color-adjust', + browsers + }) +) diff --git a/node_modules/autoprefixer/lib/at-rule.js b/node_modules/autoprefixer/lib/at-rule.js new file mode 100644 index 0000000..d36a279 --- /dev/null +++ b/node_modules/autoprefixer/lib/at-rule.js @@ -0,0 +1,35 @@ +let Prefixer = require('./prefixer') + +class AtRule extends Prefixer { + /** + * Clone and add prefixes for at-rule + */ + add(rule, prefix) { + let prefixed = prefix + rule.name + + let already = rule.parent.some( + i => i.name === prefixed && i.params === rule.params + ) + if (already) { + return undefined + } + + let cloned = this.clone(rule, { name: prefixed }) + return rule.parent.insertBefore(rule, cloned) + } + + /** + * Clone node with prefixes + */ + process(node) { + let parent = this.parentPrefix(node) + + for (let prefix of this.prefixes) { + if (!parent || parent === prefix) { + this.add(node, prefix) + } + } + } +} + +module.exports = AtRule diff --git a/node_modules/autoprefixer/lib/autoprefixer.d.ts b/node_modules/autoprefixer/lib/autoprefixer.d.ts new file mode 100644 index 0000000..6ba292c --- /dev/null +++ b/node_modules/autoprefixer/lib/autoprefixer.d.ts @@ -0,0 +1,95 @@ +import { Plugin } from 'postcss' +import { Stats } from 'browserslist' + +declare function autoprefixer( + ...args: [...T, autoprefixer.Options] +): Plugin & autoprefixer.ExportedAPI + +declare function autoprefixer( + browsers: string[], + options?: autoprefixer.Options +): Plugin & autoprefixer.ExportedAPI + +declare function autoprefixer( + options?: autoprefixer.Options +): Plugin & autoprefixer.ExportedAPI + +declare namespace autoprefixer { + type GridValue = 'autoplace' | 'no-autoplace' + + interface Options { + /** environment for `Browserslist` */ + env?: string + + /** should Autoprefixer use Visual Cascade, if CSS is uncompressed */ + cascade?: boolean + + /** should Autoprefixer add prefixes. */ + add?: boolean + + /** should Autoprefixer [remove outdated] prefixes */ + remove?: boolean + + /** should Autoprefixer add prefixes for @supports parameters. */ + supports?: boolean + + /** should Autoprefixer add prefixes for flexbox properties */ + flexbox?: boolean | 'no-2009' + + /** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */ + grid?: boolean | GridValue + + /** custom usage statistics for > 10% in my stats browsers query */ + stats?: Stats + + /** + * list of queries for target browsers. + * Try to not use it. + * The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json` + * to share target browsers with Babel, ESLint and Stylelint + */ + overrideBrowserslist?: string | string[] + + /** do not raise error on unknown browser version in `Browserslist` config. */ + ignoreUnknownVersions?: boolean + } + + interface ExportedAPI { + /** Autoprefixer data */ + data: { + browsers: { [browser: string]: object | undefined } + prefixes: { [prefixName: string]: object | undefined } + } + + /** Autoprefixer default browsers */ + defaults: string[] + + /** Inspect with default Autoprefixer */ + info(options?: { from?: string }): string + + options: Options + + browsers: string | string[] + } + + /** Autoprefixer data */ + let data: ExportedAPI['data'] + + /** Autoprefixer default browsers */ + let defaults: ExportedAPI['defaults'] + + /** Inspect with default Autoprefixer */ + let info: ExportedAPI['info'] + + let postcss: true +} + +declare global { + namespace NodeJS { + interface ProcessEnv { + AUTOPREFIXER_GRID?: autoprefixer.GridValue + } + } +} + +export = autoprefixer diff --git a/node_modules/autoprefixer/lib/autoprefixer.js b/node_modules/autoprefixer/lib/autoprefixer.js new file mode 100644 index 0000000..8a9f5cd --- /dev/null +++ b/node_modules/autoprefixer/lib/autoprefixer.js @@ -0,0 +1,164 @@ +let browserslist = require('browserslist') +let { agents } = require('caniuse-lite/dist/unpacker/agents') +let pico = require('picocolors') + +let Browsers = require('./browsers') +let Prefixes = require('./prefixes') +let dataPrefixes = require('../data/prefixes') +let getInfo = require('./info') + +let autoprefixerData = { browsers: agents, prefixes: dataPrefixes } + +const WARNING = + '\n' + + ' Replace Autoprefixer `browsers` option to Browserslist config.\n' + + ' Use `browserslist` key in `package.json` or `.browserslistrc` file.\n' + + '\n' + + ' Using `browsers` option can cause errors. Browserslist config can\n' + + ' be used for Babel, Autoprefixer, postcss-normalize and other tools.\n' + + '\n' + + ' If you really need to use option, rename it to `overrideBrowserslist`.\n' + + '\n' + + ' Learn more at:\n' + + ' https://github.com/browserslist/browserslist#readme\n' + + ' https://twitter.com/browserslist\n' + + '\n' + +function isPlainObject(obj) { + return Object.prototype.toString.apply(obj) === '[object Object]' +} + +let cache = new Map() + +function timeCapsule(result, prefixes) { + if (prefixes.browsers.selected.length === 0) { + return + } + if (prefixes.add.selectors.length > 0) { + return + } + if (Object.keys(prefixes.add).length > 2) { + return + } + /* c8 ignore next 11 */ + result.warn( + 'Autoprefixer target browsers do not need any prefixes.' + + 'You do not need Autoprefixer anymore.\n' + + 'Check your Browserslist config to be sure that your targets ' + + 'are set up correctly.\n' + + '\n' + + ' Learn more at:\n' + + ' https://github.com/postcss/autoprefixer#readme\n' + + ' https://github.com/browserslist/browserslist#readme\n' + + '\n' + ) +} + +module.exports = plugin + +function plugin(...reqs) { + let options + if (reqs.length === 1 && isPlainObject(reqs[0])) { + options = reqs[0] + reqs = undefined + } else if (reqs.length === 0 || (reqs.length === 1 && !reqs[0])) { + reqs = undefined + } else if (reqs.length <= 2 && (Array.isArray(reqs[0]) || !reqs[0])) { + options = reqs[1] + reqs = reqs[0] + } else if (typeof reqs[reqs.length - 1] === 'object') { + options = reqs.pop() + } + + if (!options) { + options = {} + } + + if (options.browser) { + throw new Error( + 'Change `browser` option to `overrideBrowserslist` in Autoprefixer' + ) + } else if (options.browserslist) { + throw new Error( + 'Change `browserslist` option to `overrideBrowserslist` in Autoprefixer' + ) + } + + if (options.overrideBrowserslist) { + reqs = options.overrideBrowserslist + } else if (options.browsers) { + if (typeof console !== 'undefined' && console.warn) { + console.warn( + pico.red(WARNING.replace(/`[^`]+`/g, i => pico.yellow(i.slice(1, -1)))) + ) + } + reqs = options.browsers + } + + let brwlstOpts = { + ignoreUnknownVersions: options.ignoreUnknownVersions, + stats: options.stats, + env: options.env + } + + function loadPrefixes(opts) { + let d = autoprefixerData + let browsers = new Browsers(d.browsers, reqs, opts, brwlstOpts) + let key = browsers.selected.join(', ') + JSON.stringify(options) + + if (!cache.has(key)) { + cache.set(key, new Prefixes(d.prefixes, browsers, options)) + } + + return cache.get(key) + } + + return { + postcssPlugin: 'autoprefixer', + + prepare(result) { + let prefixes = loadPrefixes({ + from: result.opts.from, + env: options.env + }) + + return { + OnceExit(root) { + timeCapsule(result, prefixes) + if (options.remove !== false) { + prefixes.processor.remove(root, result) + } + if (options.add !== false) { + prefixes.processor.add(root, result) + } + } + } + }, + + info(opts) { + opts = opts || {} + opts.from = opts.from || process.cwd() + return getInfo(loadPrefixes(opts)) + }, + + options, + browsers: reqs + } +} + +plugin.postcss = true + +/** + * Autoprefixer data + */ +plugin.data = autoprefixerData + +/** + * Autoprefixer default browsers + */ +plugin.defaults = browserslist.defaults + +/** + * Inspect with default Autoprefixer + */ +plugin.info = () => plugin().info() diff --git a/node_modules/autoprefixer/lib/brackets.js b/node_modules/autoprefixer/lib/brackets.js new file mode 100644 index 0000000..3bb1dad --- /dev/null +++ b/node_modules/autoprefixer/lib/brackets.js @@ -0,0 +1,51 @@ +function last(array) { + return array[array.length - 1] +} + +let brackets = { + /** + * Parse string to nodes tree + */ + parse(str) { + let current = [''] + let stack = [current] + + for (let sym of str) { + if (sym === '(') { + current = [''] + last(stack).push(current) + stack.push(current) + continue + } + + if (sym === ')') { + stack.pop() + current = last(stack) + current.push('') + continue + } + + current[current.length - 1] += sym + } + + return stack[0] + }, + + /** + * Generate output string by nodes tree + */ + stringify(ast) { + let result = '' + for (let i of ast) { + if (typeof i === 'object') { + result += `(${brackets.stringify(i)})` + continue + } + + result += i + } + return result + } +} + +module.exports = brackets diff --git a/node_modules/autoprefixer/lib/browsers.js b/node_modules/autoprefixer/lib/browsers.js new file mode 100644 index 0000000..9d8fd97 --- /dev/null +++ b/node_modules/autoprefixer/lib/browsers.js @@ -0,0 +1,79 @@ +let browserslist = require('browserslist') +let { agents } = require('caniuse-lite/dist/unpacker/agents') + +let utils = require('./utils') + +class Browsers { + /** + * Return all prefixes for default browser data + */ + static prefixes() { + if (this.prefixesCache) { + return this.prefixesCache + } + + this.prefixesCache = [] + for (let name in agents) { + this.prefixesCache.push(`-${agents[name].prefix}-`) + } + + this.prefixesCache = utils + .uniq(this.prefixesCache) + .sort((a, b) => b.length - a.length) + + return this.prefixesCache + } + + /** + * Check is value contain any possible prefix + */ + static withPrefix(value) { + if (!this.prefixesRegexp) { + this.prefixesRegexp = new RegExp(this.prefixes().join('|')) + } + + return this.prefixesRegexp.test(value) + } + + constructor(data, requirements, options, browserslistOpts) { + this.data = data + this.options = options || {} + this.browserslistOpts = browserslistOpts || {} + this.selected = this.parse(requirements) + } + + /** + * Return browsers selected by requirements + */ + parse(requirements) { + let opts = {} + for (let i in this.browserslistOpts) { + opts[i] = this.browserslistOpts[i] + } + opts.path = this.options.from + return browserslist(requirements, opts) + } + + /** + * Return prefix for selected browser + */ + prefix(browser) { + let [name, version] = browser.split(' ') + let data = this.data[name] + + let prefix = data.prefix_exceptions && data.prefix_exceptions[version] + if (!prefix) { + prefix = data.prefix + } + return `-${prefix}-` + } + + /** + * Is browser is selected by requirements + */ + isSelected(browser) { + return this.selected.includes(browser) + } +} + +module.exports = Browsers diff --git a/node_modules/autoprefixer/lib/declaration.js b/node_modules/autoprefixer/lib/declaration.js new file mode 100644 index 0000000..0f86c30 --- /dev/null +++ b/node_modules/autoprefixer/lib/declaration.js @@ -0,0 +1,187 @@ +let Prefixer = require('./prefixer') +let Browsers = require('./browsers') +let utils = require('./utils') + +class Declaration extends Prefixer { + /** + * Always true, because we already get prefixer by property name + */ + check(/* decl */) { + return true + } + + /** + * Return prefixed version of property + */ + prefixed(prop, prefix) { + return prefix + prop + } + + /** + * Return unprefixed version of property + */ + normalize(prop) { + return prop + } + + /** + * Check `value`, that it contain other prefixes, rather than `prefix` + */ + otherPrefixes(value, prefix) { + for (let other of Browsers.prefixes()) { + if (other === prefix) { + continue + } + if (value.includes(other)) { + return value.replace(/var\([^)]+\)/, '').includes(other) + } + } + return false + } + + /** + * Set prefix to declaration + */ + set(decl, prefix) { + decl.prop = this.prefixed(decl.prop, prefix) + return decl + } + + /** + * Should we use visual cascade for prefixes + */ + needCascade(decl) { + if (!decl._autoprefixerCascade) { + decl._autoprefixerCascade = + this.all.options.cascade !== false && decl.raw('before').includes('\n') + } + return decl._autoprefixerCascade + } + + /** + * Return maximum length of possible prefixed property + */ + maxPrefixed(prefixes, decl) { + if (decl._autoprefixerMax) { + return decl._autoprefixerMax + } + + let max = 0 + for (let prefix of prefixes) { + prefix = utils.removeNote(prefix) + if (prefix.length > max) { + max = prefix.length + } + } + decl._autoprefixerMax = max + + return decl._autoprefixerMax + } + + /** + * Calculate indentation to create visual cascade + */ + calcBefore(prefixes, decl, prefix = '') { + let max = this.maxPrefixed(prefixes, decl) + let diff = max - utils.removeNote(prefix).length + + let before = decl.raw('before') + if (diff > 0) { + before += Array(diff).fill(' ').join('') + } + + return before + } + + /** + * Remove visual cascade + */ + restoreBefore(decl) { + let lines = decl.raw('before').split('\n') + let min = lines[lines.length - 1] + + this.all.group(decl).up(prefixed => { + let array = prefixed.raw('before').split('\n') + let last = array[array.length - 1] + if (last.length < min.length) { + min = last + } + }) + + lines[lines.length - 1] = min + decl.raws.before = lines.join('\n') + } + + /** + * Clone and insert new declaration + */ + insert(decl, prefix, prefixes) { + let cloned = this.set(this.clone(decl), prefix) + if (!cloned) return undefined + + let already = decl.parent.some( + i => i.prop === cloned.prop && i.value === cloned.value + ) + if (already) { + return undefined + } + + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + return decl.parent.insertBefore(decl, cloned) + } + + /** + * Did this declaration has this prefix above + */ + isAlready(decl, prefixed) { + let already = this.all.group(decl).up(i => i.prop === prefixed) + if (!already) { + already = this.all.group(decl).down(i => i.prop === prefixed) + } + return already + } + + /** + * Clone and add prefixes for declaration + */ + add(decl, prefix, prefixes, result) { + let prefixed = this.prefixed(decl.prop, prefix) + if ( + this.isAlready(decl, prefixed) || + this.otherPrefixes(decl.value, prefix) + ) { + return undefined + } + return this.insert(decl, prefix, prefixes, result) + } + + /** + * Add spaces for visual cascade + */ + process(decl, result) { + if (!this.needCascade(decl)) { + super.process(decl, result) + return + } + + let prefixes = super.process(decl, result) + + if (!prefixes || !prefixes.length) { + return + } + + this.restoreBefore(decl) + decl.raws.before = this.calcBefore(prefixes, decl) + } + + /** + * Return list of prefixed properties to clean old prefixes + */ + old(prop, prefix) { + return [this.prefixed(prop, prefix)] + } +} + +module.exports = Declaration diff --git a/node_modules/autoprefixer/lib/hacks/align-content.js b/node_modules/autoprefixer/lib/hacks/align-content.js new file mode 100644 index 0000000..9b1b698 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/align-content.js @@ -0,0 +1,49 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class AlignContent extends Declaration { + /** + * Change property name for 2012 spec + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2012) { + return prefix + 'flex-line-pack' + } + return super.prefixed(prop, prefix) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'align-content' + } + + /** + * Change value for 2012 spec and ignore prefix for 2009 + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec === 2012) { + decl.value = AlignContent.oldValues[decl.value] || decl.value + return super.set(decl, prefix) + } + if (spec === 'final') { + return super.set(decl, prefix) + } + return undefined + } +} + +AlignContent.names = ['align-content', 'flex-line-pack'] + +AlignContent.oldValues = { + 'flex-end': 'end', + 'flex-start': 'start', + 'space-between': 'justify', + 'space-around': 'distribute' +} + +module.exports = AlignContent diff --git a/node_modules/autoprefixer/lib/hacks/align-items.js b/node_modules/autoprefixer/lib/hacks/align-items.js new file mode 100644 index 0000000..601a2d4 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/align-items.js @@ -0,0 +1,46 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class AlignItems extends Declaration { + /** + * Change property name for 2009 and 2012 specs + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2009) { + return prefix + 'box-align' + } + if (spec === 2012) { + return prefix + 'flex-align' + } + return super.prefixed(prop, prefix) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'align-items' + } + + /** + * Change value for 2009 and 2012 specs + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec === 2009 || spec === 2012) { + decl.value = AlignItems.oldValues[decl.value] || decl.value + } + return super.set(decl, prefix) + } +} + +AlignItems.names = ['align-items', 'flex-align', 'box-align'] + +AlignItems.oldValues = { + 'flex-end': 'end', + 'flex-start': 'start' +} + +module.exports = AlignItems diff --git a/node_modules/autoprefixer/lib/hacks/align-self.js b/node_modules/autoprefixer/lib/hacks/align-self.js new file mode 100644 index 0000000..56cf8b0 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/align-self.js @@ -0,0 +1,56 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class AlignSelf extends Declaration { + check(decl) { + return ( + decl.parent && + !decl.parent.some(i => { + return i.prop && i.prop.startsWith('grid-') + }) + ) + } + + /** + * Change property name for 2012 specs + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2012) { + return prefix + 'flex-item-align' + } + return super.prefixed(prop, prefix) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'align-self' + } + + /** + * Change value for 2012 spec and ignore prefix for 2009 + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec === 2012) { + decl.value = AlignSelf.oldValues[decl.value] || decl.value + return super.set(decl, prefix) + } + if (spec === 'final') { + return super.set(decl, prefix) + } + return undefined + } +} + +AlignSelf.names = ['align-self', 'flex-item-align'] + +AlignSelf.oldValues = { + 'flex-end': 'end', + 'flex-start': 'start' +} + +module.exports = AlignSelf diff --git a/node_modules/autoprefixer/lib/hacks/animation.js b/node_modules/autoprefixer/lib/hacks/animation.js new file mode 100644 index 0000000..7ce949a --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/animation.js @@ -0,0 +1,17 @@ +let Declaration = require('../declaration') + +class Animation extends Declaration { + /** + * Don’t add prefixes for modern values. + */ + check(decl) { + return !decl.value.split(/\s+/).some(i => { + let lower = i.toLowerCase() + return lower === 'reverse' || lower === 'alternate-reverse' + }) + } +} + +Animation.names = ['animation', 'animation-direction'] + +module.exports = Animation diff --git a/node_modules/autoprefixer/lib/hacks/appearance.js b/node_modules/autoprefixer/lib/hacks/appearance.js new file mode 100644 index 0000000..34be384 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/appearance.js @@ -0,0 +1,23 @@ +let Declaration = require('../declaration') +let utils = require('../utils') + +class Appearance extends Declaration { + constructor(name, prefixes, all) { + super(name, prefixes, all) + + if (this.prefixes) { + this.prefixes = utils.uniq( + this.prefixes.map(i => { + if (i === '-ms-') { + return '-webkit-' + } + return i + }) + ) + } + } +} + +Appearance.names = ['appearance'] + +module.exports = Appearance diff --git a/node_modules/autoprefixer/lib/hacks/autofill.js b/node_modules/autoprefixer/lib/hacks/autofill.js new file mode 100644 index 0000000..a9c49ce --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/autofill.js @@ -0,0 +1,26 @@ +let Selector = require('../selector') +let utils = require('../utils') + +class Autofill extends Selector { + constructor(name, prefixes, all) { + super(name, prefixes, all) + + if (this.prefixes) { + this.prefixes = utils.uniq(this.prefixes.map(() => '-webkit-')) + } + } + + /** + * Return different selectors depend on prefix + */ + prefixed(prefix) { + if (prefix === '-webkit-') { + return ':-webkit-autofill' + } + return `:${prefix}autofill` + } +} + +Autofill.names = [':autofill'] + +module.exports = Autofill diff --git a/node_modules/autoprefixer/lib/hacks/backdrop-filter.js b/node_modules/autoprefixer/lib/hacks/backdrop-filter.js new file mode 100644 index 0000000..f9b4b05 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/backdrop-filter.js @@ -0,0 +1,20 @@ +let Declaration = require('../declaration') +let utils = require('../utils') + +class BackdropFilter extends Declaration { + constructor(name, prefixes, all) { + super(name, prefixes, all) + + if (this.prefixes) { + this.prefixes = utils.uniq( + this.prefixes.map(i => { + return i === '-ms-' ? '-webkit-' : i + }) + ) + } + } +} + +BackdropFilter.names = ['backdrop-filter'] + +module.exports = BackdropFilter diff --git a/node_modules/autoprefixer/lib/hacks/background-clip.js b/node_modules/autoprefixer/lib/hacks/background-clip.js new file mode 100644 index 0000000..92c714c --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/background-clip.js @@ -0,0 +1,24 @@ +let Declaration = require('../declaration') +let utils = require('../utils') + +class BackgroundClip extends Declaration { + constructor(name, prefixes, all) { + super(name, prefixes, all) + + if (this.prefixes) { + this.prefixes = utils.uniq( + this.prefixes.map(i => { + return i === '-ms-' ? '-webkit-' : i + }) + ) + } + } + + check(decl) { + return decl.value.toLowerCase() === 'text' + } +} + +BackgroundClip.names = ['background-clip'] + +module.exports = BackgroundClip diff --git a/node_modules/autoprefixer/lib/hacks/background-size.js b/node_modules/autoprefixer/lib/hacks/background-size.js new file mode 100644 index 0000000..1fba894 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/background-size.js @@ -0,0 +1,23 @@ +let Declaration = require('../declaration') + +class BackgroundSize extends Declaration { + /** + * Duplication parameter for -webkit- browsers + */ + set(decl, prefix) { + let value = decl.value.toLowerCase() + if ( + prefix === '-webkit-' && + !value.includes(' ') && + value !== 'contain' && + value !== 'cover' + ) { + decl.value = decl.value + ' ' + decl.value + } + return super.set(decl, prefix) + } +} + +BackgroundSize.names = ['background-size'] + +module.exports = BackgroundSize diff --git a/node_modules/autoprefixer/lib/hacks/block-logical.js b/node_modules/autoprefixer/lib/hacks/block-logical.js new file mode 100644 index 0000000..d223f52 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/block-logical.js @@ -0,0 +1,40 @@ +let Declaration = require('../declaration') + +class BlockLogical extends Declaration { + /** + * Use old syntax for -moz- and -webkit- + */ + prefixed(prop, prefix) { + if (prop.includes('-start')) { + return prefix + prop.replace('-block-start', '-before') + } + return prefix + prop.replace('-block-end', '-after') + } + + /** + * Return property name by spec + */ + normalize(prop) { + if (prop.includes('-before')) { + return prop.replace('-before', '-block-start') + } + return prop.replace('-after', '-block-end') + } +} + +BlockLogical.names = [ + 'border-block-start', + 'border-block-end', + 'margin-block-start', + 'margin-block-end', + 'padding-block-start', + 'padding-block-end', + 'border-before', + 'border-after', + 'margin-before', + 'margin-after', + 'padding-before', + 'padding-after' +] + +module.exports = BlockLogical diff --git a/node_modules/autoprefixer/lib/hacks/border-image.js b/node_modules/autoprefixer/lib/hacks/border-image.js new file mode 100644 index 0000000..f5cbd2c --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/border-image.js @@ -0,0 +1,15 @@ +let Declaration = require('../declaration') + +class BorderImage extends Declaration { + /** + * Remove fill parameter for prefixed declarations + */ + set(decl, prefix) { + decl.value = decl.value.replace(/\s+fill(\s)/, '$1') + return super.set(decl, prefix) + } +} + +BorderImage.names = ['border-image'] + +module.exports = BorderImage diff --git a/node_modules/autoprefixer/lib/hacks/border-radius.js b/node_modules/autoprefixer/lib/hacks/border-radius.js new file mode 100644 index 0000000..0501692 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/border-radius.js @@ -0,0 +1,40 @@ +let Declaration = require('../declaration') + +class BorderRadius extends Declaration { + /** + * Change syntax, when add Mozilla prefix + */ + prefixed(prop, prefix) { + if (prefix === '-moz-') { + return prefix + (BorderRadius.toMozilla[prop] || prop) + } + return super.prefixed(prop, prefix) + } + + /** + * Return unprefixed version of property + */ + normalize(prop) { + return BorderRadius.toNormal[prop] || prop + } +} + +BorderRadius.names = ['border-radius'] + +BorderRadius.toMozilla = {} +BorderRadius.toNormal = {} + +for (let ver of ['top', 'bottom']) { + for (let hor of ['left', 'right']) { + let normal = `border-${ver}-${hor}-radius` + let mozilla = `border-radius-${ver}${hor}` + + BorderRadius.names.push(normal) + BorderRadius.names.push(mozilla) + + BorderRadius.toMozilla[normal] = mozilla + BorderRadius.toNormal[mozilla] = normal + } +} + +module.exports = BorderRadius diff --git a/node_modules/autoprefixer/lib/hacks/break-props.js b/node_modules/autoprefixer/lib/hacks/break-props.js new file mode 100644 index 0000000..45252cd --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/break-props.js @@ -0,0 +1,63 @@ +let Declaration = require('../declaration') + +class BreakProps extends Declaration { + /** + * Change name for -webkit- and -moz- prefix + */ + prefixed(prop, prefix) { + return `${prefix}column-${prop}` + } + + /** + * Return property name by final spec + */ + normalize(prop) { + if (prop.includes('inside')) { + return 'break-inside' + } + if (prop.includes('before')) { + return 'break-before' + } + return 'break-after' + } + + /** + * Change prefixed value for avoid-column and avoid-page + */ + set(decl, prefix) { + if ( + (decl.prop === 'break-inside' && decl.value === 'avoid-column') || + decl.value === 'avoid-page' + ) { + decl.value = 'avoid' + } + return super.set(decl, prefix) + } + + /** + * Don’t prefix some values + */ + insert(decl, prefix, prefixes) { + if (decl.prop !== 'break-inside') { + return super.insert(decl, prefix, prefixes) + } + if (/region/i.test(decl.value) || /page/i.test(decl.value)) { + return undefined + } + return super.insert(decl, prefix, prefixes) + } +} + +BreakProps.names = [ + 'break-inside', + 'page-break-inside', + 'column-break-inside', + 'break-before', + 'page-break-before', + 'column-break-before', + 'break-after', + 'page-break-after', + 'column-break-after' +] + +module.exports = BreakProps diff --git a/node_modules/autoprefixer/lib/hacks/cross-fade.js b/node_modules/autoprefixer/lib/hacks/cross-fade.js new file mode 100644 index 0000000..caaa90d --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/cross-fade.js @@ -0,0 +1,35 @@ +let list = require('postcss').list + +let Value = require('../value') + +class CrossFade extends Value { + replace(string, prefix) { + return list + .space(string) + .map(value => { + if (value.slice(0, +this.name.length + 1) !== this.name + '(') { + return value + } + + let close = value.lastIndexOf(')') + let after = value.slice(close + 1) + let args = value.slice(this.name.length + 1, close) + + if (prefix === '-webkit-') { + let match = args.match(/\d*.?\d+%?/) + if (match) { + args = args.slice(match[0].length).trim() + args += `, ${match[0]}` + } else { + args += ', 0.5' + } + } + return prefix + this.name + '(' + args + ')' + after + }) + .join(' ') + } +} + +CrossFade.names = ['cross-fade'] + +module.exports = CrossFade diff --git a/node_modules/autoprefixer/lib/hacks/display-flex.js b/node_modules/autoprefixer/lib/hacks/display-flex.js new file mode 100644 index 0000000..cc6cffc --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/display-flex.js @@ -0,0 +1,65 @@ +let flexSpec = require('./flex-spec') +let OldValue = require('../old-value') +let Value = require('../value') + +class DisplayFlex extends Value { + constructor(name, prefixes) { + super(name, prefixes) + if (name === 'display-flex') { + this.name = 'flex' + } + } + + /** + * Faster check for flex value + */ + check(decl) { + return decl.prop === 'display' && decl.value === this.name + } + + /** + * Return value by spec + */ + prefixed(prefix) { + let spec, value + ;[spec, prefix] = flexSpec(prefix) + + if (spec === 2009) { + if (this.name === 'flex') { + value = 'box' + } else { + value = 'inline-box' + } + } else if (spec === 2012) { + if (this.name === 'flex') { + value = 'flexbox' + } else { + value = 'inline-flexbox' + } + } else if (spec === 'final') { + value = this.name + } + + return prefix + value + } + + /** + * Add prefix to value depend on flebox spec version + */ + replace(string, prefix) { + return this.prefixed(prefix) + } + + /** + * Change value for old specs + */ + old(prefix) { + let prefixed = this.prefixed(prefix) + if (!prefixed) return undefined + return new OldValue(this.name, prefixed) + } +} + +DisplayFlex.names = ['display-flex', 'inline-flex'] + +module.exports = DisplayFlex diff --git a/node_modules/autoprefixer/lib/hacks/display-grid.js b/node_modules/autoprefixer/lib/hacks/display-grid.js new file mode 100644 index 0000000..290ec8b --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/display-grid.js @@ -0,0 +1,21 @@ +let Value = require('../value') + +class DisplayGrid extends Value { + constructor(name, prefixes) { + super(name, prefixes) + if (name === 'display-grid') { + this.name = 'grid' + } + } + + /** + * Faster check for flex value + */ + check(decl) { + return decl.prop === 'display' && decl.value === this.name + } +} + +DisplayGrid.names = ['display-grid', 'inline-grid'] + +module.exports = DisplayGrid diff --git a/node_modules/autoprefixer/lib/hacks/file-selector-button.js b/node_modules/autoprefixer/lib/hacks/file-selector-button.js new file mode 100644 index 0000000..18ebcea --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/file-selector-button.js @@ -0,0 +1,26 @@ +let Selector = require('../selector') +let utils = require('../utils') + +class FileSelectorButton extends Selector { + constructor(name, prefixes, all) { + super(name, prefixes, all) + + if (this.prefixes) { + this.prefixes = utils.uniq(this.prefixes.map(() => '-webkit-')) + } + } + + /** + * Return different selectors depend on prefix + */ + prefixed(prefix) { + if (prefix === '-webkit-') { + return '::-webkit-file-upload-button' + } + return `::${prefix}file-selector-button` + } +} + +FileSelectorButton.names = ['::file-selector-button'] + +module.exports = FileSelectorButton diff --git a/node_modules/autoprefixer/lib/hacks/filter-value.js b/node_modules/autoprefixer/lib/hacks/filter-value.js new file mode 100644 index 0000000..98e5f61 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/filter-value.js @@ -0,0 +1,14 @@ +let Value = require('../value') + +class FilterValue extends Value { + constructor(name, prefixes) { + super(name, prefixes) + if (name === 'filter-function') { + this.name = 'filter' + } + } +} + +FilterValue.names = ['filter', 'filter-function'] + +module.exports = FilterValue diff --git a/node_modules/autoprefixer/lib/hacks/filter.js b/node_modules/autoprefixer/lib/hacks/filter.js new file mode 100644 index 0000000..7ec6fbe --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/filter.js @@ -0,0 +1,19 @@ +let Declaration = require('../declaration') + +class Filter extends Declaration { + /** + * Check is it Internet Explorer filter + */ + check(decl) { + let v = decl.value + return ( + !v.toLowerCase().includes('alpha(') && + !v.includes('DXImageTransform.Microsoft') && + !v.includes('data:image/svg+xml') + ) + } +} + +Filter.names = ['filter'] + +module.exports = Filter diff --git a/node_modules/autoprefixer/lib/hacks/flex-basis.js b/node_modules/autoprefixer/lib/hacks/flex-basis.js new file mode 100644 index 0000000..959cf4c --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-basis.js @@ -0,0 +1,39 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class FlexBasis extends Declaration { + /** + * Return property name by final spec + */ + normalize() { + return 'flex-basis' + } + + /** + * Return flex property for 2012 spec + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2012) { + return prefix + 'flex-preferred-size' + } + return super.prefixed(prop, prefix) + } + + /** + * Ignore 2009 spec and use flex property for 2012 + */ + set(decl, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2012 || spec === 'final') { + return super.set(decl, prefix) + } + return undefined + } +} + +FlexBasis.names = ['flex-basis', 'flex-preferred-size'] + +module.exports = FlexBasis diff --git a/node_modules/autoprefixer/lib/hacks/flex-direction.js b/node_modules/autoprefixer/lib/hacks/flex-direction.js new file mode 100644 index 0000000..b222b08 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-direction.js @@ -0,0 +1,72 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class FlexDirection extends Declaration { + /** + * Return property name by final spec + */ + normalize() { + return 'flex-direction' + } + + /** + * Use two properties for 2009 spec + */ + insert(decl, prefix, prefixes) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec !== 2009) { + return super.insert(decl, prefix, prefixes) + } + let already = decl.parent.some( + i => + i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction' + ) + if (already) { + return undefined + } + + let v = decl.value + let orient, dir + if (v === 'inherit' || v === 'initial' || v === 'unset') { + orient = v + dir = v + } else { + orient = v.includes('row') ? 'horizontal' : 'vertical' + dir = v.includes('reverse') ? 'reverse' : 'normal' + } + + let cloned = this.clone(decl) + cloned.prop = prefix + 'box-orient' + cloned.value = orient + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + decl.parent.insertBefore(decl, cloned) + + cloned = this.clone(decl) + cloned.prop = prefix + 'box-direction' + cloned.value = dir + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + return decl.parent.insertBefore(decl, cloned) + } + + /** + * Clean two properties for 2009 spec + */ + old(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2009) { + return [prefix + 'box-orient', prefix + 'box-direction'] + } else { + return super.old(prop, prefix) + } + } +} + +FlexDirection.names = ['flex-direction', 'box-direction', 'box-orient'] + +module.exports = FlexDirection diff --git a/node_modules/autoprefixer/lib/hacks/flex-flow.js b/node_modules/autoprefixer/lib/hacks/flex-flow.js new file mode 100644 index 0000000..0223bd8 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-flow.js @@ -0,0 +1,53 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class FlexFlow extends Declaration { + /** + * Use two properties for 2009 spec + */ + insert(decl, prefix, prefixes) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec !== 2009) { + return super.insert(decl, prefix, prefixes) + } + let values = decl.value + .split(/\s+/) + .filter(i => i !== 'wrap' && i !== 'nowrap' && 'wrap-reverse') + if (values.length === 0) { + return undefined + } + + let already = decl.parent.some( + i => + i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction' + ) + if (already) { + return undefined + } + + let value = values[0] + let orient = value.includes('row') ? 'horizontal' : 'vertical' + let dir = value.includes('reverse') ? 'reverse' : 'normal' + + let cloned = this.clone(decl) + cloned.prop = prefix + 'box-orient' + cloned.value = orient + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + decl.parent.insertBefore(decl, cloned) + + cloned = this.clone(decl) + cloned.prop = prefix + 'box-direction' + cloned.value = dir + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + return decl.parent.insertBefore(decl, cloned) + } +} + +FlexFlow.names = ['flex-flow', 'box-direction', 'box-orient'] + +module.exports = FlexFlow diff --git a/node_modules/autoprefixer/lib/hacks/flex-grow.js b/node_modules/autoprefixer/lib/hacks/flex-grow.js new file mode 100644 index 0000000..d53374b --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-grow.js @@ -0,0 +1,30 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class Flex extends Declaration { + /** + * Return property name by final spec + */ + normalize() { + return 'flex' + } + + /** + * Return flex property for 2009 and 2012 specs + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2009) { + return prefix + 'box-flex' + } + if (spec === 2012) { + return prefix + 'flex-positive' + } + return super.prefixed(prop, prefix) + } +} + +Flex.names = ['flex-grow', 'flex-positive'] + +module.exports = Flex diff --git a/node_modules/autoprefixer/lib/hacks/flex-shrink.js b/node_modules/autoprefixer/lib/hacks/flex-shrink.js new file mode 100644 index 0000000..fbd0e82 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-shrink.js @@ -0,0 +1,39 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class FlexShrink extends Declaration { + /** + * Return property name by final spec + */ + normalize() { + return 'flex-shrink' + } + + /** + * Return flex property for 2012 spec + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2012) { + return prefix + 'flex-negative' + } + return super.prefixed(prop, prefix) + } + + /** + * Ignore 2009 spec and use flex property for 2012 + */ + set(decl, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2012 || spec === 'final') { + return super.set(decl, prefix) + } + return undefined + } +} + +FlexShrink.names = ['flex-shrink', 'flex-negative'] + +module.exports = FlexShrink diff --git a/node_modules/autoprefixer/lib/hacks/flex-spec.js b/node_modules/autoprefixer/lib/hacks/flex-spec.js new file mode 100644 index 0000000..a077d66 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-spec.js @@ -0,0 +1,19 @@ +/** + * Return flexbox spec versions by prefix + */ +module.exports = function (prefix) { + let spec + if (prefix === '-webkit- 2009' || prefix === '-moz-') { + spec = 2009 + } else if (prefix === '-ms-') { + spec = 2012 + } else if (prefix === '-webkit-') { + spec = 'final' + } + + if (prefix === '-webkit- 2009') { + prefix = '-webkit-' + } + + return [spec, prefix] +} diff --git a/node_modules/autoprefixer/lib/hacks/flex-wrap.js b/node_modules/autoprefixer/lib/hacks/flex-wrap.js new file mode 100644 index 0000000..8570476 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex-wrap.js @@ -0,0 +1,19 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class FlexWrap extends Declaration { + /** + * Don't add prefix for 2009 spec + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec !== 2009) { + return super.set(decl, prefix) + } + return undefined + } +} + +FlexWrap.names = ['flex-wrap'] + +module.exports = FlexWrap diff --git a/node_modules/autoprefixer/lib/hacks/flex.js b/node_modules/autoprefixer/lib/hacks/flex.js new file mode 100644 index 0000000..6a4fdf7 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/flex.js @@ -0,0 +1,54 @@ +let list = require('postcss').list + +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class Flex extends Declaration { + /** + * Change property name for 2009 spec + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2009) { + return prefix + 'box-flex' + } + return super.prefixed(prop, prefix) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'flex' + } + + /** + * Spec 2009 supports only first argument + * Spec 2012 disallows unitless basis + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec === 2009) { + decl.value = list.space(decl.value)[0] + decl.value = Flex.oldValues[decl.value] || decl.value + return super.set(decl, prefix) + } + if (spec === 2012) { + let components = list.space(decl.value) + if (components.length === 3 && components[2] === '0') { + decl.value = components.slice(0, 2).concat('0px').join(' ') + } + } + return super.set(decl, prefix) + } +} + +Flex.names = ['flex', 'box-flex'] + +Flex.oldValues = { + auto: '1', + none: '0' +} + +module.exports = Flex diff --git a/node_modules/autoprefixer/lib/hacks/fullscreen.js b/node_modules/autoprefixer/lib/hacks/fullscreen.js new file mode 100644 index 0000000..5a74390 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/fullscreen.js @@ -0,0 +1,20 @@ +let Selector = require('../selector') + +class Fullscreen extends Selector { + /** + * Return different selectors depend on prefix + */ + prefixed(prefix) { + if (prefix === '-webkit-') { + return ':-webkit-full-screen' + } + if (prefix === '-moz-') { + return ':-moz-full-screen' + } + return `:${prefix}fullscreen` + } +} + +Fullscreen.names = [':fullscreen'] + +module.exports = Fullscreen diff --git a/node_modules/autoprefixer/lib/hacks/gradient.js b/node_modules/autoprefixer/lib/hacks/gradient.js new file mode 100644 index 0000000..48e1332 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/gradient.js @@ -0,0 +1,448 @@ +let parser = require('postcss-value-parser') +let range = require('normalize-range') + +let OldValue = require('../old-value') +let Value = require('../value') +let utils = require('../utils') + +let IS_DIRECTION = /top|left|right|bottom/gi + +class Gradient extends Value { + /** + * Change degrees for webkit prefix + */ + replace(string, prefix) { + let ast = parser(string) + for (let node of ast.nodes) { + let gradientName = this.name // gradient name + if (node.type === 'function' && node.value === gradientName) { + node.nodes = this.newDirection(node.nodes) + node.nodes = this.normalize(node.nodes, gradientName) + if (prefix === '-webkit- old') { + let changes = this.oldWebkit(node) + if (!changes) { + return false + } + } else { + node.nodes = this.convertDirection(node.nodes) + node.value = prefix + node.value + } + } + } + return ast.toString() + } + + /** + * Replace first token + */ + replaceFirst(params, ...words) { + let prefix = words.map(i => { + if (i === ' ') { + return { type: 'space', value: i } + } + return { type: 'word', value: i } + }) + return prefix.concat(params.slice(1)) + } + + /** + * Convert angle unit to deg + */ + normalizeUnit(str, full) { + let num = parseFloat(str) + let deg = (num / full) * 360 + return `${deg}deg` + } + + /** + * Normalize angle + */ + normalize(nodes, gradientName) { + if (!nodes[0]) return nodes + + if (/-?\d+(.\d+)?grad/.test(nodes[0].value)) { + nodes[0].value = this.normalizeUnit(nodes[0].value, 400) + } else if (/-?\d+(.\d+)?rad/.test(nodes[0].value)) { + nodes[0].value = this.normalizeUnit(nodes[0].value, 2 * Math.PI) + } else if (/-?\d+(.\d+)?turn/.test(nodes[0].value)) { + nodes[0].value = this.normalizeUnit(nodes[0].value, 1) + } else if (nodes[0].value.includes('deg')) { + let num = parseFloat(nodes[0].value) + num = range.wrap(0, 360, num) + nodes[0].value = `${num}deg` + } + + if ( + gradientName === 'linear-gradient' || + gradientName === 'repeating-linear-gradient' + ) { + let direction = nodes[0].value + + // Unitless zero for `` values are allowed in CSS gradients and transforms. + // Spec: https://github.com/w3c/csswg-drafts/commit/602789171429b2231223ab1e5acf8f7f11652eb3 + if (direction === '0deg' || direction === '0') { + nodes = this.replaceFirst(nodes, 'to', ' ', 'top') + } else if (direction === '90deg') { + nodes = this.replaceFirst(nodes, 'to', ' ', 'right') + } else if (direction === '180deg') { + nodes = this.replaceFirst(nodes, 'to', ' ', 'bottom') // default value + } else if (direction === '270deg') { + nodes = this.replaceFirst(nodes, 'to', ' ', 'left') + } + } + + return nodes + } + + /** + * Replace old direction to new + */ + newDirection(params) { + if (params[0].value === 'to') { + return params + } + IS_DIRECTION.lastIndex = 0 // reset search index of global regexp + if (!IS_DIRECTION.test(params[0].value)) { + return params + } + + params.unshift( + { + type: 'word', + value: 'to' + }, + { + type: 'space', + value: ' ' + } + ) + + for (let i = 2; i < params.length; i++) { + if (params[i].type === 'div') { + break + } + if (params[i].type === 'word') { + params[i].value = this.revertDirection(params[i].value) + } + } + + return params + } + + /** + * Look for at word + */ + isRadial(params) { + let state = 'before' + for (let param of params) { + if (state === 'before' && param.type === 'space') { + state = 'at' + } else if (state === 'at' && param.value === 'at') { + state = 'after' + } else if (state === 'after' && param.type === 'space') { + return true + } else if (param.type === 'div') { + break + } else { + state = 'before' + } + } + return false + } + + /** + * Change new direction to old + */ + convertDirection(params) { + if (params.length > 0) { + if (params[0].value === 'to') { + this.fixDirection(params) + } else if (params[0].value.includes('deg')) { + this.fixAngle(params) + } else if (this.isRadial(params)) { + this.fixRadial(params) + } + } + return params + } + + /** + * Replace `to top left` to `bottom right` + */ + fixDirection(params) { + params.splice(0, 2) + + for (let param of params) { + if (param.type === 'div') { + break + } + if (param.type === 'word') { + param.value = this.revertDirection(param.value) + } + } + } + + /** + * Add 90 degrees + */ + fixAngle(params) { + let first = params[0].value + first = parseFloat(first) + first = Math.abs(450 - first) % 360 + first = this.roundFloat(first, 3) + params[0].value = `${first}deg` + } + + /** + * Fix radial direction syntax + */ + fixRadial(params) { + let first = [] + let second = [] + let a, b, c, i, next + + for (i = 0; i < params.length - 2; i++) { + a = params[i] + b = params[i + 1] + c = params[i + 2] + if (a.type === 'space' && b.value === 'at' && c.type === 'space') { + next = i + 3 + break + } else { + first.push(a) + } + } + + let div + for (i = next; i < params.length; i++) { + if (params[i].type === 'div') { + div = params[i] + break + } else { + second.push(params[i]) + } + } + + params.splice(0, i, ...second, div, ...first) + } + + revertDirection(word) { + return Gradient.directions[word.toLowerCase()] || word + } + + /** + * Round float and save digits under dot + */ + roundFloat(float, digits) { + return parseFloat(float.toFixed(digits)) + } + + /** + * Convert to old webkit syntax + */ + oldWebkit(node) { + let { nodes } = node + let string = parser.stringify(node.nodes) + + if (this.name !== 'linear-gradient') { + return false + } + if (nodes[0] && nodes[0].value.includes('deg')) { + return false + } + if ( + string.includes('px') || + string.includes('-corner') || + string.includes('-side') + ) { + return false + } + + let params = [[]] + for (let i of nodes) { + params[params.length - 1].push(i) + if (i.type === 'div' && i.value === ',') { + params.push([]) + } + } + + this.oldDirection(params) + this.colorStops(params) + + node.nodes = [] + for (let param of params) { + node.nodes = node.nodes.concat(param) + } + + node.nodes.unshift( + { type: 'word', value: 'linear' }, + this.cloneDiv(node.nodes) + ) + node.value = '-webkit-gradient' + + return true + } + + /** + * Change direction syntax to old webkit + */ + oldDirection(params) { + let div = this.cloneDiv(params[0]) + + if (params[0][0].value !== 'to') { + return params.unshift([ + { type: 'word', value: Gradient.oldDirections.bottom }, + div + ]) + } else { + let words = [] + for (let node of params[0].slice(2)) { + if (node.type === 'word') { + words.push(node.value.toLowerCase()) + } + } + + words = words.join(' ') + let old = Gradient.oldDirections[words] || words + + params[0] = [{ type: 'word', value: old }, div] + return params[0] + } + } + + /** + * Get div token from exists parameters + */ + cloneDiv(params) { + for (let i of params) { + if (i.type === 'div' && i.value === ',') { + return i + } + } + return { type: 'div', value: ',', after: ' ' } + } + + /** + * Change colors syntax to old webkit + */ + colorStops(params) { + let result = [] + for (let i = 0; i < params.length; i++) { + let pos + let param = params[i] + let item + if (i === 0) { + continue + } + + let color = parser.stringify(param[0]) + if (param[1] && param[1].type === 'word') { + pos = param[1].value + } else if (param[2] && param[2].type === 'word') { + pos = param[2].value + } + + let stop + if (i === 1 && (!pos || pos === '0%')) { + stop = `from(${color})` + } else if (i === params.length - 1 && (!pos || pos === '100%')) { + stop = `to(${color})` + } else if (pos) { + stop = `color-stop(${pos}, ${color})` + } else { + stop = `color-stop(${color})` + } + + let div = param[param.length - 1] + params[i] = [{ type: 'word', value: stop }] + if (div.type === 'div' && div.value === ',') { + item = params[i].push(div) + } + result.push(item) + } + return result + } + + /** + * Remove old WebKit gradient too + */ + old(prefix) { + if (prefix === '-webkit-') { + let type + if (this.name === 'linear-gradient') { + type = 'linear' + } else if (this.name === 'repeating-linear-gradient') { + type = 'repeating-linear' + } else if (this.name === 'repeating-radial-gradient') { + type = 'repeating-radial' + } else { + type = 'radial' + } + let string = '-gradient' + let regexp = utils.regexp( + `-webkit-(${type}-gradient|gradient\\(\\s*${type})`, + false + ) + + return new OldValue(this.name, prefix + this.name, string, regexp) + } else { + return super.old(prefix) + } + } + + /** + * Do not add non-webkit prefixes for list-style and object + */ + add(decl, prefix) { + let p = decl.prop + if (p.includes('mask')) { + if (prefix === '-webkit-' || prefix === '-webkit- old') { + return super.add(decl, prefix) + } + } else if ( + p === 'list-style' || + p === 'list-style-image' || + p === 'content' + ) { + if (prefix === '-webkit-' || prefix === '-webkit- old') { + return super.add(decl, prefix) + } + } else { + return super.add(decl, prefix) + } + return undefined + } +} + +Gradient.names = [ + 'linear-gradient', + 'repeating-linear-gradient', + 'radial-gradient', + 'repeating-radial-gradient' +] + +Gradient.directions = { + top: 'bottom', // default value + left: 'right', + bottom: 'top', + right: 'left' +} + +// Direction to replace +Gradient.oldDirections = { + 'top': 'left bottom, left top', + 'left': 'right top, left top', + 'bottom': 'left top, left bottom', + 'right': 'left top, right top', + + 'top right': 'left bottom, right top', + 'top left': 'right bottom, left top', + 'right top': 'left bottom, right top', + 'right bottom': 'left top, right bottom', + 'bottom right': 'left top, right bottom', + 'bottom left': 'right top, left bottom', + 'left top': 'right bottom, left top', + 'left bottom': 'right top, left bottom' +} + +module.exports = Gradient diff --git a/node_modules/autoprefixer/lib/hacks/grid-area.js b/node_modules/autoprefixer/lib/hacks/grid-area.js new file mode 100644 index 0000000..0a2d86c --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-area.js @@ -0,0 +1,34 @@ +let Declaration = require('../declaration') +let utils = require('./grid-utils') + +class GridArea extends Declaration { + /** + * Translate grid-area to separate -ms- prefixed properties + */ + insert(decl, prefix, prefixes, result) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + let values = utils.parse(decl) + + let [rowStart, rowSpan] = utils.translate(values, 0, 2) + let [columnStart, columnSpan] = utils.translate(values, 1, 3) + + ;[ + ['grid-row', rowStart], + ['grid-row-span', rowSpan], + ['grid-column', columnStart], + ['grid-column-span', columnSpan] + ].forEach(([prop, value]) => { + utils.insertDecl(decl, prop, value) + }) + + utils.warnTemplateSelectorNotFound(decl, result) + utils.warnIfGridRowColumnExists(decl, result) + + return undefined + } +} + +GridArea.names = ['grid-area'] + +module.exports = GridArea diff --git a/node_modules/autoprefixer/lib/hacks/grid-column-align.js b/node_modules/autoprefixer/lib/hacks/grid-column-align.js new file mode 100644 index 0000000..79c51be --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-column-align.js @@ -0,0 +1,28 @@ +let Declaration = require('../declaration') + +class GridColumnAlign extends Declaration { + /** + * Do not prefix flexbox values + */ + check(decl) { + return !decl.value.includes('flex-') && decl.value !== 'baseline' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + return prefix + 'grid-column-align' + } + + /** + * Change IE property back + */ + normalize() { + return 'justify-self' + } +} + +GridColumnAlign.names = ['grid-column-align'] + +module.exports = GridColumnAlign diff --git a/node_modules/autoprefixer/lib/hacks/grid-end.js b/node_modules/autoprefixer/lib/hacks/grid-end.js new file mode 100644 index 0000000..63f6a42 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-end.js @@ -0,0 +1,52 @@ +let Declaration = require('../declaration') +let { isPureNumber } = require('../utils') + +class GridEnd extends Declaration { + /** + * Change repeating syntax for IE + */ + insert(decl, prefix, prefixes, result) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + let clonedDecl = this.clone(decl) + + let startProp = decl.prop.replace(/end$/, 'start') + let spanProp = prefix + decl.prop.replace(/end$/, 'span') + + if (decl.parent.some(i => i.prop === spanProp)) { + return undefined + } + + clonedDecl.prop = spanProp + + if (decl.value.includes('span')) { + clonedDecl.value = decl.value.replace(/span\s/i, '') + } else { + let startDecl + decl.parent.walkDecls(startProp, d => { + startDecl = d + }) + if (startDecl) { + if (isPureNumber(startDecl.value)) { + let value = Number(decl.value) - Number(startDecl.value) + '' + clonedDecl.value = value + } else { + return undefined + } + } else { + decl.warn( + result, + `Can not prefix ${decl.prop} (${startProp} is not found)` + ) + } + } + + decl.cloneBefore(clonedDecl) + + return undefined + } +} + +GridEnd.names = ['grid-row-end', 'grid-column-end'] + +module.exports = GridEnd diff --git a/node_modules/autoprefixer/lib/hacks/grid-row-align.js b/node_modules/autoprefixer/lib/hacks/grid-row-align.js new file mode 100644 index 0000000..4b3bf86 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-row-align.js @@ -0,0 +1,28 @@ +let Declaration = require('../declaration') + +class GridRowAlign extends Declaration { + /** + * Do not prefix flexbox values + */ + check(decl) { + return !decl.value.includes('flex-') && decl.value !== 'baseline' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + return prefix + 'grid-row-align' + } + + /** + * Change IE property back + */ + normalize() { + return 'align-self' + } +} + +GridRowAlign.names = ['grid-row-align'] + +module.exports = GridRowAlign diff --git a/node_modules/autoprefixer/lib/hacks/grid-row-column.js b/node_modules/autoprefixer/lib/hacks/grid-row-column.js new file mode 100644 index 0000000..2199f78 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-row-column.js @@ -0,0 +1,33 @@ +let Declaration = require('../declaration') +let utils = require('./grid-utils') + +class GridRowColumn extends Declaration { + /** + * Translate grid-row / grid-column to separate -ms- prefixed properties + */ + insert(decl, prefix, prefixes) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + let values = utils.parse(decl) + let [start, span] = utils.translate(values, 0, 1) + + let hasStartValueSpan = values[0] && values[0].includes('span') + + if (hasStartValueSpan) { + span = values[0].join('').replace(/\D/g, '') + } + + ;[ + [decl.prop, start], + [`${decl.prop}-span`, span] + ].forEach(([prop, value]) => { + utils.insertDecl(decl, prop, value) + }) + + return undefined + } +} + +GridRowColumn.names = ['grid-row', 'grid-column'] + +module.exports = GridRowColumn diff --git a/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js b/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js new file mode 100644 index 0000000..ca10977 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js @@ -0,0 +1,125 @@ +let Declaration = require('../declaration') +let { + prefixTrackProp, + prefixTrackValue, + autoplaceGridItems, + getGridGap, + inheritGridGap +} = require('./grid-utils') +let Processor = require('../processor') + +class GridRowsColumns extends Declaration { + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + if (prefix === '-ms-') { + return prefixTrackProp({ prop, prefix }) + } + return super.prefixed(prop, prefix) + } + + /** + * Change IE property back + */ + normalize(prop) { + return prop.replace(/^grid-(rows|columns)/, 'grid-template-$1') + } + + insert(decl, prefix, prefixes, result) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + let { parent, prop, value } = decl + let isRowProp = prop.includes('rows') + let isColumnProp = prop.includes('columns') + + let hasGridTemplate = parent.some( + i => i.prop === 'grid-template' || i.prop === 'grid-template-areas' + ) + + /** + * Not to prefix rows declaration if grid-template(-areas) is present + */ + if (hasGridTemplate && isRowProp) { + return false + } + + let processor = new Processor({ options: {} }) + let status = processor.gridStatus(parent, result) + let gap = getGridGap(decl) + gap = inheritGridGap(decl, gap) || gap + + let gapValue = isRowProp ? gap.row : gap.column + + if ((status === 'no-autoplace' || status === true) && !hasGridTemplate) { + gapValue = null + } + + let prefixValue = prefixTrackValue({ + value, + gap: gapValue + }) + + /** + * Insert prefixes + */ + decl.cloneBefore({ + prop: prefixTrackProp({ prop, prefix }), + value: prefixValue + }) + + let autoflow = parent.nodes.find(i => i.prop === 'grid-auto-flow') + let autoflowValue = 'row' + + if (autoflow && !processor.disabled(autoflow, result)) { + autoflowValue = autoflow.value.trim() + } + if (status === 'autoplace') { + /** + * Show warning if grid-template-rows decl is not found + */ + let rowDecl = parent.nodes.find(i => i.prop === 'grid-template-rows') + + if (!rowDecl && hasGridTemplate) { + return undefined + } else if (!rowDecl && !hasGridTemplate) { + decl.warn( + result, + 'Autoplacement does not work without grid-template-rows property' + ) + return undefined + } + + /** + * Show warning if grid-template-columns decl is not found + */ + let columnDecl = parent.nodes.find(i => { + return i.prop === 'grid-template-columns' + }) + if (!columnDecl && !hasGridTemplate) { + decl.warn( + result, + 'Autoplacement does not work without grid-template-columns property' + ) + } + + /** + * Autoplace grid items + */ + if (isColumnProp && !hasGridTemplate) { + autoplaceGridItems(decl, result, gap, autoflowValue) + } + } + + return undefined + } +} + +GridRowsColumns.names = [ + 'grid-template-rows', + 'grid-template-columns', + 'grid-rows', + 'grid-columns' +] + +module.exports = GridRowsColumns diff --git a/node_modules/autoprefixer/lib/hacks/grid-start.js b/node_modules/autoprefixer/lib/hacks/grid-start.js new file mode 100644 index 0000000..32cebc1 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-start.js @@ -0,0 +1,33 @@ +let Declaration = require('../declaration') + +class GridStart extends Declaration { + /** + * Do not add prefix for unsupported value in IE + */ + check(decl) { + let value = decl.value + return !value.includes('/') && !value.includes('span') + } + + /** + * Return a final spec property + */ + normalize(prop) { + return prop.replace('-start', '') + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + let result = super.prefixed(prop, prefix) + if (prefix === '-ms-') { + result = result.replace('-start', '') + } + return result + } +} + +GridStart.names = ['grid-row-start', 'grid-column-start'] + +module.exports = GridStart diff --git a/node_modules/autoprefixer/lib/hacks/grid-template-areas.js b/node_modules/autoprefixer/lib/hacks/grid-template-areas.js new file mode 100644 index 0000000..9c7f214 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-template-areas.js @@ -0,0 +1,84 @@ +let Declaration = require('../declaration') +let { + parseGridAreas, + warnMissedAreas, + prefixTrackProp, + prefixTrackValue, + getGridGap, + warnGridGap, + inheritGridGap +} = require('./grid-utils') + +function getGridRows(tpl) { + return tpl + .trim() + .slice(1, -1) + .split(/["']\s*["']?/g) +} + +class GridTemplateAreas extends Declaration { + /** + * Translate grid-template-areas to separate -ms- prefixed properties + */ + insert(decl, prefix, prefixes, result) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + let hasColumns = false + let hasRows = false + let parent = decl.parent + let gap = getGridGap(decl) + gap = inheritGridGap(decl, gap) || gap + + // remove already prefixed rows + // to prevent doubling prefixes + parent.walkDecls(/-ms-grid-rows/, i => i.remove()) + + // add empty tracks to rows + parent.walkDecls(/grid-template-(rows|columns)/, trackDecl => { + if (trackDecl.prop === 'grid-template-rows') { + hasRows = true + let { prop, value } = trackDecl + trackDecl.cloneBefore({ + prop: prefixTrackProp({ prop, prefix }), + value: prefixTrackValue({ value, gap: gap.row }) + }) + } else { + hasColumns = true + } + }) + + let gridRows = getGridRows(decl.value) + + if (hasColumns && !hasRows && gap.row && gridRows.length > 1) { + decl.cloneBefore({ + prop: '-ms-grid-rows', + value: prefixTrackValue({ + value: `repeat(${gridRows.length}, auto)`, + gap: gap.row + }), + raws: {} + }) + } + + // warnings + warnGridGap({ + gap, + hasColumns, + decl, + result + }) + + let areas = parseGridAreas({ + rows: gridRows, + gap + }) + + warnMissedAreas(areas, decl, result) + + return decl + } +} + +GridTemplateAreas.names = ['grid-template-areas'] + +module.exports = GridTemplateAreas diff --git a/node_modules/autoprefixer/lib/hacks/grid-template.js b/node_modules/autoprefixer/lib/hacks/grid-template.js new file mode 100644 index 0000000..d2c5ea2 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-template.js @@ -0,0 +1,69 @@ +let Declaration = require('../declaration') +let { + parseTemplate, + warnMissedAreas, + getGridGap, + warnGridGap, + inheritGridGap +} = require('./grid-utils') + +class GridTemplate extends Declaration { + /** + * Translate grid-template to separate -ms- prefixed properties + */ + insert(decl, prefix, prefixes, result) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + if (decl.parent.some(i => i.prop === '-ms-grid-rows')) { + return undefined + } + + let gap = getGridGap(decl) + + /** + * we must insert inherited gap values in some cases: + * if we are inside media query && if we have no grid-gap value + */ + let inheritedGap = inheritGridGap(decl, gap) + + let { rows, columns, areas } = parseTemplate({ + decl, + gap: inheritedGap || gap + }) + + let hasAreas = Object.keys(areas).length > 0 + let hasRows = Boolean(rows) + let hasColumns = Boolean(columns) + + warnGridGap({ + gap, + hasColumns, + decl, + result + }) + + warnMissedAreas(areas, decl, result) + + if ((hasRows && hasColumns) || hasAreas) { + decl.cloneBefore({ + prop: '-ms-grid-rows', + value: rows, + raws: {} + }) + } + + if (hasColumns) { + decl.cloneBefore({ + prop: '-ms-grid-columns', + value: columns, + raws: {} + }) + } + + return decl + } +} + +GridTemplate.names = ['grid-template'] + +module.exports = GridTemplate diff --git a/node_modules/autoprefixer/lib/hacks/grid-utils.js b/node_modules/autoprefixer/lib/hacks/grid-utils.js new file mode 100644 index 0000000..1af3e3d --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/grid-utils.js @@ -0,0 +1,1113 @@ +let parser = require('postcss-value-parser') +let list = require('postcss').list + +let uniq = require('../utils').uniq +let escapeRegexp = require('../utils').escapeRegexp +let splitSelector = require('../utils').splitSelector + +function convert(value) { + if ( + value && + value.length === 2 && + value[0] === 'span' && + parseInt(value[1], 10) > 0 + ) { + return [false, parseInt(value[1], 10)] + } + + if (value && value.length === 1 && parseInt(value[0], 10) > 0) { + return [parseInt(value[0], 10), false] + } + + return [false, false] +} + +exports.translate = translate + +function translate(values, startIndex, endIndex) { + let startValue = values[startIndex] + let endValue = values[endIndex] + + if (!startValue) { + return [false, false] + } + + let [start, spanStart] = convert(startValue) + let [end, spanEnd] = convert(endValue) + + if (start && !endValue) { + return [start, false] + } + + if (spanStart && end) { + return [end - spanStart, spanStart] + } + + if (start && spanEnd) { + return [start, spanEnd] + } + + if (start && end) { + return [start, end - start] + } + + return [false, false] +} + +exports.parse = parse + +function parse(decl) { + let node = parser(decl.value) + + let values = [] + let current = 0 + values[current] = [] + + for (let i of node.nodes) { + if (i.type === 'div') { + current += 1 + values[current] = [] + } else if (i.type === 'word') { + values[current].push(i.value) + } + } + + return values +} + +exports.insertDecl = insertDecl + +function insertDecl(decl, prop, value) { + if (value && !decl.parent.some(i => i.prop === `-ms-${prop}`)) { + decl.cloneBefore({ + prop: `-ms-${prop}`, + value: value.toString() + }) + } +} + +// Track transforms + +exports.prefixTrackProp = prefixTrackProp + +function prefixTrackProp({ prop, prefix }) { + return prefix + prop.replace('template-', '') +} + +function transformRepeat({ nodes }, { gap }) { + let { count, size } = nodes.reduce( + (result, node) => { + if (node.type === 'div' && node.value === ',') { + result.key = 'size' + } else { + result[result.key].push(parser.stringify(node)) + } + return result + }, + { + key: 'count', + size: [], + count: [] + } + ) + + // insert gap values + if (gap) { + size = size.filter(i => i.trim()) + let val = [] + for (let i = 1; i <= count; i++) { + size.forEach((item, index) => { + if (index > 0 || i > 1) { + val.push(gap) + } + val.push(item) + }) + } + + return val.join(' ') + } + + return `(${size.join('')})[${count.join('')}]` +} + +exports.prefixTrackValue = prefixTrackValue + +function prefixTrackValue({ value, gap }) { + let result = parser(value).nodes.reduce((nodes, node) => { + if (node.type === 'function' && node.value === 'repeat') { + return nodes.concat({ + type: 'word', + value: transformRepeat(node, { gap }) + }) + } + if (gap && node.type === 'space') { + return nodes.concat( + { + type: 'space', + value: ' ' + }, + { + type: 'word', + value: gap + }, + node + ) + } + return nodes.concat(node) + }, []) + + return parser.stringify(result) +} + +// Parse grid-template-areas + +let DOTS = /^\.+$/ + +function track(start, end) { + return { start, end, span: end - start } +} + +function getColumns(line) { + return line.trim().split(/\s+/g) +} + +exports.parseGridAreas = parseGridAreas + +function parseGridAreas({ rows, gap }) { + return rows.reduce((areas, line, rowIndex) => { + if (gap.row) rowIndex *= 2 + + if (line.trim() === '') return areas + + getColumns(line).forEach((area, columnIndex) => { + if (DOTS.test(area)) return + + if (gap.column) columnIndex *= 2 + + if (typeof areas[area] === 'undefined') { + areas[area] = { + column: track(columnIndex + 1, columnIndex + 2), + row: track(rowIndex + 1, rowIndex + 2) + } + } else { + let { column, row } = areas[area] + + column.start = Math.min(column.start, columnIndex + 1) + column.end = Math.max(column.end, columnIndex + 2) + column.span = column.end - column.start + + row.start = Math.min(row.start, rowIndex + 1) + row.end = Math.max(row.end, rowIndex + 2) + row.span = row.end - row.start + } + }) + + return areas + }, {}) +} + +// Parse grid-template + +function testTrack(node) { + return node.type === 'word' && /^\[.+]$/.test(node.value) +} + +function verifyRowSize(result) { + if (result.areas.length > result.rows.length) { + result.rows.push('auto') + } + return result +} + +exports.parseTemplate = parseTemplate + +function parseTemplate({ decl, gap }) { + let gridTemplate = parser(decl.value).nodes.reduce( + (result, node) => { + let { type, value } = node + + if (testTrack(node) || type === 'space') return result + + // area + if (type === 'string') { + result = verifyRowSize(result) + result.areas.push(value) + } + + // values and function + if (type === 'word' || type === 'function') { + result[result.key].push(parser.stringify(node)) + } + + // divider(/) + if (type === 'div' && value === '/') { + result.key = 'columns' + result = verifyRowSize(result) + } + + return result + }, + { + key: 'rows', + columns: [], + rows: [], + areas: [] + } + ) + + return { + areas: parseGridAreas({ + rows: gridTemplate.areas, + gap + }), + columns: prefixTrackValue({ + value: gridTemplate.columns.join(' '), + gap: gap.column + }), + rows: prefixTrackValue({ + value: gridTemplate.rows.join(' '), + gap: gap.row + }) + } +} + +// Insert parsed grid areas + +/** + * Get an array of -ms- prefixed props and values + * @param {Object} [area] area object with column and row data + * @param {Boolean} [addRowSpan] should we add grid-column-row value? + * @param {Boolean} [addColumnSpan] should we add grid-column-span value? + * @return {Array} + */ +function getMSDecls(area, addRowSpan = false, addColumnSpan = false) { + let result = [ + { + prop: '-ms-grid-row', + value: String(area.row.start) + } + ] + if (area.row.span > 1 || addRowSpan) { + result.push({ + prop: '-ms-grid-row-span', + value: String(area.row.span) + }) + } + result.push({ + prop: '-ms-grid-column', + value: String(area.column.start) + }) + if (area.column.span > 1 || addColumnSpan) { + result.push({ + prop: '-ms-grid-column-span', + value: String(area.column.span) + }) + } + return result +} + +function getParentMedia(parent) { + if (parent.type === 'atrule' && parent.name === 'media') { + return parent + } + if (!parent.parent) { + return false + } + return getParentMedia(parent.parent) +} + +/** + * change selectors for rules with duplicate grid-areas. + * @param {Array} rules + * @param {Array} templateSelectors + * @return {Array} rules with changed selectors + */ +function changeDuplicateAreaSelectors(ruleSelectors, templateSelectors) { + ruleSelectors = ruleSelectors.map(selector => { + let selectorBySpace = list.space(selector) + let selectorByComma = list.comma(selector) + + if (selectorBySpace.length > selectorByComma.length) { + selector = selectorBySpace.slice(-1).join('') + } + return selector + }) + + return ruleSelectors.map(ruleSelector => { + let newSelector = templateSelectors.map((tplSelector, index) => { + let space = index === 0 ? '' : ' ' + return `${space}${tplSelector} > ${ruleSelector}` + }) + + return newSelector + }) +} + +/** + * check if selector of rules are equal + * @param {Rule} ruleA + * @param {Rule} ruleB + * @return {Boolean} + */ +function selectorsEqual(ruleA, ruleB) { + return ruleA.selectors.some(sel => { + return ruleB.selectors.includes(sel) + }) +} + +/** + * Parse data from all grid-template(-areas) declarations + * @param {Root} css css root + * @return {Object} parsed data + */ +function parseGridTemplatesData(css) { + let parsed = [] + + // we walk through every grid-template(-areas) declaration and store + // data with the same area names inside the item + css.walkDecls(/grid-template(-areas)?$/, d => { + let rule = d.parent + let media = getParentMedia(rule) + let gap = getGridGap(d) + let inheritedGap = inheritGridGap(d, gap) + let { areas } = parseTemplate({ decl: d, gap: inheritedGap || gap }) + let areaNames = Object.keys(areas) + + // skip node if it doesn't have areas + if (areaNames.length === 0) { + return true + } + + // check parsed array for item that include the same area names + // return index of that item + let index = parsed.reduce((acc, { allAreas }, idx) => { + let hasAreas = allAreas && areaNames.some(area => allAreas.includes(area)) + return hasAreas ? idx : acc + }, null) + + if (index !== null) { + // index is found, add the grid-template data to that item + let { allAreas, rules } = parsed[index] + + // check if rule has no duplicate area names + let hasNoDuplicates = rules.some(r => { + return r.hasDuplicates === false && selectorsEqual(r, rule) + }) + + let duplicatesFound = false + + // check need to gather all duplicate area names + let duplicateAreaNames = rules.reduce((acc, r) => { + if (!r.params && selectorsEqual(r, rule)) { + duplicatesFound = true + return r.duplicateAreaNames + } + if (!duplicatesFound) { + areaNames.forEach(name => { + if (r.areas[name]) { + acc.push(name) + } + }) + } + return uniq(acc) + }, []) + + // update grid-row/column-span values for areas with duplicate + // area names. @see #1084 and #1146 + rules.forEach(r => { + areaNames.forEach(name => { + let area = r.areas[name] + if (area && area.row.span !== areas[name].row.span) { + areas[name].row.updateSpan = true + } + + if (area && area.column.span !== areas[name].column.span) { + areas[name].column.updateSpan = true + } + }) + }) + + parsed[index].allAreas = uniq([...allAreas, ...areaNames]) + parsed[index].rules.push({ + hasDuplicates: !hasNoDuplicates, + params: media.params, + selectors: rule.selectors, + node: rule, + duplicateAreaNames, + areas + }) + } else { + // index is NOT found, push the new item to the parsed array + parsed.push({ + allAreas: areaNames, + areasCount: 0, + rules: [ + { + hasDuplicates: false, + duplicateRules: [], + params: media.params, + selectors: rule.selectors, + node: rule, + duplicateAreaNames: [], + areas + } + ] + }) + } + + return undefined + }) + + return parsed +} + +/** + * insert prefixed grid-area declarations + * @param {Root} css css root + * @param {Function} isDisabled check if the rule is disabled + * @return {void} + */ +exports.insertAreas = insertAreas + +function insertAreas(css, isDisabled) { + // parse grid-template declarations + let gridTemplatesData = parseGridTemplatesData(css) + + // return undefined if no declarations found + if (gridTemplatesData.length === 0) { + return undefined + } + + // we need to store the rules that we will insert later + let rulesToInsert = {} + + css.walkDecls('grid-area', gridArea => { + let gridAreaRule = gridArea.parent + let hasPrefixedRow = gridAreaRule.first.prop === '-ms-grid-row' + let gridAreaMedia = getParentMedia(gridAreaRule) + + if (isDisabled(gridArea)) { + return undefined + } + + let gridAreaRuleIndex = css.index(gridAreaMedia || gridAreaRule) + + let value = gridArea.value + // found the data that matches grid-area identifier + let data = gridTemplatesData.filter(d => d.allAreas.includes(value))[0] + + if (!data) { + return true + } + + let lastArea = data.allAreas[data.allAreas.length - 1] + let selectorBySpace = list.space(gridAreaRule.selector) + let selectorByComma = list.comma(gridAreaRule.selector) + let selectorIsComplex = + selectorBySpace.length > 1 && + selectorBySpace.length > selectorByComma.length + + // prevent doubling of prefixes + if (hasPrefixedRow) { + return false + } + + // create the empty object with the key as the last area name + // e.g if we have templates with "a b c" values, "c" will be the last area + if (!rulesToInsert[lastArea]) { + rulesToInsert[lastArea] = {} + } + + let lastRuleIsSet = false + + // walk through every grid-template rule data + for (let rule of data.rules) { + let area = rule.areas[value] + let hasDuplicateName = rule.duplicateAreaNames.includes(value) + + // if we can't find the area name, update lastRule and continue + if (!area) { + let lastRule = rulesToInsert[lastArea].lastRule + let lastRuleIndex + if (lastRule) { + lastRuleIndex = css.index(lastRule) + } else { + /* c8 ignore next 2 */ + lastRuleIndex = -1 + } + + if (gridAreaRuleIndex > lastRuleIndex) { + rulesToInsert[lastArea].lastRule = gridAreaMedia || gridAreaRule + } + continue + } + + // for grid-templates inside media rule we need to create empty + // array to push prefixed grid-area rules later + if (rule.params && !rulesToInsert[lastArea][rule.params]) { + rulesToInsert[lastArea][rule.params] = [] + } + + if ((!rule.hasDuplicates || !hasDuplicateName) && !rule.params) { + // grid-template has no duplicates and not inside media rule + + getMSDecls(area, false, false) + .reverse() + .forEach(i => + gridAreaRule.prepend( + Object.assign(i, { + raws: { + between: gridArea.raws.between + } + }) + ) + ) + + rulesToInsert[lastArea].lastRule = gridAreaRule + lastRuleIsSet = true + } else if (rule.hasDuplicates && !rule.params && !selectorIsComplex) { + // grid-template has duplicates and not inside media rule + let cloned = gridAreaRule.clone() + cloned.removeAll() + + getMSDecls(area, area.row.updateSpan, area.column.updateSpan) + .reverse() + .forEach(i => + cloned.prepend( + Object.assign(i, { + raws: { + between: gridArea.raws.between + } + }) + ) + ) + + cloned.selectors = changeDuplicateAreaSelectors( + cloned.selectors, + rule.selectors + ) + + if (rulesToInsert[lastArea].lastRule) { + rulesToInsert[lastArea].lastRule.after(cloned) + } + rulesToInsert[lastArea].lastRule = cloned + lastRuleIsSet = true + } else if ( + rule.hasDuplicates && + !rule.params && + selectorIsComplex && + gridAreaRule.selector.includes(rule.selectors[0]) + ) { + // grid-template has duplicates and not inside media rule + // and the selector is complex + gridAreaRule.walkDecls(/-ms-grid-(row|column)/, d => d.remove()) + getMSDecls(area, area.row.updateSpan, area.column.updateSpan) + .reverse() + .forEach(i => + gridAreaRule.prepend( + Object.assign(i, { + raws: { + between: gridArea.raws.between + } + }) + ) + ) + } else if (rule.params) { + // grid-template is inside media rule + // if we're inside media rule, we need to store prefixed rules + // inside rulesToInsert object to be able to preserve the order of media + // rules and merge them easily + let cloned = gridAreaRule.clone() + cloned.removeAll() + + getMSDecls(area, area.row.updateSpan, area.column.updateSpan) + .reverse() + .forEach(i => + cloned.prepend( + Object.assign(i, { + raws: { + between: gridArea.raws.between + } + }) + ) + ) + + if (rule.hasDuplicates && hasDuplicateName) { + cloned.selectors = changeDuplicateAreaSelectors( + cloned.selectors, + rule.selectors + ) + } + + cloned.raws = rule.node.raws + + if (css.index(rule.node.parent) > gridAreaRuleIndex) { + // append the prefixed rules right inside media rule + // with grid-template + rule.node.parent.append(cloned) + } else { + // store the rule to insert later + rulesToInsert[lastArea][rule.params].push(cloned) + } + + // set new rule as last rule ONLY if we didn't set lastRule for + // this grid-area before + if (!lastRuleIsSet) { + rulesToInsert[lastArea].lastRule = gridAreaMedia || gridAreaRule + } + } + } + + return undefined + }) + + // append stored rules inside the media rules + Object.keys(rulesToInsert).forEach(area => { + let data = rulesToInsert[area] + let lastRule = data.lastRule + Object.keys(data) + .reverse() + .filter(p => p !== 'lastRule') + .forEach(params => { + if (data[params].length > 0 && lastRule) { + lastRule.after({ name: 'media', params }) + lastRule.next().append(data[params]) + } + }) + }) + + return undefined +} + +/** + * Warn user if grid area identifiers are not found + * @param {Object} areas + * @param {Declaration} decl + * @param {Result} result + * @return {void} + */ +exports.warnMissedAreas = warnMissedAreas + +function warnMissedAreas(areas, decl, result) { + let missed = Object.keys(areas) + + decl.root().walkDecls('grid-area', gridArea => { + missed = missed.filter(e => e !== gridArea.value) + }) + + if (missed.length > 0) { + decl.warn(result, 'Can not find grid areas: ' + missed.join(', ')) + } + + return undefined +} + +/** + * compare selectors with grid-area rule and grid-template rule + * show warning if grid-template selector is not found + * (this function used for grid-area rule) + * @param {Declaration} decl + * @param {Result} result + * @return {void} + */ +exports.warnTemplateSelectorNotFound = warnTemplateSelectorNotFound + +function warnTemplateSelectorNotFound(decl, result) { + let rule = decl.parent + let root = decl.root() + let duplicatesFound = false + + // slice selector array. Remove the last part (for comparison) + let slicedSelectorArr = list + .space(rule.selector) + .filter(str => str !== '>') + .slice(0, -1) + + // we need to compare only if selector is complex. + // e.g '.grid-cell' is simple, but '.parent > .grid-cell' is complex + if (slicedSelectorArr.length > 0) { + let gridTemplateFound = false + let foundAreaSelector = null + + root.walkDecls(/grid-template(-areas)?$/, d => { + let parent = d.parent + let templateSelectors = parent.selectors + + let { areas } = parseTemplate({ decl: d, gap: getGridGap(d) }) + let hasArea = areas[decl.value] + + // find the the matching selectors + for (let tplSelector of templateSelectors) { + if (gridTemplateFound) { + break + } + let tplSelectorArr = list.space(tplSelector).filter(str => str !== '>') + + gridTemplateFound = tplSelectorArr.every( + (item, idx) => item === slicedSelectorArr[idx] + ) + } + + if (gridTemplateFound || !hasArea) { + return true + } + + if (!foundAreaSelector) { + foundAreaSelector = parent.selector + } + + // if we found the duplicate area with different selector + if (foundAreaSelector && foundAreaSelector !== parent.selector) { + duplicatesFound = true + } + + return undefined + }) + + // warn user if we didn't find template + if (!gridTemplateFound && duplicatesFound) { + decl.warn( + result, + 'Autoprefixer cannot find a grid-template ' + + `containing the duplicate grid-area "${decl.value}" ` + + `with full selector matching: ${slicedSelectorArr.join(' ')}` + ) + } + } +} + +/** + * warn user if both grid-area and grid-(row|column) + * declarations are present in the same rule + * @param {Declaration} decl + * @param {Result} result + * @return {void} + */ +exports.warnIfGridRowColumnExists = warnIfGridRowColumnExists + +function warnIfGridRowColumnExists(decl, result) { + let rule = decl.parent + let decls = [] + rule.walkDecls(/^grid-(row|column)/, d => { + if ( + !d.prop.endsWith('-end') && + !d.value.startsWith('span') && + !d.prop.endsWith('-gap') + ) { + decls.push(d) + } + }) + if (decls.length > 0) { + decls.forEach(d => { + d.warn( + result, + 'You already have a grid-area declaration present in the rule. ' + + `You should use either grid-area or ${d.prop}, not both` + ) + }) + } + + return undefined +} + +// Gap utils + +exports.getGridGap = getGridGap + +function getGridGap(decl) { + let gap = {} + + // try to find gap + let testGap = /^(grid-)?((row|column)-)?gap$/ + decl.parent.walkDecls(testGap, ({ prop, value }) => { + if (/^(grid-)?gap$/.test(prop)) { + let [row, , column] = parser(value).nodes + + gap.row = row && parser.stringify(row) + gap.column = column ? parser.stringify(column) : gap.row + } + if (/^(grid-)?row-gap$/.test(prop)) gap.row = value + if (/^(grid-)?column-gap$/.test(prop)) gap.column = value + }) + + return gap +} + +/** + * parse media parameters (for example 'min-width: 500px') + * @param {String} params parameter to parse + * @return {} + */ +function parseMediaParams(params) { + if (!params) { + return [] + } + let parsed = parser(params) + let prop + let value + + parsed.walk(node => { + if (node.type === 'word' && /min|max/g.test(node.value)) { + prop = node.value + } else if (node.value.includes('px')) { + value = parseInt(node.value.replace(/\D/g, '')) + } + }) + + return [prop, value] +} + +/** + * Compare the selectors and decide if we + * need to inherit gap from compared selector or not. + * @type {String} selA + * @type {String} selB + * @return {Boolean} + */ +function shouldInheritGap(selA, selB) { + let result + + // get arrays of selector split in 3-deep array + let splitSelectorArrA = splitSelector(selA) + let splitSelectorArrB = splitSelector(selB) + + if (splitSelectorArrA[0].length < splitSelectorArrB[0].length) { + // abort if selectorA has lower descendant specificity then selectorB + // (e.g '.grid' and '.hello .world .grid') + return false + } else if (splitSelectorArrA[0].length > splitSelectorArrB[0].length) { + // if selectorA has higher descendant specificity then selectorB + // (e.g '.foo .bar .grid' and '.grid') + + let idx = splitSelectorArrA[0].reduce((res, [item], index) => { + let firstSelectorPart = splitSelectorArrB[0][0][0] + if (item === firstSelectorPart) { + return index + } + return false + }, false) + + if (idx) { + result = splitSelectorArrB[0].every((arr, index) => { + return arr.every( + (part, innerIndex) => + // because selectorA has more space elements, we need to slice + // selectorA array by 'idx' number to compare them + splitSelectorArrA[0].slice(idx)[index][innerIndex] === part + ) + }) + } + } else { + // if selectorA has the same descendant specificity as selectorB + // this condition covers cases such as: '.grid.foo.bar' and '.grid' + result = splitSelectorArrB.some(byCommaArr => { + return byCommaArr.every((bySpaceArr, index) => { + return bySpaceArr.every( + (part, innerIndex) => splitSelectorArrA[0][index][innerIndex] === part + ) + }) + }) + } + + return result +} +/** + * inherit grid gap values from the closest rule above + * with the same selector + * @param {Declaration} decl + * @param {Object} gap gap values + * @return {Object | Boolean} return gap values or false (if not found) + */ +exports.inheritGridGap = inheritGridGap + +function inheritGridGap(decl, gap) { + let rule = decl.parent + let mediaRule = getParentMedia(rule) + let root = rule.root() + + // get an array of selector split in 3-deep array + let splitSelectorArr = splitSelector(rule.selector) + + // abort if the rule already has gaps + if (Object.keys(gap).length > 0) { + return false + } + + // e.g ['min-width'] + let [prop] = parseMediaParams(mediaRule.params) + + let lastBySpace = splitSelectorArr[0] + + // get escaped value from the selector + // if we have '.grid-2.foo.bar' selector, will be '\.grid\-2' + let escaped = escapeRegexp(lastBySpace[lastBySpace.length - 1][0]) + + let regexp = new RegExp(`(${escaped}$)|(${escaped}[,.])`) + + // find the closest rule with the same selector + let closestRuleGap + root.walkRules(regexp, r => { + let gridGap + + // abort if are checking the same rule + if (rule.toString() === r.toString()) { + return false + } + + // find grid-gap values + r.walkDecls('grid-gap', d => (gridGap = getGridGap(d))) + + // skip rule without gaps + if (!gridGap || Object.keys(gridGap).length === 0) { + return true + } + + // skip rules that should not be inherited from + if (!shouldInheritGap(rule.selector, r.selector)) { + return true + } + + let media = getParentMedia(r) + if (media) { + // if we are inside media, we need to check that media props match + // e.g ('min-width' === 'min-width') + let propToCompare = parseMediaParams(media.params)[0] + if (propToCompare === prop) { + closestRuleGap = gridGap + return true + } + } else { + closestRuleGap = gridGap + return true + } + + return undefined + }) + + // if we find the closest gap object + if (closestRuleGap && Object.keys(closestRuleGap).length > 0) { + return closestRuleGap + } + return false +} + +exports.warnGridGap = warnGridGap + +function warnGridGap({ gap, hasColumns, decl, result }) { + let hasBothGaps = gap.row && gap.column + if (!hasColumns && (hasBothGaps || (gap.column && !gap.row))) { + delete gap.column + decl.warn( + result, + 'Can not implement grid-gap without grid-template-columns' + ) + } +} + +/** + * normalize the grid-template-rows/columns values + * @param {String} str grid-template-rows/columns value + * @return {Array} normalized array with values + * @example + * let normalized = normalizeRowColumn('1fr repeat(2, 20px 50px) 1fr') + * normalized // <= ['1fr', '20px', '50px', '20px', '50px', '1fr'] + */ +function normalizeRowColumn(str) { + let normalized = parser(str).nodes.reduce((result, node) => { + if (node.type === 'function' && node.value === 'repeat') { + let key = 'count' + + let [count, value] = node.nodes.reduce( + (acc, n) => { + if (n.type === 'word' && key === 'count') { + acc[0] = Math.abs(parseInt(n.value)) + return acc + } + if (n.type === 'div' && n.value === ',') { + key = 'value' + return acc + } + if (key === 'value') { + acc[1] += parser.stringify(n) + } + return acc + }, + [0, ''] + ) + + if (count) { + for (let i = 0; i < count; i++) { + result.push(value) + } + } + + return result + } + if (node.type === 'space') { + return result + } + return result.concat(parser.stringify(node)) + }, []) + + return normalized +} + +exports.autoplaceGridItems = autoplaceGridItems + +/** + * Autoplace grid items + * @param {Declaration} decl + * @param {Result} result + * @param {Object} gap gap values + * @param {String} autoflowValue grid-auto-flow value + * @return {void} + * @see https://github.com/postcss/autoprefixer/issues/1148 + */ +function autoplaceGridItems(decl, result, gap, autoflowValue = 'row') { + let { parent } = decl + + let rowDecl = parent.nodes.find(i => i.prop === 'grid-template-rows') + let rows = normalizeRowColumn(rowDecl.value) + let columns = normalizeRowColumn(decl.value) + + // Build array of area names with dummy values. If we have 3 columns and + // 2 rows, filledRows will be equal to ['1 2 3', '4 5 6'] + let filledRows = rows.map((_, rowIndex) => { + return Array.from( + { length: columns.length }, + (v, k) => k + rowIndex * columns.length + 1 + ).join(' ') + }) + + let areas = parseGridAreas({ rows: filledRows, gap }) + let keys = Object.keys(areas) + let items = keys.map(i => areas[i]) + + // Change the order of cells if grid-auto-flow value is 'column' + if (autoflowValue.includes('column')) { + items = items.sort((a, b) => a.column.start - b.column.start) + } + + // Insert new rules + items.reverse().forEach((item, index) => { + let { column, row } = item + let nodeSelector = parent.selectors + .map(sel => sel + ` > *:nth-child(${keys.length - index})`) + .join(', ') + + // create new rule + let node = parent.clone().removeAll() + + // change rule selector + node.selector = nodeSelector + + // insert prefixed row/column values + node.append({ prop: '-ms-grid-row', value: row.start }) + node.append({ prop: '-ms-grid-column', value: column.start }) + + // insert rule + parent.after(node) + }) + + return undefined +} diff --git a/node_modules/autoprefixer/lib/hacks/image-rendering.js b/node_modules/autoprefixer/lib/hacks/image-rendering.js new file mode 100644 index 0000000..3b0d33a --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/image-rendering.js @@ -0,0 +1,48 @@ +let Declaration = require('../declaration') + +class ImageRendering extends Declaration { + /** + * Add hack only for crisp-edges + */ + check(decl) { + return decl.value === 'pixelated' + } + + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + if (prefix === '-ms-') { + return '-ms-interpolation-mode' + } + return super.prefixed(prop, prefix) + } + + /** + * Change property and value for IE + */ + set(decl, prefix) { + if (prefix !== '-ms-') return super.set(decl, prefix) + decl.prop = '-ms-interpolation-mode' + decl.value = 'nearest-neighbor' + return decl + } + + /** + * Return property name by spec + */ + normalize() { + return 'image-rendering' + } + + /** + * Warn on old value + */ + process(node, result) { + return super.process(node, result) + } +} + +ImageRendering.names = ['image-rendering', 'interpolation-mode'] + +module.exports = ImageRendering diff --git a/node_modules/autoprefixer/lib/hacks/image-set.js b/node_modules/autoprefixer/lib/hacks/image-set.js new file mode 100644 index 0000000..fecd088 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/image-set.js @@ -0,0 +1,18 @@ +let Value = require('../value') + +class ImageSet extends Value { + /** + * Use non-standard name for WebKit and Firefox + */ + replace(string, prefix) { + let fixed = super.replace(string, prefix) + if (prefix === '-webkit-') { + fixed = fixed.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi, 'url($1)$2') + } + return fixed + } +} + +ImageSet.names = ['image-set'] + +module.exports = ImageSet diff --git a/node_modules/autoprefixer/lib/hacks/inline-logical.js b/node_modules/autoprefixer/lib/hacks/inline-logical.js new file mode 100644 index 0000000..564af2e --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/inline-logical.js @@ -0,0 +1,34 @@ +let Declaration = require('../declaration') + +class InlineLogical extends Declaration { + /** + * Use old syntax for -moz- and -webkit- + */ + prefixed(prop, prefix) { + return prefix + prop.replace('-inline', '') + } + + /** + * Return property name by spec + */ + normalize(prop) { + return prop.replace(/(margin|padding|border)-(start|end)/, '$1-inline-$2') + } +} + +InlineLogical.names = [ + 'border-inline-start', + 'border-inline-end', + 'margin-inline-start', + 'margin-inline-end', + 'padding-inline-start', + 'padding-inline-end', + 'border-start', + 'border-end', + 'margin-start', + 'margin-end', + 'padding-start', + 'padding-end' +] + +module.exports = InlineLogical diff --git a/node_modules/autoprefixer/lib/hacks/intrinsic.js b/node_modules/autoprefixer/lib/hacks/intrinsic.js new file mode 100644 index 0000000..4e4e105 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/intrinsic.js @@ -0,0 +1,61 @@ +let OldValue = require('../old-value') +let Value = require('../value') + +function regexp(name) { + return new RegExp(`(^|[\\s,(])(${name}($|[\\s),]))`, 'gi') +} + +class Intrinsic extends Value { + regexp() { + if (!this.regexpCache) this.regexpCache = regexp(this.name) + return this.regexpCache + } + + isStretch() { + return ( + this.name === 'stretch' || + this.name === 'fill' || + this.name === 'fill-available' + ) + } + + replace(string, prefix) { + if (prefix === '-moz-' && this.isStretch()) { + return string.replace(this.regexp(), '$1-moz-available$3') + } + if (prefix === '-webkit-' && this.isStretch()) { + return string.replace(this.regexp(), '$1-webkit-fill-available$3') + } + return super.replace(string, prefix) + } + + old(prefix) { + let prefixed = prefix + this.name + if (this.isStretch()) { + if (prefix === '-moz-') { + prefixed = '-moz-available' + } else if (prefix === '-webkit-') { + prefixed = '-webkit-fill-available' + } + } + return new OldValue(this.name, prefixed, prefixed, regexp(prefixed)) + } + + add(decl, prefix) { + if (decl.prop.includes('grid') && prefix !== '-webkit-') { + return undefined + } + return super.add(decl, prefix) + } +} + +Intrinsic.names = [ + 'max-content', + 'min-content', + 'fit-content', + 'fill', + 'fill-available', + 'stretch' +] + +module.exports = Intrinsic diff --git a/node_modules/autoprefixer/lib/hacks/justify-content.js b/node_modules/autoprefixer/lib/hacks/justify-content.js new file mode 100644 index 0000000..2a27cfc --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/justify-content.js @@ -0,0 +1,54 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class JustifyContent extends Declaration { + /** + * Change property name for 2009 and 2012 specs + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2009) { + return prefix + 'box-pack' + } + if (spec === 2012) { + return prefix + 'flex-pack' + } + return super.prefixed(prop, prefix) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'justify-content' + } + + /** + * Change value for 2009 and 2012 specs + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec === 2009 || spec === 2012) { + let value = JustifyContent.oldValues[decl.value] || decl.value + decl.value = value + if (spec !== 2009 || value !== 'distribute') { + return super.set(decl, prefix) + } + } else if (spec === 'final') { + return super.set(decl, prefix) + } + return undefined + } +} + +JustifyContent.names = ['justify-content', 'flex-pack', 'box-pack'] + +JustifyContent.oldValues = { + 'flex-end': 'end', + 'flex-start': 'start', + 'space-between': 'justify', + 'space-around': 'distribute' +} + +module.exports = JustifyContent diff --git a/node_modules/autoprefixer/lib/hacks/mask-border.js b/node_modules/autoprefixer/lib/hacks/mask-border.js new file mode 100644 index 0000000..d5efde2 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/mask-border.js @@ -0,0 +1,38 @@ +let Declaration = require('../declaration') + +class MaskBorder extends Declaration { + /** + * Return property name by final spec + */ + normalize() { + return this.name.replace('box-image', 'border') + } + + /** + * Return flex property for 2012 spec + */ + prefixed(prop, prefix) { + let result = super.prefixed(prop, prefix) + if (prefix === '-webkit-') { + result = result.replace('border', 'box-image') + } + return result + } +} + +MaskBorder.names = [ + 'mask-border', + 'mask-border-source', + 'mask-border-slice', + 'mask-border-width', + 'mask-border-outset', + 'mask-border-repeat', + 'mask-box-image', + 'mask-box-image-source', + 'mask-box-image-slice', + 'mask-box-image-width', + 'mask-box-image-outset', + 'mask-box-image-repeat' +] + +module.exports = MaskBorder diff --git a/node_modules/autoprefixer/lib/hacks/mask-composite.js b/node_modules/autoprefixer/lib/hacks/mask-composite.js new file mode 100644 index 0000000..abb2388 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/mask-composite.js @@ -0,0 +1,88 @@ +let Declaration = require('../declaration') + +class MaskComposite extends Declaration { + /** + * Prefix mask-composite for webkit + */ + insert(decl, prefix, prefixes) { + let isCompositeProp = decl.prop === 'mask-composite' + + let compositeValues + + if (isCompositeProp) { + compositeValues = decl.value.split(',') + } else { + compositeValues = decl.value.match(MaskComposite.regexp) || [] + } + + compositeValues = compositeValues.map(el => el.trim()).filter(el => el) + let hasCompositeValues = compositeValues.length + + let compositeDecl + + if (hasCompositeValues) { + compositeDecl = this.clone(decl) + compositeDecl.value = compositeValues + .map(value => MaskComposite.oldValues[value] || value) + .join(', ') + + if (compositeValues.includes('intersect')) { + compositeDecl.value += ', xor' + } + + compositeDecl.prop = prefix + 'mask-composite' + } + + if (isCompositeProp) { + if (!hasCompositeValues) { + return undefined + } + + if (this.needCascade(decl)) { + compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix) + } + + return decl.parent.insertBefore(decl, compositeDecl) + } + + let cloned = this.clone(decl) + cloned.prop = prefix + cloned.prop + + if (hasCompositeValues) { + cloned.value = cloned.value.replace(MaskComposite.regexp, '') + } + + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + + decl.parent.insertBefore(decl, cloned) + + if (!hasCompositeValues) { + return decl + } + + if (this.needCascade(decl)) { + compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix) + } + return decl.parent.insertBefore(decl, compositeDecl) + } +} + +MaskComposite.names = ['mask', 'mask-composite'] + +MaskComposite.oldValues = { + add: 'source-over', + subtract: 'source-out', + intersect: 'source-in', + exclude: 'xor' +} + +MaskComposite.regexp = new RegExp( + `\\s+(${Object.keys(MaskComposite.oldValues).join( + '|' + )})\\b(?!\\))\\s*(?=[,])`, + 'ig' +) + +module.exports = MaskComposite diff --git a/node_modules/autoprefixer/lib/hacks/order.js b/node_modules/autoprefixer/lib/hacks/order.js new file mode 100644 index 0000000..12ccdea --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/order.js @@ -0,0 +1,42 @@ +let flexSpec = require('./flex-spec') +let Declaration = require('../declaration') + +class Order extends Declaration { + /** + * Change property name for 2009 and 2012 specs + */ + prefixed(prop, prefix) { + let spec + ;[spec, prefix] = flexSpec(prefix) + if (spec === 2009) { + return prefix + 'box-ordinal-group' + } + if (spec === 2012) { + return prefix + 'flex-order' + } + return super.prefixed(prop, prefix) + } + + /** + * Return property name by final spec + */ + normalize() { + return 'order' + } + + /** + * Fix value for 2009 spec + */ + set(decl, prefix) { + let spec = flexSpec(prefix)[0] + if (spec === 2009 && /\d/.test(decl.value)) { + decl.value = (parseInt(decl.value) + 1).toString() + return super.set(decl, prefix) + } + return super.set(decl, prefix) + } +} + +Order.names = ['order', 'flex-order', 'box-ordinal-group'] + +module.exports = Order diff --git a/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js b/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js new file mode 100644 index 0000000..0a09f1e --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js @@ -0,0 +1,33 @@ +let Declaration = require('../declaration') + +class OverscrollBehavior extends Declaration { + /** + * Change property name for IE + */ + prefixed(prop, prefix) { + return prefix + 'scroll-chaining' + } + + /** + * Return property name by spec + */ + normalize() { + return 'overscroll-behavior' + } + + /** + * Change value for IE + */ + set(decl, prefix) { + if (decl.value === 'auto') { + decl.value = 'chained' + } else if (decl.value === 'none' || decl.value === 'contain') { + decl.value = 'none' + } + return super.set(decl, prefix) + } +} + +OverscrollBehavior.names = ['overscroll-behavior', 'scroll-chaining'] + +module.exports = OverscrollBehavior diff --git a/node_modules/autoprefixer/lib/hacks/pixelated.js b/node_modules/autoprefixer/lib/hacks/pixelated.js new file mode 100644 index 0000000..63e7111 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/pixelated.js @@ -0,0 +1,34 @@ +let OldValue = require('../old-value') +let Value = require('../value') + +class Pixelated extends Value { + /** + * Use non-standard name for WebKit and Firefox + */ + replace(string, prefix) { + if (prefix === '-webkit-') { + return string.replace(this.regexp(), '$1-webkit-optimize-contrast') + } + if (prefix === '-moz-') { + return string.replace(this.regexp(), '$1-moz-crisp-edges') + } + return super.replace(string, prefix) + } + + /** + * Different name for WebKit and Firefox + */ + old(prefix) { + if (prefix === '-webkit-') { + return new OldValue(this.name, '-webkit-optimize-contrast') + } + if (prefix === '-moz-') { + return new OldValue(this.name, '-moz-crisp-edges') + } + return super.old(prefix) + } +} + +Pixelated.names = ['pixelated'] + +module.exports = Pixelated diff --git a/node_modules/autoprefixer/lib/hacks/place-self.js b/node_modules/autoprefixer/lib/hacks/place-self.js new file mode 100644 index 0000000..e0ce3e8 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/place-self.js @@ -0,0 +1,32 @@ +let Declaration = require('../declaration') +let utils = require('./grid-utils') + +class PlaceSelf extends Declaration { + /** + * Translate place-self to separate -ms- prefixed properties + */ + insert(decl, prefix, prefixes) { + if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) + + // prevent doubling of prefixes + if (decl.parent.some(i => i.prop === '-ms-grid-row-align')) { + return undefined + } + + let [[first, second]] = utils.parse(decl) + + if (second) { + utils.insertDecl(decl, 'grid-row-align', first) + utils.insertDecl(decl, 'grid-column-align', second) + } else { + utils.insertDecl(decl, 'grid-row-align', first) + utils.insertDecl(decl, 'grid-column-align', first) + } + + return undefined + } +} + +PlaceSelf.names = ['place-self'] + +module.exports = PlaceSelf diff --git a/node_modules/autoprefixer/lib/hacks/placeholder-shown.js b/node_modules/autoprefixer/lib/hacks/placeholder-shown.js new file mode 100644 index 0000000..8bb1cc8 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/placeholder-shown.js @@ -0,0 +1,17 @@ +let Selector = require('../selector') + +class PlaceholderShown extends Selector { + /** + * Return different selectors depend on prefix + */ + prefixed(prefix) { + if (prefix === '-ms-') { + return ':-ms-input-placeholder' + } + return `:${prefix}placeholder-shown` + } +} + +PlaceholderShown.names = [':placeholder-shown'] + +module.exports = PlaceholderShown diff --git a/node_modules/autoprefixer/lib/hacks/placeholder.js b/node_modules/autoprefixer/lib/hacks/placeholder.js new file mode 100644 index 0000000..45730a5 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/placeholder.js @@ -0,0 +1,33 @@ +let Selector = require('../selector') + +class Placeholder extends Selector { + /** + * Add old mozilla to possible prefixes + */ + possible() { + return super.possible().concat(['-moz- old', '-ms- old']) + } + + /** + * Return different selectors depend on prefix + */ + prefixed(prefix) { + if (prefix === '-webkit-') { + return '::-webkit-input-placeholder' + } + if (prefix === '-ms-') { + return '::-ms-input-placeholder' + } + if (prefix === '-ms- old') { + return ':-ms-input-placeholder' + } + if (prefix === '-moz- old') { + return ':-moz-placeholder' + } + return `::${prefix}placeholder` + } +} + +Placeholder.names = ['::placeholder'] + +module.exports = Placeholder diff --git a/node_modules/autoprefixer/lib/hacks/print-color-adjust.js b/node_modules/autoprefixer/lib/hacks/print-color-adjust.js new file mode 100644 index 0000000..951964b --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/print-color-adjust.js @@ -0,0 +1,25 @@ +let Declaration = require('../declaration') + +class PrintColorAdjust extends Declaration { + /** + * Change property name for WebKit-based browsers + */ + prefixed(prop, prefix) { + if (prefix === '-moz-') { + return 'color-adjust' + } else { + return prefix + 'print-color-adjust' + } + } + + /** + * Return property name by spec + */ + normalize() { + return 'print-color-adjust' + } +} + +PrintColorAdjust.names = ['print-color-adjust', 'color-adjust'] + +module.exports = PrintColorAdjust diff --git a/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js b/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js new file mode 100644 index 0000000..25dc4db --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js @@ -0,0 +1,23 @@ +let Declaration = require('../declaration') + +class TextDecorationSkipInk extends Declaration { + /** + * Change prefix for ink value + */ + set(decl, prefix) { + if (decl.prop === 'text-decoration-skip-ink' && decl.value === 'auto') { + decl.prop = prefix + 'text-decoration-skip' + decl.value = 'ink' + return decl + } else { + return super.set(decl, prefix) + } + } +} + +TextDecorationSkipInk.names = [ + 'text-decoration-skip-ink', + 'text-decoration-skip' +] + +module.exports = TextDecorationSkipInk diff --git a/node_modules/autoprefixer/lib/hacks/text-decoration.js b/node_modules/autoprefixer/lib/hacks/text-decoration.js new file mode 100644 index 0000000..148d98a --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/text-decoration.js @@ -0,0 +1,25 @@ +let Declaration = require('../declaration') + +const BASIC = [ + 'none', + 'underline', + 'overline', + 'line-through', + 'blink', + 'inherit', + 'initial', + 'unset' +] + +class TextDecoration extends Declaration { + /** + * Do not add prefixes for basic values. + */ + check(decl) { + return decl.value.split(/\s+/).some(i => !BASIC.includes(i)) + } +} + +TextDecoration.names = ['text-decoration'] + +module.exports = TextDecoration diff --git a/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js b/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js new file mode 100644 index 0000000..0d04f8b --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js @@ -0,0 +1,14 @@ +let Declaration = require('../declaration') + +class TextEmphasisPosition extends Declaration { + set(decl, prefix) { + if (prefix === '-webkit-') { + decl.value = decl.value.replace(/\s*(right|left)\s*/i, '') + } + return super.set(decl, prefix) + } +} + +TextEmphasisPosition.names = ['text-emphasis-position'] + +module.exports = TextEmphasisPosition diff --git a/node_modules/autoprefixer/lib/hacks/transform-decl.js b/node_modules/autoprefixer/lib/hacks/transform-decl.js new file mode 100644 index 0000000..2cf7e5e --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/transform-decl.js @@ -0,0 +1,79 @@ +let Declaration = require('../declaration') + +class TransformDecl extends Declaration { + /** + * Recursively check all parents for @keyframes + */ + keyframeParents(decl) { + let { parent } = decl + while (parent) { + if (parent.type === 'atrule' && parent.name === 'keyframes') { + return true + } + ;({ parent } = parent) + } + return false + } + + /** + * Is transform contain 3D commands + */ + contain3d(decl) { + if (decl.prop === 'transform-origin') { + return false + } + + for (let func of TransformDecl.functions3d) { + if (decl.value.includes(`${func}(`)) { + return true + } + } + + return false + } + + /** + * Replace rotateZ to rotate for IE 9 + */ + set(decl, prefix) { + decl = super.set(decl, prefix) + if (prefix === '-ms-') { + decl.value = decl.value.replace(/rotatez/gi, 'rotate') + } + return decl + } + + /** + * Don't add prefix for IE in keyframes + */ + insert(decl, prefix, prefixes) { + if (prefix === '-ms-') { + if (!this.contain3d(decl) && !this.keyframeParents(decl)) { + return super.insert(decl, prefix, prefixes) + } + } else if (prefix === '-o-') { + if (!this.contain3d(decl)) { + return super.insert(decl, prefix, prefixes) + } + } else { + return super.insert(decl, prefix, prefixes) + } + return undefined + } +} + +TransformDecl.names = ['transform', 'transform-origin'] + +TransformDecl.functions3d = [ + 'matrix3d', + 'translate3d', + 'translateZ', + 'scale3d', + 'scaleZ', + 'rotate3d', + 'rotateX', + 'rotateY', + 'perspective' +] + +module.exports = TransformDecl diff --git a/node_modules/autoprefixer/lib/hacks/user-select.js b/node_modules/autoprefixer/lib/hacks/user-select.js new file mode 100644 index 0000000..3aba217 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/user-select.js @@ -0,0 +1,28 @@ +let Declaration = require('../declaration') + +class UserSelect extends Declaration { + /** + * Change prefixed value for IE + */ + set(decl, prefix) { + if (prefix === '-ms-' && decl.value === 'contain') { + decl.value = 'element' + } + return super.set(decl, prefix) + } + + /** + * Avoid prefixing all in IE + */ + insert(decl, prefix, prefixes) { + if (decl.value === 'all' && prefix === '-ms-') { + return undefined + } else { + return super.insert(decl, prefix, prefixes) + } + } +} + +UserSelect.names = ['user-select'] + +module.exports = UserSelect diff --git a/node_modules/autoprefixer/lib/hacks/writing-mode.js b/node_modules/autoprefixer/lib/hacks/writing-mode.js new file mode 100644 index 0000000..aa7c075 --- /dev/null +++ b/node_modules/autoprefixer/lib/hacks/writing-mode.js @@ -0,0 +1,42 @@ +let Declaration = require('../declaration') + +class WritingMode extends Declaration { + insert(decl, prefix, prefixes) { + if (prefix === '-ms-') { + let cloned = this.set(this.clone(decl), prefix) + + if (this.needCascade(decl)) { + cloned.raws.before = this.calcBefore(prefixes, decl, prefix) + } + let direction = 'ltr' + + decl.parent.nodes.forEach(i => { + if (i.prop === 'direction') { + if (i.value === 'rtl' || i.value === 'ltr') direction = i.value + } + }) + + cloned.value = WritingMode.msValues[direction][decl.value] || decl.value + return decl.parent.insertBefore(decl, cloned) + } + + return super.insert(decl, prefix, prefixes) + } +} + +WritingMode.names = ['writing-mode'] + +WritingMode.msValues = { + ltr: { + 'horizontal-tb': 'lr-tb', + 'vertical-rl': 'tb-rl', + 'vertical-lr': 'tb-lr' + }, + rtl: { + 'horizontal-tb': 'rl-tb', + 'vertical-rl': 'bt-rl', + 'vertical-lr': 'bt-lr' + } +} + +module.exports = WritingMode diff --git a/node_modules/autoprefixer/lib/info.js b/node_modules/autoprefixer/lib/info.js new file mode 100644 index 0000000..d8cb8aa --- /dev/null +++ b/node_modules/autoprefixer/lib/info.js @@ -0,0 +1,123 @@ +let browserslist = require('browserslist') + +function capitalize(str) { + return str.slice(0, 1).toUpperCase() + str.slice(1) +} + +const NAMES = { + ie: 'IE', + ie_mob: 'IE Mobile', + ios_saf: 'iOS Safari', + op_mini: 'Opera Mini', + op_mob: 'Opera Mobile', + and_chr: 'Chrome for Android', + and_ff: 'Firefox for Android', + and_uc: 'UC for Android', + and_qq: 'QQ Browser', + kaios: 'KaiOS Browser', + baidu: 'Baidu Browser', + samsung: 'Samsung Internet' +} + +function prefix(name, prefixes, note) { + let out = ` ${name}` + if (note) out += ' *' + out += ': ' + out += prefixes.map(i => i.replace(/^-(.*)-$/g, '$1')).join(', ') + out += '\n' + return out +} + +module.exports = function (prefixes) { + if (prefixes.browsers.selected.length === 0) { + return 'No browsers selected' + } + + let versions = {} + for (let browser of prefixes.browsers.selected) { + let parts = browser.split(' ') + let name = parts[0] + let version = parts[1] + + name = NAMES[name] || capitalize(name) + if (versions[name]) { + versions[name].push(version) + } else { + versions[name] = [version] + } + } + + let out = 'Browsers:\n' + for (let browser in versions) { + let list = versions[browser] + list = list.sort((a, b) => parseFloat(b) - parseFloat(a)) + out += ` ${browser}: ${list.join(', ')}\n` + } + + let coverage = browserslist.coverage(prefixes.browsers.selected) + let round = Math.round(coverage * 100) / 100.0 + out += `\nThese browsers account for ${round}% of all users globally\n` + + let atrules = [] + for (let name in prefixes.add) { + let data = prefixes.add[name] + if (name[0] === '@' && data.prefixes) { + atrules.push(prefix(name, data.prefixes)) + } + } + if (atrules.length > 0) { + out += `\nAt-Rules:\n${atrules.sort().join('')}` + } + + let selectors = [] + for (let selector of prefixes.add.selectors) { + if (selector.prefixes) { + selectors.push(prefix(selector.name, selector.prefixes)) + } + } + if (selectors.length > 0) { + out += `\nSelectors:\n${selectors.sort().join('')}` + } + + let values = [] + let props = [] + let hadGrid = false + for (let name in prefixes.add) { + let data = prefixes.add[name] + if (name[0] !== '@' && data.prefixes) { + let grid = name.indexOf('grid-') === 0 + if (grid) hadGrid = true + props.push(prefix(name, data.prefixes, grid)) + } + + if (!Array.isArray(data.values)) { + continue + } + for (let value of data.values) { + let grid = value.name.includes('grid') + if (grid) hadGrid = true + let string = prefix(value.name, value.prefixes, grid) + if (!values.includes(string)) { + values.push(string) + } + } + } + + if (props.length > 0) { + out += `\nProperties:\n${props.sort().join('')}` + } + if (values.length > 0) { + out += `\nValues:\n${values.sort().join('')}` + } + if (hadGrid) { + out += '\n* - Prefixes will be added only on grid: true option.\n' + } + + if (!atrules.length && !selectors.length && !props.length && !values.length) { + out += + "\nAwesome! Your browsers don't require any vendor prefixes." + + '\nNow you can remove Autoprefixer from build steps.' + } + + return out +} diff --git a/node_modules/autoprefixer/lib/old-selector.js b/node_modules/autoprefixer/lib/old-selector.js new file mode 100644 index 0000000..4262479 --- /dev/null +++ b/node_modules/autoprefixer/lib/old-selector.js @@ -0,0 +1,67 @@ +class OldSelector { + constructor(selector, prefix) { + this.prefix = prefix + this.prefixed = selector.prefixed(this.prefix) + this.regexp = selector.regexp(this.prefix) + + this.prefixeds = selector + .possible() + .map(x => [selector.prefixed(x), selector.regexp(x)]) + + this.unprefixed = selector.name + this.nameRegexp = selector.regexp() + } + + /** + * Is rule a hack without unprefixed version bottom + */ + isHack(rule) { + let index = rule.parent.index(rule) + 1 + let rules = rule.parent.nodes + + while (index < rules.length) { + let before = rules[index].selector + if (!before) { + return true + } + + if (before.includes(this.unprefixed) && before.match(this.nameRegexp)) { + return false + } + + let some = false + for (let [string, regexp] of this.prefixeds) { + if (before.includes(string) && before.match(regexp)) { + some = true + break + } + } + + if (!some) { + return true + } + + index += 1 + } + + return true + } + + /** + * Does rule contain an unnecessary prefixed selector + */ + check(rule) { + if (!rule.selector.includes(this.prefixed)) { + return false + } + if (!rule.selector.match(this.regexp)) { + return false + } + if (this.isHack(rule)) { + return false + } + return true + } +} + +module.exports = OldSelector diff --git a/node_modules/autoprefixer/lib/old-value.js b/node_modules/autoprefixer/lib/old-value.js new file mode 100644 index 0000000..63a2643 --- /dev/null +++ b/node_modules/autoprefixer/lib/old-value.js @@ -0,0 +1,22 @@ +let utils = require('./utils') + +class OldValue { + constructor(unprefixed, prefixed, string, regexp) { + this.unprefixed = unprefixed + this.prefixed = prefixed + this.string = string || prefixed + this.regexp = regexp || utils.regexp(prefixed) + } + + /** + * Check, that value contain old value + */ + check(value) { + if (value.includes(this.string)) { + return !!value.match(this.regexp) + } + return false + } +} + +module.exports = OldValue diff --git a/node_modules/autoprefixer/lib/prefixer.js b/node_modules/autoprefixer/lib/prefixer.js new file mode 100644 index 0000000..ca28230 --- /dev/null +++ b/node_modules/autoprefixer/lib/prefixer.js @@ -0,0 +1,144 @@ +let Browsers = require('./browsers') +let vendor = require('./vendor') +let utils = require('./utils') + +/** + * Recursively clone objects + */ +function clone(obj, parent) { + let cloned = new obj.constructor() + + for (let i of Object.keys(obj || {})) { + let value = obj[i] + if (i === 'parent' && typeof value === 'object') { + if (parent) { + cloned[i] = parent + } + } else if (i === 'source' || i === null) { + cloned[i] = value + } else if (Array.isArray(value)) { + cloned[i] = value.map(x => clone(x, cloned)) + } else if ( + i !== '_autoprefixerPrefix' && + i !== '_autoprefixerValues' && + i !== 'proxyCache' + ) { + if (typeof value === 'object' && value !== null) { + value = clone(value, cloned) + } + cloned[i] = value + } + } + + return cloned +} + +class Prefixer { + /** + * Add hack to selected names + */ + static hack(klass) { + if (!this.hacks) { + this.hacks = {} + } + return klass.names.map(name => { + this.hacks[name] = klass + return this.hacks[name] + }) + } + + /** + * Load hacks for some names + */ + static load(name, prefixes, all) { + let Klass = this.hacks && this.hacks[name] + if (Klass) { + return new Klass(name, prefixes, all) + } else { + return new this(name, prefixes, all) + } + } + + /** + * Clone node and clean autprefixer custom caches + */ + static clone(node, overrides) { + let cloned = clone(node) + for (let name in overrides) { + cloned[name] = overrides[name] + } + return cloned + } + + constructor(name, prefixes, all) { + this.prefixes = prefixes + this.name = name + this.all = all + } + + /** + * Find prefix in node parents + */ + parentPrefix(node) { + let prefix + + if (typeof node._autoprefixerPrefix !== 'undefined') { + prefix = node._autoprefixerPrefix + } else if (node.type === 'decl' && node.prop[0] === '-') { + prefix = vendor.prefix(node.prop) + } else if (node.type === 'root') { + prefix = false + } else if ( + node.type === 'rule' && + node.selector.includes(':-') && + /:(-\w+-)/.test(node.selector) + ) { + prefix = node.selector.match(/:(-\w+-)/)[1] + } else if (node.type === 'atrule' && node.name[0] === '-') { + prefix = vendor.prefix(node.name) + } else { + prefix = this.parentPrefix(node.parent) + } + + if (!Browsers.prefixes().includes(prefix)) { + prefix = false + } + + node._autoprefixerPrefix = prefix + + return node._autoprefixerPrefix + } + + /** + * Clone node with prefixes + */ + process(node, result) { + if (!this.check(node)) { + return undefined + } + + let parent = this.parentPrefix(node) + + let prefixes = this.prefixes.filter( + prefix => !parent || parent === utils.removeNote(prefix) + ) + + let added = [] + for (let prefix of prefixes) { + if (this.add(node, prefix, added.concat([prefix]), result)) { + added.push(prefix) + } + } + + return added + } + + /** + * Shortcut for Prefixer.clone + */ + clone(node, overrides) { + return Prefixer.clone(node, overrides) + } +} + +module.exports = Prefixer diff --git a/node_modules/autoprefixer/lib/prefixes.js b/node_modules/autoprefixer/lib/prefixes.js new file mode 100644 index 0000000..2cd497a --- /dev/null +++ b/node_modules/autoprefixer/lib/prefixes.js @@ -0,0 +1,428 @@ +let vendor = require('./vendor') +let Declaration = require('./declaration') +let Resolution = require('./resolution') +let Transition = require('./transition') +let Processor = require('./processor') +let Supports = require('./supports') +let Browsers = require('./browsers') +let Selector = require('./selector') +let AtRule = require('./at-rule') +let Value = require('./value') +let utils = require('./utils') +let hackFullscreen = require('./hacks/fullscreen') +let hackPlaceholder = require('./hacks/placeholder') +let hackPlaceholderShown = require('./hacks/placeholder-shown') +let hackFileSelectorButton = require('./hacks/file-selector-button') +let hackFlex = require('./hacks/flex') +let hackOrder = require('./hacks/order') +let hackFilter = require('./hacks/filter') +let hackGridEnd = require('./hacks/grid-end') +let hackAnimation = require('./hacks/animation') +let hackFlexFlow = require('./hacks/flex-flow') +let hackFlexGrow = require('./hacks/flex-grow') +let hackFlexWrap = require('./hacks/flex-wrap') +let hackGridArea = require('./hacks/grid-area') +let hackPlaceSelf = require('./hacks/place-self') +let hackGridStart = require('./hacks/grid-start') +let hackAlignSelf = require('./hacks/align-self') +let hackAppearance = require('./hacks/appearance') +let hackFlexBasis = require('./hacks/flex-basis') +let hackMaskBorder = require('./hacks/mask-border') +let hackMaskComposite = require('./hacks/mask-composite') +let hackAlignItems = require('./hacks/align-items') +let hackUserSelect = require('./hacks/user-select') +let hackFlexShrink = require('./hacks/flex-shrink') +let hackBreakProps = require('./hacks/break-props') +let hackWritingMode = require('./hacks/writing-mode') +let hackBorderImage = require('./hacks/border-image') +let hackAlignContent = require('./hacks/align-content') +let hackBorderRadius = require('./hacks/border-radius') +let hackBlockLogical = require('./hacks/block-logical') +let hackGridTemplate = require('./hacks/grid-template') +let hackInlineLogical = require('./hacks/inline-logical') +let hackGridRowAlign = require('./hacks/grid-row-align') +let hackTransformDecl = require('./hacks/transform-decl') +let hackFlexDirection = require('./hacks/flex-direction') +let hackImageRendering = require('./hacks/image-rendering') +let hackBackdropFilter = require('./hacks/backdrop-filter') +let hackBackgroundClip = require('./hacks/background-clip') +let hackTextDecoration = require('./hacks/text-decoration') +let hackJustifyContent = require('./hacks/justify-content') +let hackBackgroundSize = require('./hacks/background-size') +let hackGridRowColumn = require('./hacks/grid-row-column') +let hackGridRowsColumns = require('./hacks/grid-rows-columns') +let hackGridColumnAlign = require('./hacks/grid-column-align') +let hackPrintColorAdjust = require('./hacks/print-color-adjust') +let hackOverscrollBehavior = require('./hacks/overscroll-behavior') +let hackGridTemplateAreas = require('./hacks/grid-template-areas') +let hackTextEmphasisPosition = require('./hacks/text-emphasis-position') +let hackTextDecorationSkipInk = require('./hacks/text-decoration-skip-ink') +let hackGradient = require('./hacks/gradient') +let hackIntrinsic = require('./hacks/intrinsic') +let hackPixelated = require('./hacks/pixelated') +let hackImageSet = require('./hacks/image-set') +let hackCrossFade = require('./hacks/cross-fade') +let hackDisplayFlex = require('./hacks/display-flex') +let hackDisplayGrid = require('./hacks/display-grid') +let hackFilterValue = require('./hacks/filter-value') +let hackAutofill = require('./hacks/autofill') + +Selector.hack(hackAutofill) +Selector.hack(hackFullscreen) +Selector.hack(hackPlaceholder) +Selector.hack(hackPlaceholderShown) +Selector.hack(hackFileSelectorButton) +Declaration.hack(hackFlex) +Declaration.hack(hackOrder) +Declaration.hack(hackFilter) +Declaration.hack(hackGridEnd) +Declaration.hack(hackAnimation) +Declaration.hack(hackFlexFlow) +Declaration.hack(hackFlexGrow) +Declaration.hack(hackFlexWrap) +Declaration.hack(hackGridArea) +Declaration.hack(hackPlaceSelf) +Declaration.hack(hackGridStart) +Declaration.hack(hackAlignSelf) +Declaration.hack(hackAppearance) +Declaration.hack(hackFlexBasis) +Declaration.hack(hackMaskBorder) +Declaration.hack(hackMaskComposite) +Declaration.hack(hackAlignItems) +Declaration.hack(hackUserSelect) +Declaration.hack(hackFlexShrink) +Declaration.hack(hackBreakProps) +Declaration.hack(hackWritingMode) +Declaration.hack(hackBorderImage) +Declaration.hack(hackAlignContent) +Declaration.hack(hackBorderRadius) +Declaration.hack(hackBlockLogical) +Declaration.hack(hackGridTemplate) +Declaration.hack(hackInlineLogical) +Declaration.hack(hackGridRowAlign) +Declaration.hack(hackTransformDecl) +Declaration.hack(hackFlexDirection) +Declaration.hack(hackImageRendering) +Declaration.hack(hackBackdropFilter) +Declaration.hack(hackBackgroundClip) +Declaration.hack(hackTextDecoration) +Declaration.hack(hackJustifyContent) +Declaration.hack(hackBackgroundSize) +Declaration.hack(hackGridRowColumn) +Declaration.hack(hackGridRowsColumns) +Declaration.hack(hackGridColumnAlign) +Declaration.hack(hackOverscrollBehavior) +Declaration.hack(hackGridTemplateAreas) +Declaration.hack(hackPrintColorAdjust) +Declaration.hack(hackTextEmphasisPosition) +Declaration.hack(hackTextDecorationSkipInk) +Value.hack(hackGradient) +Value.hack(hackIntrinsic) +Value.hack(hackPixelated) +Value.hack(hackImageSet) +Value.hack(hackCrossFade) +Value.hack(hackDisplayFlex) +Value.hack(hackDisplayGrid) +Value.hack(hackFilterValue) + +let declsCache = new Map() + +class Prefixes { + constructor(data, browsers, options = {}) { + this.data = data + this.browsers = browsers + this.options = options + ;[this.add, this.remove] = this.preprocess(this.select(this.data)) + this.transition = new Transition(this) + this.processor = new Processor(this) + } + + /** + * Return clone instance to remove all prefixes + */ + cleaner() { + if (this.cleanerCache) { + return this.cleanerCache + } + + if (this.browsers.selected.length) { + let empty = new Browsers(this.browsers.data, []) + this.cleanerCache = new Prefixes(this.data, empty, this.options) + } else { + return this + } + + return this.cleanerCache + } + + /** + * Select prefixes from data, which is necessary for selected browsers + */ + select(list) { + let selected = { add: {}, remove: {} } + + for (let name in list) { + let data = list[name] + let add = data.browsers.map(i => { + let params = i.split(' ') + return { + browser: `${params[0]} ${params[1]}`, + note: params[2] + } + }) + + let notes = add + .filter(i => i.note) + .map(i => `${this.browsers.prefix(i.browser)} ${i.note}`) + notes = utils.uniq(notes) + + add = add + .filter(i => this.browsers.isSelected(i.browser)) + .map(i => { + let prefix = this.browsers.prefix(i.browser) + if (i.note) { + return `${prefix} ${i.note}` + } else { + return prefix + } + }) + add = this.sort(utils.uniq(add)) + + if (this.options.flexbox === 'no-2009') { + add = add.filter(i => !i.includes('2009')) + } + + let all = data.browsers.map(i => this.browsers.prefix(i)) + if (data.mistakes) { + all = all.concat(data.mistakes) + } + all = all.concat(notes) + all = utils.uniq(all) + + if (add.length) { + selected.add[name] = add + if (add.length < all.length) { + selected.remove[name] = all.filter(i => !add.includes(i)) + } + } else { + selected.remove[name] = all + } + } + + return selected + } + + /** + * Sort vendor prefixes + */ + sort(prefixes) { + return prefixes.sort((a, b) => { + let aLength = utils.removeNote(a).length + let bLength = utils.removeNote(b).length + + if (aLength === bLength) { + return b.length - a.length + } else { + return bLength - aLength + } + }) + } + + /** + * Cache prefixes data to fast CSS processing + */ + preprocess(selected) { + let add = { + 'selectors': [], + '@supports': new Supports(Prefixes, this) + } + for (let name in selected.add) { + let prefixes = selected.add[name] + if (name === '@keyframes' || name === '@viewport') { + add[name] = new AtRule(name, prefixes, this) + } else if (name === '@resolution') { + add[name] = new Resolution(name, prefixes, this) + } else if (this.data[name].selector) { + add.selectors.push(Selector.load(name, prefixes, this)) + } else { + let props = this.data[name].props + + if (props) { + let value = Value.load(name, prefixes, this) + for (let prop of props) { + if (!add[prop]) { + add[prop] = { values: [] } + } + add[prop].values.push(value) + } + } else { + let values = (add[name] && add[name].values) || [] + add[name] = Declaration.load(name, prefixes, this) + add[name].values = values + } + } + } + + let remove = { selectors: [] } + for (let name in selected.remove) { + let prefixes = selected.remove[name] + if (this.data[name].selector) { + let selector = Selector.load(name, prefixes) + for (let prefix of prefixes) { + remove.selectors.push(selector.old(prefix)) + } + } else if (name === '@keyframes' || name === '@viewport') { + for (let prefix of prefixes) { + let prefixed = `@${prefix}${name.slice(1)}` + remove[prefixed] = { remove: true } + } + } else if (name === '@resolution') { + remove[name] = new Resolution(name, prefixes, this) + } else { + let props = this.data[name].props + if (props) { + let value = Value.load(name, [], this) + for (let prefix of prefixes) { + let old = value.old(prefix) + if (old) { + for (let prop of props) { + if (!remove[prop]) { + remove[prop] = {} + } + if (!remove[prop].values) { + remove[prop].values = [] + } + remove[prop].values.push(old) + } + } + } + } else { + for (let p of prefixes) { + let olds = this.decl(name).old(name, p) + if (name === 'align-self') { + let a = add[name] && add[name].prefixes + if (a) { + if (p === '-webkit- 2009' && a.includes('-webkit-')) { + continue + } else if (p === '-webkit-' && a.includes('-webkit- 2009')) { + continue + } + } + } + for (let prefixed of olds) { + if (!remove[prefixed]) { + remove[prefixed] = {} + } + remove[prefixed].remove = true + } + } + } + } + } + + return [add, remove] + } + + /** + * Declaration loader with caching + */ + decl(prop) { + if (!declsCache.has(prop)) { + declsCache.set(prop, Declaration.load(prop)) + } + + return declsCache.get(prop) + } + + /** + * Return unprefixed version of property + */ + unprefixed(prop) { + let value = this.normalize(vendor.unprefixed(prop)) + if (value === 'flex-direction') { + value = 'flex-flow' + } + return value + } + + /** + * Normalize prefix for remover + */ + normalize(prop) { + return this.decl(prop).normalize(prop) + } + + /** + * Return prefixed version of property + */ + prefixed(prop, prefix) { + prop = vendor.unprefixed(prop) + return this.decl(prop).prefixed(prop, prefix) + } + + /** + * Return values, which must be prefixed in selected property + */ + values(type, prop) { + let data = this[type] + + let global = data['*'] && data['*'].values + let values = data[prop] && data[prop].values + + if (global && values) { + return utils.uniq(global.concat(values)) + } else { + return global || values || [] + } + } + + /** + * Group declaration by unprefixed property to check them + */ + group(decl) { + let rule = decl.parent + let index = rule.index(decl) + let { length } = rule.nodes + let unprefixed = this.unprefixed(decl.prop) + + let checker = (step, callback) => { + index += step + while (index >= 0 && index < length) { + let other = rule.nodes[index] + if (other.type === 'decl') { + if (step === -1 && other.prop === unprefixed) { + if (!Browsers.withPrefix(other.value)) { + break + } + } + + if (this.unprefixed(other.prop) !== unprefixed) { + break + } else if (callback(other) === true) { + return true + } + + if (step === +1 && other.prop === unprefixed) { + if (!Browsers.withPrefix(other.value)) { + break + } + } + } + + index += step + } + return false + } + + return { + up(callback) { + return checker(-1, callback) + }, + down(callback) { + return checker(+1, callback) + } + } + } +} + +module.exports = Prefixes diff --git a/node_modules/autoprefixer/lib/processor.js b/node_modules/autoprefixer/lib/processor.js new file mode 100644 index 0000000..d27b5e8 --- /dev/null +++ b/node_modules/autoprefixer/lib/processor.js @@ -0,0 +1,718 @@ +let parser = require('postcss-value-parser') + +let Value = require('./value') +let insertAreas = require('./hacks/grid-utils').insertAreas + +const OLD_LINEAR = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i +const OLD_RADIAL = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i +const IGNORE_NEXT = /(!\s*)?autoprefixer:\s*ignore\s+next/i +const GRID_REGEX = /(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i + +const SIZES = [ + 'width', + 'height', + 'min-width', + 'max-width', + 'min-height', + 'max-height', + 'inline-size', + 'min-inline-size', + 'max-inline-size', + 'block-size', + 'min-block-size', + 'max-block-size' +] + +function hasGridTemplate(decl) { + return decl.parent.some( + i => i.prop === 'grid-template' || i.prop === 'grid-template-areas' + ) +} + +function hasRowsAndColumns(decl) { + let hasRows = decl.parent.some(i => i.prop === 'grid-template-rows') + let hasColumns = decl.parent.some(i => i.prop === 'grid-template-columns') + return hasRows && hasColumns +} + +class Processor { + constructor(prefixes) { + this.prefixes = prefixes + } + + /** + * Add necessary prefixes + */ + add(css, result) { + // At-rules + let resolution = this.prefixes.add['@resolution'] + let keyframes = this.prefixes.add['@keyframes'] + let viewport = this.prefixes.add['@viewport'] + let supports = this.prefixes.add['@supports'] + + css.walkAtRules(rule => { + if (rule.name === 'keyframes') { + if (!this.disabled(rule, result)) { + return keyframes && keyframes.process(rule) + } + } else if (rule.name === 'viewport') { + if (!this.disabled(rule, result)) { + return viewport && viewport.process(rule) + } + } else if (rule.name === 'supports') { + if ( + this.prefixes.options.supports !== false && + !this.disabled(rule, result) + ) { + return supports.process(rule) + } + } else if (rule.name === 'media' && rule.params.includes('-resolution')) { + if (!this.disabled(rule, result)) { + return resolution && resolution.process(rule) + } + } + + return undefined + }) + + // Selectors + css.walkRules(rule => { + if (this.disabled(rule, result)) return undefined + + return this.prefixes.add.selectors.map(selector => { + return selector.process(rule, result) + }) + }) + + function insideGrid(decl) { + return decl.parent.nodes.some(node => { + if (node.type !== 'decl') return false + let displayGrid = + node.prop === 'display' && /(inline-)?grid/.test(node.value) + let gridTemplate = node.prop.startsWith('grid-template') + let gridGap = /^grid-([A-z]+-)?gap/.test(node.prop) + return displayGrid || gridTemplate || gridGap + }) + } + function insideFlex(decl) { + return decl.parent.some(node => { + return node.prop === 'display' && /(inline-)?flex/.test(node.value) + }) + } + + let gridPrefixes = + this.gridStatus(css, result) && + this.prefixes.add['grid-area'] && + this.prefixes.add['grid-area'].prefixes + + css.walkDecls(decl => { + if (this.disabledDecl(decl, result)) return undefined + + let parent = decl.parent + let prop = decl.prop + let value = decl.value + + if (prop === 'color-adjust') { + if (parent.every(i => i.prop !== 'print-color-adjust')) { + result.warn( + 'Replace color-adjust to print-color-adjust. ' + + 'The color-adjust shorthand is currently deprecated.', + { node: decl } + ) + } + } else if (prop === 'grid-row-span') { + result.warn( + 'grid-row-span is not part of final Grid Layout. Use grid-row.', + { node: decl } + ) + return undefined + } else if (prop === 'grid-column-span') { + result.warn( + 'grid-column-span is not part of final Grid Layout. Use grid-column.', + { node: decl } + ) + return undefined + } else if (prop === 'display' && value === 'box') { + result.warn( + 'You should write display: flex by final spec ' + + 'instead of display: box', + { node: decl } + ) + return undefined + } else if (prop === 'text-emphasis-position') { + if (value === 'under' || value === 'over') { + result.warn( + 'You should use 2 values for text-emphasis-position ' + + 'For example, `under left` instead of just `under`.', + { node: decl } + ) + } + } else if ( + /^(align|justify|place)-(items|content)$/.test(prop) && + insideFlex(decl) + ) { + if (value === 'start' || value === 'end') { + result.warn( + `${value} value has mixed support, consider using ` + + `flex-${value} instead`, + { node: decl } + ) + } + } else if (prop === 'text-decoration-skip' && value === 'ink') { + result.warn( + 'Replace text-decoration-skip: ink to ' + + 'text-decoration-skip-ink: auto, because spec had been changed', + { node: decl } + ) + } else { + if (gridPrefixes && this.gridStatus(decl, result)) { + if (decl.value === 'subgrid') { + result.warn('IE does not support subgrid', { node: decl }) + } + if (/^(align|justify|place)-items$/.test(prop) && insideGrid(decl)) { + let fixed = prop.replace('-items', '-self') + result.warn( + `IE does not support ${prop} on grid containers. ` + + `Try using ${fixed} on child elements instead: ` + + `${decl.parent.selector} > * { ${fixed}: ${decl.value} }`, + { node: decl } + ) + } else if ( + /^(align|justify|place)-content$/.test(prop) && + insideGrid(decl) + ) { + result.warn(`IE does not support ${decl.prop} on grid containers`, { + node: decl + }) + } else if (prop === 'display' && decl.value === 'contents') { + result.warn( + 'Please do not use display: contents; ' + + 'if you have grid setting enabled', + { node: decl } + ) + return undefined + } else if (decl.prop === 'grid-gap') { + let status = this.gridStatus(decl, result) + if ( + status === 'autoplace' && + !hasRowsAndColumns(decl) && + !hasGridTemplate(decl) + ) { + result.warn( + 'grid-gap only works if grid-template(-areas) is being ' + + 'used or both rows and columns have been declared ' + + 'and cells have not been manually ' + + 'placed inside the explicit grid', + { node: decl } + ) + } else if ( + (status === true || status === 'no-autoplace') && + !hasGridTemplate(decl) + ) { + result.warn( + 'grid-gap only works if grid-template(-areas) is being used', + { node: decl } + ) + } + } else if (prop === 'grid-auto-columns') { + result.warn('grid-auto-columns is not supported by IE', { + node: decl + }) + return undefined + } else if (prop === 'grid-auto-rows') { + result.warn('grid-auto-rows is not supported by IE', { node: decl }) + return undefined + } else if (prop === 'grid-auto-flow') { + let hasRows = parent.some(i => i.prop === 'grid-template-rows') + let hasCols = parent.some(i => i.prop === 'grid-template-columns') + + if (hasGridTemplate(decl)) { + result.warn('grid-auto-flow is not supported by IE', { + node: decl + }) + } else if (value.includes('dense')) { + result.warn('grid-auto-flow: dense is not supported by IE', { + node: decl + }) + } else if (!hasRows && !hasCols) { + result.warn( + 'grid-auto-flow works only if grid-template-rows and ' + + 'grid-template-columns are present in the same rule', + { node: decl } + ) + } + return undefined + } else if (value.includes('auto-fit')) { + result.warn('auto-fit value is not supported by IE', { + node: decl, + word: 'auto-fit' + }) + return undefined + } else if (value.includes('auto-fill')) { + result.warn('auto-fill value is not supported by IE', { + node: decl, + word: 'auto-fill' + }) + return undefined + } else if (prop.startsWith('grid-template') && value.includes('[')) { + result.warn( + 'Autoprefixer currently does not support line names. ' + + 'Try using grid-template-areas instead.', + { node: decl, word: '[' } + ) + } + } + if (value.includes('radial-gradient')) { + if (OLD_RADIAL.test(decl.value)) { + result.warn( + 'Gradient has outdated direction syntax. ' + + 'New syntax is like `closest-side at 0 0` ' + + 'instead of `0 0, closest-side`.', + { node: decl } + ) + } else { + let ast = parser(value) + + for (let i of ast.nodes) { + if (i.type === 'function' && i.value === 'radial-gradient') { + for (let word of i.nodes) { + if (word.type === 'word') { + if (word.value === 'cover') { + result.warn( + 'Gradient has outdated direction syntax. ' + + 'Replace `cover` to `farthest-corner`.', + { node: decl } + ) + } else if (word.value === 'contain') { + result.warn( + 'Gradient has outdated direction syntax. ' + + 'Replace `contain` to `closest-side`.', + { node: decl } + ) + } + } + } + } + } + } + } + if (value.includes('linear-gradient')) { + if (OLD_LINEAR.test(value)) { + result.warn( + 'Gradient has outdated direction syntax. ' + + 'New syntax is like `to left` instead of `right`.', + { node: decl } + ) + } + } + } + + if (SIZES.includes(decl.prop)) { + if (!decl.value.includes('-fill-available')) { + if (decl.value.includes('fill-available')) { + result.warn( + 'Replace fill-available to stretch, ' + + 'because spec had been changed', + { node: decl } + ) + } else if (decl.value.includes('fill')) { + let ast = parser(value) + if (ast.nodes.some(i => i.type === 'word' && i.value === 'fill')) { + result.warn( + 'Replace fill to stretch, because spec had been changed', + { node: decl } + ) + } + } + } + } + + let prefixer + + if (decl.prop === 'transition' || decl.prop === 'transition-property') { + // Transition + return this.prefixes.transition.add(decl, result) + } else if (decl.prop === 'align-self') { + // align-self flexbox or grid + let display = this.displayType(decl) + if (display !== 'grid' && this.prefixes.options.flexbox !== false) { + prefixer = this.prefixes.add['align-self'] + if (prefixer && prefixer.prefixes) { + prefixer.process(decl) + } + } + if (this.gridStatus(decl, result) !== false) { + prefixer = this.prefixes.add['grid-row-align'] + if (prefixer && prefixer.prefixes) { + return prefixer.process(decl, result) + } + } + } else if (decl.prop === 'justify-self') { + // justify-self flexbox or grid + if (this.gridStatus(decl, result) !== false) { + prefixer = this.prefixes.add['grid-column-align'] + if (prefixer && prefixer.prefixes) { + return prefixer.process(decl, result) + } + } + } else if (decl.prop === 'place-self') { + prefixer = this.prefixes.add['place-self'] + if ( + prefixer && + prefixer.prefixes && + this.gridStatus(decl, result) !== false + ) { + return prefixer.process(decl, result) + } + } else { + // Properties + prefixer = this.prefixes.add[decl.prop] + if (prefixer && prefixer.prefixes) { + return prefixer.process(decl, result) + } + } + + return undefined + }) + + // Insert grid-area prefixes. We need to be able to store the different + // rules as a data and hack API is not enough for this + if (this.gridStatus(css, result)) { + insertAreas(css, this.disabled) + } + + // Values + return css.walkDecls(decl => { + if (this.disabledValue(decl, result)) return + + let unprefixed = this.prefixes.unprefixed(decl.prop) + let list = this.prefixes.values('add', unprefixed) + if (Array.isArray(list)) { + for (let value of list) { + if (value.process) value.process(decl, result) + } + } + Value.save(this.prefixes, decl) + }) + } + + /** + * Remove unnecessary pefixes + */ + remove(css, result) { + // At-rules + let resolution = this.prefixes.remove['@resolution'] + + css.walkAtRules((rule, i) => { + if (this.prefixes.remove[`@${rule.name}`]) { + if (!this.disabled(rule, result)) { + rule.parent.removeChild(i) + } + } else if ( + rule.name === 'media' && + rule.params.includes('-resolution') && + resolution + ) { + resolution.clean(rule) + } + }) + + // Selectors + for (let checker of this.prefixes.remove.selectors) { + css.walkRules((rule, i) => { + if (checker.check(rule)) { + if (!this.disabled(rule, result)) { + rule.parent.removeChild(i) + } + } + }) + } + + return css.walkDecls((decl, i) => { + if (this.disabled(decl, result)) return + + let rule = decl.parent + let unprefixed = this.prefixes.unprefixed(decl.prop) + + // Transition + if (decl.prop === 'transition' || decl.prop === 'transition-property') { + this.prefixes.transition.remove(decl) + } + + // Properties + if ( + this.prefixes.remove[decl.prop] && + this.prefixes.remove[decl.prop].remove + ) { + let notHack = this.prefixes.group(decl).down(other => { + return this.prefixes.normalize(other.prop) === unprefixed + }) + + if (unprefixed === 'flex-flow') { + notHack = true + } + + if (decl.prop === '-webkit-box-orient') { + let hacks = { 'flex-direction': true, 'flex-flow': true } + if (!decl.parent.some(j => hacks[j.prop])) return + } + + if (notHack && !this.withHackValue(decl)) { + if (decl.raw('before').includes('\n')) { + this.reduceSpaces(decl) + } + rule.removeChild(i) + return + } + } + + // Values + for (let checker of this.prefixes.values('remove', unprefixed)) { + if (!checker.check) continue + if (!checker.check(decl.value)) continue + + unprefixed = checker.unprefixed + let notHack = this.prefixes.group(decl).down(other => { + return other.value.includes(unprefixed) + }) + + if (notHack) { + rule.removeChild(i) + return + } + } + }) + } + + /** + * Some rare old values, which is not in standard + */ + withHackValue(decl) { + return decl.prop === '-webkit-background-clip' && decl.value === 'text' + } + + /** + * Check for grid/flexbox options. + */ + disabledValue(node, result) { + if (this.gridStatus(node, result) === false && node.type === 'decl') { + if (node.prop === 'display' && node.value.includes('grid')) { + return true + } + } + if (this.prefixes.options.flexbox === false && node.type === 'decl') { + if (node.prop === 'display' && node.value.includes('flex')) { + return true + } + } + if (node.type === 'decl' && node.prop === 'content') { + return true + } + + return this.disabled(node, result) + } + + /** + * Check for grid/flexbox options. + */ + disabledDecl(node, result) { + if (this.gridStatus(node, result) === false && node.type === 'decl') { + if (node.prop.includes('grid') || node.prop === 'justify-items') { + return true + } + } + if (this.prefixes.options.flexbox === false && node.type === 'decl') { + let other = ['order', 'justify-content', 'align-items', 'align-content'] + if (node.prop.includes('flex') || other.includes(node.prop)) { + return true + } + } + + return this.disabled(node, result) + } + + /** + * Check for control comment and global options + */ + disabled(node, result) { + if (!node) return false + + if (node._autoprefixerDisabled !== undefined) { + return node._autoprefixerDisabled + } + + if (node.parent) { + let p = node.prev() + if (p && p.type === 'comment' && IGNORE_NEXT.test(p.text)) { + node._autoprefixerDisabled = true + node._autoprefixerSelfDisabled = true + return true + } + } + + let value = null + if (node.nodes) { + let status + node.each(i => { + if (i.type !== 'comment') return + if (/(!\s*)?autoprefixer:\s*(off|on)/i.test(i.text)) { + if (typeof status !== 'undefined') { + result.warn( + 'Second Autoprefixer control comment ' + + 'was ignored. Autoprefixer applies control ' + + 'comment to whole block, not to next rules.', + { node: i } + ) + } else { + status = /on/i.test(i.text) + } + } + }) + + if (status !== undefined) { + value = !status + } + } + if (!node.nodes || value === null) { + if (node.parent) { + let isParentDisabled = this.disabled(node.parent, result) + if (node.parent._autoprefixerSelfDisabled === true) { + value = false + } else { + value = isParentDisabled + } + } else { + value = false + } + } + node._autoprefixerDisabled = value + return value + } + + /** + * Normalize spaces in cascade declaration group + */ + reduceSpaces(decl) { + let stop = false + this.prefixes.group(decl).up(() => { + stop = true + return true + }) + if (stop) { + return + } + + let parts = decl.raw('before').split('\n') + let prevMin = parts[parts.length - 1].length + let diff = false + + this.prefixes.group(decl).down(other => { + parts = other.raw('before').split('\n') + let last = parts.length - 1 + + if (parts[last].length > prevMin) { + if (diff === false) { + diff = parts[last].length - prevMin + } + + parts[last] = parts[last].slice(0, -diff) + other.raws.before = parts.join('\n') + } + }) + } + + /** + * Is it flebox or grid rule + */ + displayType(decl) { + for (let i of decl.parent.nodes) { + if (i.prop !== 'display') { + continue + } + + if (i.value.includes('flex')) { + return 'flex' + } + + if (i.value.includes('grid')) { + return 'grid' + } + } + + return false + } + + /** + * Set grid option via control comment + */ + gridStatus(node, result) { + if (!node) return false + + if (node._autoprefixerGridStatus !== undefined) { + return node._autoprefixerGridStatus + } + + let value = null + if (node.nodes) { + let status + node.each(i => { + if (i.type !== 'comment') return + if (GRID_REGEX.test(i.text)) { + let hasAutoplace = /:\s*autoplace/i.test(i.text) + let noAutoplace = /no-autoplace/i.test(i.text) + if (typeof status !== 'undefined') { + result.warn( + 'Second Autoprefixer grid control comment was ' + + 'ignored. Autoprefixer applies control comments to the whole ' + + 'block, not to the next rules.', + { node: i } + ) + } else if (hasAutoplace) { + status = 'autoplace' + } else if (noAutoplace) { + status = true + } else { + status = /on/i.test(i.text) + } + } + }) + + if (status !== undefined) { + value = status + } + } + + if (node.type === 'atrule' && node.name === 'supports') { + let params = node.params + if (params.includes('grid') && params.includes('auto')) { + value = false + } + } + + if (!node.nodes || value === null) { + if (node.parent) { + let isParentGrid = this.gridStatus(node.parent, result) + if (node.parent._autoprefixerSelfDisabled === true) { + value = false + } else { + value = isParentGrid + } + } else if (typeof this.prefixes.options.grid !== 'undefined') { + value = this.prefixes.options.grid + } else if (typeof process.env.AUTOPREFIXER_GRID !== 'undefined') { + if (process.env.AUTOPREFIXER_GRID === 'autoplace') { + value = 'autoplace' + } else { + value = true + } + } else { + value = false + } + } + + node._autoprefixerGridStatus = value + return value + } +} + +module.exports = Processor diff --git a/node_modules/autoprefixer/lib/resolution.js b/node_modules/autoprefixer/lib/resolution.js new file mode 100644 index 0000000..ee04d6d --- /dev/null +++ b/node_modules/autoprefixer/lib/resolution.js @@ -0,0 +1,97 @@ +let FractionJs = require('fraction.js') + +let Prefixer = require('./prefixer') +let utils = require('./utils') + +const REGEXP = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi +const SPLIT = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i + +class Resolution extends Prefixer { + /** + * Return prefixed query name + */ + prefixName(prefix, name) { + if (prefix === '-moz-') { + return name + '--moz-device-pixel-ratio' + } else { + return prefix + name + '-device-pixel-ratio' + } + } + + /** + * Return prefixed query + */ + prefixQuery(prefix, name, colon, value, units) { + value = new FractionJs(value) + + // 1dpcm = 2.54dpi + // 1dppx = 96dpi + if (units === 'dpi') { + value = value.div(96) + } else if (units === 'dpcm') { + value = value.mul(2.54).div(96) + } + value = value.simplify() + + if (prefix === '-o-') { + value = value.n + '/' + value.d + } + return this.prefixName(prefix, name) + colon + value + } + + /** + * Remove prefixed queries + */ + clean(rule) { + if (!this.bad) { + this.bad = [] + for (let prefix of this.prefixes) { + this.bad.push(this.prefixName(prefix, 'min')) + this.bad.push(this.prefixName(prefix, 'max')) + } + } + + rule.params = utils.editList(rule.params, queries => { + return queries.filter(query => this.bad.every(i => !query.includes(i))) + }) + } + + /** + * Add prefixed queries + */ + process(rule) { + let parent = this.parentPrefix(rule) + let prefixes = parent ? [parent] : this.prefixes + + rule.params = utils.editList(rule.params, (origin, prefixed) => { + for (let query of origin) { + if ( + !query.includes('min-resolution') && + !query.includes('max-resolution') + ) { + prefixed.push(query) + continue + } + + for (let prefix of prefixes) { + let processed = query.replace(REGEXP, str => { + let parts = str.match(SPLIT) + return this.prefixQuery( + prefix, + parts[1], + parts[2], + parts[3], + parts[4] + ) + }) + prefixed.push(processed) + } + prefixed.push(query) + } + + return utils.uniq(prefixed) + }) + } +} + +module.exports = Resolution diff --git a/node_modules/autoprefixer/lib/selector.js b/node_modules/autoprefixer/lib/selector.js new file mode 100644 index 0000000..2780b6b --- /dev/null +++ b/node_modules/autoprefixer/lib/selector.js @@ -0,0 +1,150 @@ +let { list } = require('postcss') + +let OldSelector = require('./old-selector') +let Prefixer = require('./prefixer') +let Browsers = require('./browsers') +let utils = require('./utils') + +class Selector extends Prefixer { + constructor(name, prefixes, all) { + super(name, prefixes, all) + this.regexpCache = new Map() + } + + /** + * Is rule selectors need to be prefixed + */ + check(rule) { + if (rule.selector.includes(this.name)) { + return !!rule.selector.match(this.regexp()) + } + + return false + } + + /** + * Return prefixed version of selector + */ + prefixed(prefix) { + return this.name.replace(/^(\W*)/, `$1${prefix}`) + } + + /** + * Lazy loadRegExp for name + */ + regexp(prefix) { + if (!this.regexpCache.has(prefix)) { + let name = prefix ? this.prefixed(prefix) : this.name + this.regexpCache.set( + prefix, + new RegExp(`(^|[^:"'=])${utils.escapeRegexp(name)}`, 'gi') + ) + } + + return this.regexpCache.get(prefix) + } + + /** + * All possible prefixes + */ + possible() { + return Browsers.prefixes() + } + + /** + * Return all possible selector prefixes + */ + prefixeds(rule) { + if (rule._autoprefixerPrefixeds) { + if (rule._autoprefixerPrefixeds[this.name]) { + return rule._autoprefixerPrefixeds + } + } else { + rule._autoprefixerPrefixeds = {} + } + + let prefixeds = {} + if (rule.selector.includes(',')) { + let ruleParts = list.comma(rule.selector) + let toProcess = ruleParts.filter(el => el.includes(this.name)) + + for (let prefix of this.possible()) { + prefixeds[prefix] = toProcess + .map(el => this.replace(el, prefix)) + .join(', ') + } + } else { + for (let prefix of this.possible()) { + prefixeds[prefix] = this.replace(rule.selector, prefix) + } + } + + rule._autoprefixerPrefixeds[this.name] = prefixeds + return rule._autoprefixerPrefixeds + } + + /** + * Is rule already prefixed before + */ + already(rule, prefixeds, prefix) { + let index = rule.parent.index(rule) - 1 + + while (index >= 0) { + let before = rule.parent.nodes[index] + + if (before.type !== 'rule') { + return false + } + + let some = false + for (let key in prefixeds[this.name]) { + let prefixed = prefixeds[this.name][key] + if (before.selector === prefixed) { + if (prefix === key) { + return true + } else { + some = true + break + } + } + } + if (!some) { + return false + } + + index -= 1 + } + + return false + } + + /** + * Replace selectors by prefixed one + */ + replace(selector, prefix) { + return selector.replace(this.regexp(), `$1${this.prefixed(prefix)}`) + } + + /** + * Clone and add prefixes for at-rule + */ + add(rule, prefix) { + let prefixeds = this.prefixeds(rule) + + if (this.already(rule, prefixeds, prefix)) { + return + } + + let cloned = this.clone(rule, { selector: prefixeds[this.name][prefix] }) + rule.parent.insertBefore(rule, cloned) + } + + /** + * Return function to fast find prefixed selector + */ + old(prefix) { + return new OldSelector(this, prefix) + } +} + +module.exports = Selector diff --git a/node_modules/autoprefixer/lib/supports.js b/node_modules/autoprefixer/lib/supports.js new file mode 100644 index 0000000..7d74c5a --- /dev/null +++ b/node_modules/autoprefixer/lib/supports.js @@ -0,0 +1,302 @@ +let featureQueries = require('caniuse-lite/data/features/css-featurequeries.js') +let feature = require('caniuse-lite/dist/unpacker/feature') +let { parse } = require('postcss') + +let Browsers = require('./browsers') +let brackets = require('./brackets') +let Value = require('./value') +let utils = require('./utils') + +let data = feature(featureQueries) + +let supported = [] +for (let browser in data.stats) { + let versions = data.stats[browser] + for (let version in versions) { + let support = versions[version] + if (/y/.test(support)) { + supported.push(browser + ' ' + version) + } + } +} + +class Supports { + constructor(Prefixes, all) { + this.Prefixes = Prefixes + this.all = all + } + + /** + * Return prefixer only with @supports supported browsers + */ + prefixer() { + if (this.prefixerCache) { + return this.prefixerCache + } + + let filtered = this.all.browsers.selected.filter(i => { + return supported.includes(i) + }) + + let browsers = new Browsers( + this.all.browsers.data, + filtered, + this.all.options + ) + this.prefixerCache = new this.Prefixes( + this.all.data, + browsers, + this.all.options + ) + return this.prefixerCache + } + + /** + * Parse string into declaration property and value + */ + parse(str) { + let parts = str.split(':') + let prop = parts[0] + let value = parts[1] + if (!value) value = '' + return [prop.trim(), value.trim()] + } + + /** + * Create virtual rule to process it by prefixer + */ + virtual(str) { + let [prop, value] = this.parse(str) + let rule = parse('a{}').first + rule.append({ prop, value, raws: { before: '' } }) + return rule + } + + /** + * Return array of Declaration with all necessary prefixes + */ + prefixed(str) { + let rule = this.virtual(str) + if (this.disabled(rule.first)) { + return rule.nodes + } + + let result = { warn: () => null } + + let prefixer = this.prefixer().add[rule.first.prop] + prefixer && prefixer.process && prefixer.process(rule.first, result) + + for (let decl of rule.nodes) { + for (let value of this.prefixer().values('add', rule.first.prop)) { + value.process(decl) + } + Value.save(this.all, decl) + } + + return rule.nodes + } + + /** + * Return true if brackets node is "not" word + */ + isNot(node) { + return typeof node === 'string' && /not\s*/i.test(node) + } + + /** + * Return true if brackets node is "or" word + */ + isOr(node) { + return typeof node === 'string' && /\s*or\s*/i.test(node) + } + + /** + * Return true if brackets node is (prop: value) + */ + isProp(node) { + return ( + typeof node === 'object' && + node.length === 1 && + typeof node[0] === 'string' + ) + } + + /** + * Return true if prefixed property has no unprefixed + */ + isHack(all, unprefixed) { + let check = new RegExp(`(\\(|\\s)${utils.escapeRegexp(unprefixed)}:`) + return !check.test(all) + } + + /** + * Return true if we need to remove node + */ + toRemove(str, all) { + let [prop, value] = this.parse(str) + let unprefixed = this.all.unprefixed(prop) + + let cleaner = this.all.cleaner() + + if ( + cleaner.remove[prop] && + cleaner.remove[prop].remove && + !this.isHack(all, unprefixed) + ) { + return true + } + + for (let checker of cleaner.values('remove', unprefixed)) { + if (checker.check(value)) { + return true + } + } + + return false + } + + /** + * Remove all unnecessary prefixes + */ + remove(nodes, all) { + let i = 0 + while (i < nodes.length) { + if ( + !this.isNot(nodes[i - 1]) && + this.isProp(nodes[i]) && + this.isOr(nodes[i + 1]) + ) { + if (this.toRemove(nodes[i][0], all)) { + nodes.splice(i, 2) + continue + } + + i += 2 + continue + } + + if (typeof nodes[i] === 'object') { + nodes[i] = this.remove(nodes[i], all) + } + + i += 1 + } + return nodes + } + + /** + * Clean brackets with one child + */ + cleanBrackets(nodes) { + return nodes.map(i => { + if (typeof i !== 'object') { + return i + } + + if (i.length === 1 && typeof i[0] === 'object') { + return this.cleanBrackets(i[0]) + } + + return this.cleanBrackets(i) + }) + } + + /** + * Add " or " between properties and convert it to brackets format + */ + convert(progress) { + let result = [''] + for (let i of progress) { + result.push([`${i.prop}: ${i.value}`]) + result.push(' or ') + } + result[result.length - 1] = '' + return result + } + + /** + * Compress value functions into a string nodes + */ + normalize(nodes) { + if (typeof nodes !== 'object') { + return nodes + } + + nodes = nodes.filter(i => i !== '') + + if (typeof nodes[0] === 'string') { + let firstNode = nodes[0].trim() + + if ( + firstNode.includes(':') || + firstNode === 'selector' || + firstNode === 'not selector' + ) { + return [brackets.stringify(nodes)] + } + } + return nodes.map(i => this.normalize(i)) + } + + /** + * Add prefixes + */ + add(nodes, all) { + return nodes.map(i => { + if (this.isProp(i)) { + let prefixed = this.prefixed(i[0]) + if (prefixed.length > 1) { + return this.convert(prefixed) + } + + return i + } + + if (typeof i === 'object') { + return this.add(i, all) + } + + return i + }) + } + + /** + * Add prefixed declaration + */ + process(rule) { + let ast = brackets.parse(rule.params) + ast = this.normalize(ast) + ast = this.remove(ast, rule.params) + ast = this.add(ast, rule.params) + ast = this.cleanBrackets(ast) + rule.params = brackets.stringify(ast) + } + + /** + * Check global options + */ + disabled(node) { + if (!this.all.options.grid) { + if (node.prop === 'display' && node.value.includes('grid')) { + return true + } + if (node.prop.includes('grid') || node.prop === 'justify-items') { + return true + } + } + + if (this.all.options.flexbox === false) { + if (node.prop === 'display' && node.value.includes('flex')) { + return true + } + let other = ['order', 'justify-content', 'align-items', 'align-content'] + if (node.prop.includes('flex') || other.includes(node.prop)) { + return true + } + } + + return false + } +} + +module.exports = Supports diff --git a/node_modules/autoprefixer/lib/transition.js b/node_modules/autoprefixer/lib/transition.js new file mode 100644 index 0000000..9df9e5d --- /dev/null +++ b/node_modules/autoprefixer/lib/transition.js @@ -0,0 +1,329 @@ +let { list } = require('postcss') +let parser = require('postcss-value-parser') + +let Browsers = require('./browsers') +let vendor = require('./vendor') + +class Transition { + constructor(prefixes) { + this.props = ['transition', 'transition-property'] + this.prefixes = prefixes + } + + /** + * Process transition and add prefixes for all necessary properties + */ + add(decl, result) { + let prefix, prop + let add = this.prefixes.add[decl.prop] + let vendorPrefixes = this.ruleVendorPrefixes(decl) + let declPrefixes = vendorPrefixes || (add && add.prefixes) || [] + + let params = this.parse(decl.value) + let names = params.map(i => this.findProp(i)) + let added = [] + + if (names.some(i => i[0] === '-')) { + return + } + + for (let param of params) { + prop = this.findProp(param) + if (prop[0] === '-') continue + + let prefixer = this.prefixes.add[prop] + if (!prefixer || !prefixer.prefixes) continue + + for (prefix of prefixer.prefixes) { + if (vendorPrefixes && !vendorPrefixes.some(p => prefix.includes(p))) { + continue + } + + let prefixed = this.prefixes.prefixed(prop, prefix) + if (prefixed !== '-ms-transform' && !names.includes(prefixed)) { + if (!this.disabled(prop, prefix)) { + added.push(this.clone(prop, prefixed, param)) + } + } + } + } + + params = params.concat(added) + let value = this.stringify(params) + + let webkitClean = this.stringify( + this.cleanFromUnprefixed(params, '-webkit-') + ) + if (declPrefixes.includes('-webkit-')) { + this.cloneBefore(decl, `-webkit-${decl.prop}`, webkitClean) + } + this.cloneBefore(decl, decl.prop, webkitClean) + if (declPrefixes.includes('-o-')) { + let operaClean = this.stringify(this.cleanFromUnprefixed(params, '-o-')) + this.cloneBefore(decl, `-o-${decl.prop}`, operaClean) + } + + for (prefix of declPrefixes) { + if (prefix !== '-webkit-' && prefix !== '-o-') { + let prefixValue = this.stringify( + this.cleanOtherPrefixes(params, prefix) + ) + this.cloneBefore(decl, prefix + decl.prop, prefixValue) + } + } + + if (value !== decl.value && !this.already(decl, decl.prop, value)) { + this.checkForWarning(result, decl) + decl.cloneBefore() + decl.value = value + } + } + + /** + * Find property name + */ + findProp(param) { + let prop = param[0].value + if (/^\d/.test(prop)) { + for (let [i, token] of param.entries()) { + if (i !== 0 && token.type === 'word') { + return token.value + } + } + } + return prop + } + + /** + * Does we already have this declaration + */ + already(decl, prop, value) { + return decl.parent.some(i => i.prop === prop && i.value === value) + } + + /** + * Add declaration if it is not exist + */ + cloneBefore(decl, prop, value) { + if (!this.already(decl, prop, value)) { + decl.cloneBefore({ prop, value }) + } + } + + /** + * Show transition-property warning + */ + checkForWarning(result, decl) { + if (decl.prop !== 'transition-property') { + return + } + + let isPrefixed = false + let hasAssociatedProp = false + + decl.parent.each(i => { + if (i.type !== 'decl') { + return undefined + } + if (i.prop.indexOf('transition-') !== 0) { + return undefined + } + let values = list.comma(i.value) + // check if current Rule's transition-property comma separated value list needs prefixes + if (i.prop === 'transition-property') { + values.forEach(value => { + let lookup = this.prefixes.add[value] + if (lookup && lookup.prefixes && lookup.prefixes.length > 0) { + isPrefixed = true + } + }) + return undefined + } + // check if another transition-* prop in current Rule has comma separated value list + hasAssociatedProp = hasAssociatedProp || values.length > 1 + return false + }) + + if (isPrefixed && hasAssociatedProp) { + decl.warn( + result, + 'Replace transition-property to transition, ' + + 'because Autoprefixer could not support ' + + 'any cases of transition-property ' + + 'and other transition-*' + ) + } + } + + /** + * Process transition and remove all unnecessary properties + */ + remove(decl) { + let params = this.parse(decl.value) + params = params.filter(i => { + let prop = this.prefixes.remove[this.findProp(i)] + return !prop || !prop.remove + }) + let value = this.stringify(params) + + if (decl.value === value) { + return + } + + if (params.length === 0) { + decl.remove() + return + } + + let double = decl.parent.some(i => { + return i.prop === decl.prop && i.value === value + }) + let smaller = decl.parent.some(i => { + return i !== decl && i.prop === decl.prop && i.value.length > value.length + }) + + if (double || smaller) { + decl.remove() + return + } + + decl.value = value + } + + /** + * Parse properties list to array + */ + parse(value) { + let ast = parser(value) + let result = [] + let param = [] + for (let node of ast.nodes) { + param.push(node) + if (node.type === 'div' && node.value === ',') { + result.push(param) + param = [] + } + } + result.push(param) + return result.filter(i => i.length > 0) + } + + /** + * Return properties string from array + */ + stringify(params) { + if (params.length === 0) { + return '' + } + let nodes = [] + for (let param of params) { + if (param[param.length - 1].type !== 'div') { + param.push(this.div(params)) + } + nodes = nodes.concat(param) + } + if (nodes[0].type === 'div') { + nodes = nodes.slice(1) + } + if (nodes[nodes.length - 1].type === 'div') { + nodes = nodes.slice(0, +-2 + 1 || undefined) + } + return parser.stringify({ nodes }) + } + + /** + * Return new param array with different name + */ + clone(origin, name, param) { + let result = [] + let changed = false + for (let i of param) { + if (!changed && i.type === 'word' && i.value === origin) { + result.push({ type: 'word', value: name }) + changed = true + } else { + result.push(i) + } + } + return result + } + + /** + * Find or create separator + */ + div(params) { + for (let param of params) { + for (let node of param) { + if (node.type === 'div' && node.value === ',') { + return node + } + } + } + return { type: 'div', value: ',', after: ' ' } + } + + cleanOtherPrefixes(params, prefix) { + return params.filter(param => { + let current = vendor.prefix(this.findProp(param)) + return current === '' || current === prefix + }) + } + + /** + * Remove all non-webkit prefixes and unprefixed params if we have prefixed + */ + cleanFromUnprefixed(params, prefix) { + let remove = params + .map(i => this.findProp(i)) + .filter(i => i.slice(0, prefix.length) === prefix) + .map(i => this.prefixes.unprefixed(i)) + + let result = [] + for (let param of params) { + let prop = this.findProp(param) + let p = vendor.prefix(prop) + if (!remove.includes(prop) && (p === prefix || p === '')) { + result.push(param) + } + } + return result + } + + /** + * Check property for disabled by option + */ + disabled(prop, prefix) { + let other = ['order', 'justify-content', 'align-self', 'align-content'] + if (prop.includes('flex') || other.includes(prop)) { + if (this.prefixes.options.flexbox === false) { + return true + } + + if (this.prefixes.options.flexbox === 'no-2009') { + return prefix.includes('2009') + } + } + return undefined + } + + /** + * Check if transition prop is inside vendor specific rule + */ + ruleVendorPrefixes(decl) { + let { parent } = decl + + if (parent.type !== 'rule') { + return false + } else if (!parent.selector.includes(':-')) { + return false + } + + let selectors = Browsers.prefixes().filter(s => + parent.selector.includes(':' + s) + ) + + return selectors.length > 0 ? selectors : false + } +} + +module.exports = Transition diff --git a/node_modules/autoprefixer/lib/utils.js b/node_modules/autoprefixer/lib/utils.js new file mode 100644 index 0000000..2309e8e --- /dev/null +++ b/node_modules/autoprefixer/lib/utils.js @@ -0,0 +1,93 @@ +let { list } = require('postcss') + +/** + * Throw special error, to tell beniary, + * that this error is from Autoprefixer. + */ +module.exports.error = function (text) { + let err = new Error(text) + err.autoprefixer = true + throw err +} + +/** + * Return array, that doesn’t contain duplicates. + */ +module.exports.uniq = function (array) { + return [...new Set(array)] +} + +/** + * Return "-webkit-" on "-webkit- old" + */ +module.exports.removeNote = function (string) { + if (!string.includes(' ')) { + return string + } + + return string.split(' ')[0] +} + +/** + * Escape RegExp symbols + */ +module.exports.escapeRegexp = function (string) { + return string.replace(/[$()*+-.?[\\\]^{|}]/g, '\\$&') +} + +/** + * Return regexp to check, that CSS string contain word + */ +module.exports.regexp = function (word, escape = true) { + if (escape) { + word = this.escapeRegexp(word) + } + return new RegExp(`(^|[\\s,(])(${word}($|[\\s(,]))`, 'gi') +} + +/** + * Change comma list + */ +module.exports.editList = function (value, callback) { + let origin = list.comma(value) + let changed = callback(origin, []) + + if (origin === changed) { + return value + } + + let join = value.match(/,\s*/) + join = join ? join[0] : ', ' + return changed.join(join) +} + +/** + * Split the selector into parts. + * It returns 3 level deep array because selectors can be comma + * separated (1), space separated (2), and combined (3) + * @param {String} selector selector string + * @return {Array>} 3 level deep array of split selector + * @see utils.test.js for examples + */ +module.exports.splitSelector = function (selector) { + return list.comma(selector).map(i => { + return list.space(i).map(k => { + return k.split(/(?=\.|#)/g) + }) + }) +} + +/** + * Return true if a given value only contains numbers. + * @param {*} value + * @returns {boolean} + */ +module.exports.isPureNumber = function (value) { + if (typeof value === 'number') { + return true + } + if (typeof value === 'string') { + return /^[0-9]+$/.test(value) + } + return false +} diff --git a/node_modules/autoprefixer/lib/value.js b/node_modules/autoprefixer/lib/value.js new file mode 100644 index 0000000..ef6e632 --- /dev/null +++ b/node_modules/autoprefixer/lib/value.js @@ -0,0 +1,125 @@ +let Prefixer = require('./prefixer') +let OldValue = require('./old-value') +let vendor = require('./vendor') +let utils = require('./utils') + +class Value extends Prefixer { + /** + * Clone decl for each prefixed values + */ + static save(prefixes, decl) { + let prop = decl.prop + let result = [] + + for (let prefix in decl._autoprefixerValues) { + let value = decl._autoprefixerValues[prefix] + + if (value === decl.value) { + continue + } + + let item + let propPrefix = vendor.prefix(prop) + + if (propPrefix === '-pie-') { + continue + } + + if (propPrefix === prefix) { + item = decl.value = value + result.push(item) + continue + } + + let prefixed = prefixes.prefixed(prop, prefix) + let rule = decl.parent + + if (!rule.every(i => i.prop !== prefixed)) { + result.push(item) + continue + } + + let trimmed = value.replace(/\s+/, ' ') + let already = rule.some( + i => i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed + ) + + if (already) { + result.push(item) + continue + } + + let cloned = this.clone(decl, { value }) + item = decl.parent.insertBefore(decl, cloned) + + result.push(item) + } + + return result + } + + /** + * Is declaration need to be prefixed + */ + check(decl) { + let value = decl.value + if (!value.includes(this.name)) { + return false + } + + return !!value.match(this.regexp()) + } + + /** + * Lazy regexp loading + */ + regexp() { + return this.regexpCache || (this.regexpCache = utils.regexp(this.name)) + } + + /** + * Add prefix to values in string + */ + replace(string, prefix) { + return string.replace(this.regexp(), `$1${prefix}$2`) + } + + /** + * Get value with comments if it was not changed + */ + value(decl) { + if (decl.raws.value && decl.raws.value.value === decl.value) { + return decl.raws.value.raw + } else { + return decl.value + } + } + + /** + * Save values with next prefixed token + */ + add(decl, prefix) { + if (!decl._autoprefixerValues) { + decl._autoprefixerValues = {} + } + let value = decl._autoprefixerValues[prefix] || this.value(decl) + + let before + do { + before = value + value = this.replace(value, prefix) + if (value === false) return + } while (value !== before) + + decl._autoprefixerValues[prefix] = value + } + + /** + * Return function to fast find prefixed value + */ + old(prefix) { + return new OldValue(this.name, prefix + this.name) + } +} + +module.exports = Value diff --git a/node_modules/autoprefixer/lib/vendor.js b/node_modules/autoprefixer/lib/vendor.js new file mode 100644 index 0000000..099ffc1 --- /dev/null +++ b/node_modules/autoprefixer/lib/vendor.js @@ -0,0 +1,14 @@ +module.exports = { + prefix(prop) { + let match = prop.match(/^(-\w+-)/) + if (match) { + return match[0] + } + + return '' + }, + + unprefixed(prop) { + return prop.replace(/^-\w+-/, '') + } +} diff --git a/node_modules/autoprefixer/package.json b/node_modules/autoprefixer/package.json new file mode 100644 index 0000000..8dca3a8 --- /dev/null +++ b/node_modules/autoprefixer/package.json @@ -0,0 +1,45 @@ +{ + "name": "autoprefixer", + "version": "10.4.14", + "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "keywords": [ + "autoprefixer", + "css", + "prefix", + "postcss", + "postcss-plugin" + ], + "main": "lib/autoprefixer.js", + "bin": "bin/autoprefixer", + "types": "lib/autoprefixer.d.ts", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "postcss/autoprefixer", + "bugs": { + "url": "https://github.com/postcss/autoprefixer/issues" + }, + "peerDependencies": { + "postcss": "^8.1.0" + }, + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } +} diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json new file mode 100644 index 0000000..4aab383 --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json @@ -0,0 +1,260 @@ +[ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "odp", + "ods", + "odt", + "oga", + "ogg", + "ogv", + "otf", + "ott", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +] diff --git a/node_modules/binary-extensions/binary-extensions.json.d.ts b/node_modules/binary-extensions/binary-extensions.json.d.ts new file mode 100644 index 0000000..94a248c --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json.d.ts @@ -0,0 +1,3 @@ +declare const binaryExtensionsJson: readonly string[]; + +export = binaryExtensionsJson; diff --git a/node_modules/binary-extensions/index.d.ts b/node_modules/binary-extensions/index.d.ts new file mode 100644 index 0000000..f469ac5 --- /dev/null +++ b/node_modules/binary-extensions/index.d.ts @@ -0,0 +1,14 @@ +/** +List of binary file extensions. + +@example +``` +import binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` +*/ +declare const binaryExtensions: readonly string[]; + +export = binaryExtensions; diff --git a/node_modules/binary-extensions/index.js b/node_modules/binary-extensions/index.js new file mode 100644 index 0000000..d46e468 --- /dev/null +++ b/node_modules/binary-extensions/index.js @@ -0,0 +1 @@ +module.exports = require('./binary-extensions.json'); diff --git a/node_modules/binary-extensions/license b/node_modules/binary-extensions/license new file mode 100644 index 0000000..401b1c7 --- /dev/null +++ b/node_modules/binary-extensions/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/binary-extensions/package.json b/node_modules/binary-extensions/package.json new file mode 100644 index 0000000..c4d3641 --- /dev/null +++ b/node_modules/binary-extensions/package.json @@ -0,0 +1,38 @@ +{ + "name": "binary-extensions", + "version": "2.2.0", + "description": "List of binary file extensions", + "license": "MIT", + "repository": "sindresorhus/binary-extensions", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "binary-extensions.json", + "binary-extensions.json.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "json", + "list", + "array" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/binary-extensions/readme.md b/node_modules/binary-extensions/readme.md new file mode 100644 index 0000000..3e25dd8 --- /dev/null +++ b/node_modules/binary-extensions/readme.md @@ -0,0 +1,41 @@ +# binary-extensions + +> List of binary file extensions + +The list is just a [JSON file](binary-extensions.json) and can be used anywhere. + + +## Install + +``` +$ npm install binary-extensions +``` + + +## Usage + +```js +const binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` + + +## Related + +- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file +- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/braces/CHANGELOG.md b/node_modules/braces/CHANGELOG.md new file mode 100644 index 0000000..36f798b --- /dev/null +++ b/node_modules/braces/CHANGELOG.md @@ -0,0 +1,184 @@ +# Release history + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## [3.0.0] - 2018-04-08 + +v3.0 is a complete refactor, resulting in a faster, smaller codebase, with fewer deps, and a more accurate parser and compiler. + +**Breaking Changes** + +- The undocumented `.makeRe` method was removed + +**Non-breaking changes** + +- Caching was removed + +## [2.3.2] - 2018-04-08 + +- start refactoring +- cover sets +- better range handling + +## [2.3.1] - 2018-02-17 + +- Remove unnecessary escape in Regex. (#14) + +## [2.3.0] - 2017-10-19 + +- minor code reorganization +- optimize regex +- expose `maxLength` option + +## [2.2.1] - 2017-05-30 + +- don't condense when braces contain extglobs + +## [2.2.0] - 2017-05-28 + +- ensure word boundaries are preserved +- fixes edge case where extglob characters precede a brace pattern + +## [2.1.1] - 2017-04-27 + +- use snapdragon-node +- handle edge case +- optimizations, lint + +## [2.0.4] - 2017-04-11 + +- pass opts to compiler +- minor optimization in create method +- re-write parser handlers to remove negation regex + +## [2.0.3] - 2016-12-10 + +- use split-string +- clear queue at the end +- adds sequences example +- add unit tests + +## [2.0.2] - 2016-10-21 + +- fix comma handling in nested extglobs + +## [2.0.1] - 2016-10-20 + +- add comments +- more tests, ensure quotes are stripped + +## [2.0.0] - 2016-10-19 + +- don't expand braces inside character classes +- add quantifier pattern + +## [1.8.5] - 2016-05-21 + +- Refactor (#10) + +## [1.8.4] - 2016-04-20 + +- fixes https://github.com/jonschlinkert/micromatch/issues/66 + +## [1.8.0] - 2015-03-18 + +- adds exponent examples, tests +- fixes the first example in https://github.com/jonschlinkert/micromatch/issues/38 + +## [1.6.0] - 2015-01-30 + +- optimizations, `bash` mode: +- improve path escaping + +## [1.5.0] - 2015-01-28 + +- Merge pull request #5 from eush77/lib-files + +## [1.4.0] - 2015-01-24 + +- add extglob tests +- externalize exponent function +- better whitespace handling + +## [1.3.0] - 2015-01-24 + +- make regex patterns explicity + +## [1.1.0] - 2015-01-11 + +- don't create a match group with `makeRe` + +## [1.0.0] - 2014-12-23 + +- Merge commit '97b05f5544f8348736a8efaecf5c32bbe3e2ad6e' +- support empty brace syntax +- better bash coverage +- better support for regex strings + +## [0.1.4] - 2014-11-14 + +- improve recognition of bad args, recognize mismatched argument types +- support escaping +- remove pathname-expansion +- support whitespace in patterns + +## [0.1.0] + +- first commit + +[2.3.2]: https://github.com/micromatch/braces/compare/2.3.1...2.3.2 +[2.3.1]: https://github.com/micromatch/braces/compare/2.3.0...2.3.1 +[2.3.0]: https://github.com/micromatch/braces/compare/2.2.1...2.3.0 +[2.2.1]: https://github.com/micromatch/braces/compare/2.2.0...2.2.1 +[2.2.0]: https://github.com/micromatch/braces/compare/2.1.1...2.2.0 +[2.1.1]: https://github.com/micromatch/braces/compare/2.1.0...2.1.1 +[2.1.0]: https://github.com/micromatch/braces/compare/2.0.4...2.1.0 +[2.0.4]: https://github.com/micromatch/braces/compare/2.0.3...2.0.4 +[2.0.3]: https://github.com/micromatch/braces/compare/2.0.2...2.0.3 +[2.0.2]: https://github.com/micromatch/braces/compare/2.0.1...2.0.2 +[2.0.1]: https://github.com/micromatch/braces/compare/2.0.0...2.0.1 +[2.0.0]: https://github.com/micromatch/braces/compare/1.8.5...2.0.0 +[1.8.5]: https://github.com/micromatch/braces/compare/1.8.4...1.8.5 +[1.8.4]: https://github.com/micromatch/braces/compare/1.8.0...1.8.4 +[1.8.0]: https://github.com/micromatch/braces/compare/1.6.0...1.8.0 +[1.6.0]: https://github.com/micromatch/braces/compare/1.5.0...1.6.0 +[1.5.0]: https://github.com/micromatch/braces/compare/1.4.0...1.5.0 +[1.4.0]: https://github.com/micromatch/braces/compare/1.3.0...1.4.0 +[1.3.0]: https://github.com/micromatch/braces/compare/1.2.0...1.3.0 +[1.2.0]: https://github.com/micromatch/braces/compare/1.1.0...1.2.0 +[1.1.0]: https://github.com/micromatch/braces/compare/1.0.0...1.1.0 +[1.0.0]: https://github.com/micromatch/braces/compare/0.1.4...1.0.0 +[0.1.4]: https://github.com/micromatch/braces/compare/0.1.0...0.1.4 + +[Unreleased]: https://github.com/micromatch/braces/compare/0.1.0...HEAD +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog \ No newline at end of file diff --git a/node_modules/braces/LICENSE b/node_modules/braces/LICENSE new file mode 100644 index 0000000..d32ab44 --- /dev/null +++ b/node_modules/braces/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/braces/README.md b/node_modules/braces/README.md new file mode 100644 index 0000000..cba2f60 --- /dev/null +++ b/node_modules/braces/README.md @@ -0,0 +1,593 @@ +# braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces) + +> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save braces +``` + +## v3.0.0 Released!! + +See the [changelog](CHANGELOG.md) for details. + +## Why use braces? + +Brace patterns make globs more powerful by adding the ability to match specific ranges and sequences of characters. + +* **Accurate** - complete support for the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/) specification (passes all of the Bash braces tests) +* **[fast and performant](#benchmarks)** - Starts fast, runs fast and [scales well](#performance) as patterns increase in complexity. +* **Organized code base** - The parser and compiler are easy to maintain and update when edge cases crop up. +* **Well-tested** - Thousands of test assertions, and passes all of the Bash, minimatch, and [brace-expansion](https://github.com/juliangruber/brace-expansion) unit tests (as of the date this was written). +* **Safer** - You shouldn't have to worry about users defining aggressive or malicious brace patterns that can break your application. Braces takes measures to prevent malicious regex that can be used for DDoS attacks (see [catastrophic backtracking](https://www.regular-expressions.info/catastrophic.html)). +* [Supports lists](#lists) - (aka "sets") `a/{b,c}/d` => `['a/b/d', 'a/c/d']` +* [Supports sequences](#sequences) - (aka "ranges") `{01..03}` => `['01', '02', '03']` +* [Supports steps](#steps) - (aka "increments") `{2..10..2}` => `['2', '4', '6', '8', '10']` +* [Supports escaping](#escaping) - To prevent evaluation of special characters. + +## Usage + +The main export is a function that takes one or more brace `patterns` and `options`. + +```js +const braces = require('braces'); +// braces(patterns[, options]); + +console.log(braces(['{01..05}', '{a..e}'])); +//=> ['(0[1-5])', '([a-e])'] + +console.log(braces(['{01..05}', '{a..e}'], { expand: true })); +//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e'] +``` + +### Brace Expansion vs. Compilation + +By default, brace patterns are compiled into strings that are optimized for creating regular expressions and matching. + +**Compiled** + +```js +console.log(braces('a/{x,y,z}/b')); +//=> ['a/(x|y|z)/b'] +console.log(braces(['a/{01..20}/b', 'a/{1..5}/b'])); +//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ] +``` + +**Expanded** + +Enable brace expansion by setting the `expand` option to true, or by using [braces.expand()](#expand) (returns an array similar to what you'd expect from Bash, or `echo {1..5}`, or [minimatch](https://github.com/isaacs/minimatch)): + +```js +console.log(braces('a/{x,y,z}/b', { expand: true })); +//=> ['a/x/b', 'a/y/b', 'a/z/b'] + +console.log(braces.expand('{01..10}')); +//=> ['01','02','03','04','05','06','07','08','09','10'] +``` + +### Lists + +Expand lists (like Bash "sets"): + +```js +console.log(braces('a/{foo,bar,baz}/*.js')); +//=> ['a/(foo|bar|baz)/*.js'] + +console.log(braces.expand('a/{foo,bar,baz}/*.js')); +//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js'] +``` + +### Sequences + +Expand ranges of characters (like Bash "sequences"): + +```js +console.log(braces.expand('{1..3}')); // ['1', '2', '3'] +console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b'] +console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c'] +console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c'] + +// supports zero-padded ranges +console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b'] +console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b'] +``` + +See [fill-range](https://github.com/jonschlinkert/fill-range) for all available range-expansion options. + +### Steppped ranges + +Steps, or increments, may be used with ranges: + +```js +console.log(braces.expand('{2..10..2}')); +//=> ['2', '4', '6', '8', '10'] + +console.log(braces('{2..10..2}')); +//=> ['(2|4|6|8|10)'] +``` + +When the [.optimize](#optimize) method is used, or [options.optimize](#optionsoptimize) is set to true, sequences are passed to [to-regex-range](https://github.com/jonschlinkert/to-regex-range) for expansion. + +### Nesting + +Brace patterns may be nested. The results of each expanded string are not sorted, and left to right order is preserved. + +**"Expanded" braces** + +```js +console.log(braces.expand('a{b,c,/{x,y}}/e')); +//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e'] + +console.log(braces.expand('a/{x,{1..5},y}/c')); +//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c'] +``` + +**"Optimized" braces** + +```js +console.log(braces('a{b,c,/{x,y}}/e')); +//=> ['a(b|c|/(x|y))/e'] + +console.log(braces('a/{x,{1..5},y}/c')); +//=> ['a/(x|([1-5])|y)/c'] +``` + +### Escaping + +**Escaping braces** + +A brace pattern will not be expanded or evaluted if _either the opening or closing brace is escaped_: + +```js +console.log(braces.expand('a\\{d,c,b}e')); +//=> ['a{d,c,b}e'] + +console.log(braces.expand('a{d,c,b\\}e')); +//=> ['a{d,c,b}e'] +``` + +**Escaping commas** + +Commas inside braces may also be escaped: + +```js +console.log(braces.expand('a{b\\,c}d')); +//=> ['a{b,c}d'] + +console.log(braces.expand('a{d\\,c,b}e')); +//=> ['ad,ce', 'abe'] +``` + +**Single items** + +Following bash conventions, a brace pattern is also not expanded when it contains a single character: + +```js +console.log(braces.expand('a{b}c')); +//=> ['a{b}c'] +``` + +## Options + +### options.maxLength + +**Type**: `Number` + +**Default**: `65,536` + +**Description**: Limit the length of the input string. Useful when the input string is generated or your application allows users to pass a string, et cetera. + +```js +console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error +``` + +### options.expand + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Generate an "expanded" brace pattern (alternatively you can use the `braces.expand()` method, which does the same thing). + +```js +console.log(braces('a/{b,c}/d', { expand: true })); +//=> [ 'a/b/d', 'a/c/d' ] +``` + +### options.nodupes + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Remove duplicates from the returned array. + +### options.rangeLimit + +**Type**: `Number` + +**Default**: `1000` + +**Description**: To prevent malicious patterns from being passed by users, an error is thrown when `braces.expand()` is used or `options.expand` is true and the generated range will exceed the `rangeLimit`. + +You can customize `options.rangeLimit` or set it to `Inifinity` to disable this altogether. + +**Examples** + +```js +// pattern exceeds the "rangeLimit", so it's optimized automatically +console.log(braces.expand('{1..1000}')); +//=> ['([1-9]|[1-9][0-9]{1,2}|1000)'] + +// pattern does not exceed "rangeLimit", so it's NOT optimized +console.log(braces.expand('{1..100}')); +//=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100'] +``` + +### options.transform + +**Type**: `Function` + +**Default**: `undefined` + +**Description**: Customize range expansion. + +**Example: Transforming non-numeric values** + +```js +const alpha = braces.expand('x/{a..e}/y', { + transform(value, index) { + // When non-numeric values are passed, "value" is a character code. + return 'foo/' + String.fromCharCode(value) + '-' + index; + } +}); +console.log(alpha); +//=> [ 'x/foo/a-0/y', 'x/foo/b-1/y', 'x/foo/c-2/y', 'x/foo/d-3/y', 'x/foo/e-4/y' ] +``` + +**Example: Transforming numeric values** + +```js +const numeric = braces.expand('{1..5}', { + transform(value) { + // when numeric values are passed, "value" is a number + return 'foo/' + value * 2; + } +}); +console.log(numeric); +//=> [ 'foo/2', 'foo/4', 'foo/6', 'foo/8', 'foo/10' ] +``` + +### options.quantifiers + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: In regular expressions, quanitifiers can be used to specify how many times a token can be repeated. For example, `a{1,3}` will match the letter `a` one to three times. + +Unfortunately, regex quantifiers happen to share the same syntax as [Bash lists](#lists) + +The `quantifiers` option tells braces to detect when [regex quantifiers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#quantifiers) are defined in the given pattern, and not to try to expand them as lists. + +**Examples** + +```js +const braces = require('braces'); +console.log(braces('a/b{1,3}/{x,y,z}')); +//=> [ 'a/b(1|3)/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', {quantifiers: true})); +//=> [ 'a/b{1,3}/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', {quantifiers: true, expand: true})); +//=> [ 'a/b{1,3}/x', 'a/b{1,3}/y', 'a/b{1,3}/z' ] +``` + +### options.unescape + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Strip backslashes that were used for escaping from the result. + +## What is "brace expansion"? + +Brace expansion is a type of parameter expansion that was made popular by unix shells for generating lists of strings, as well as regex-like matching when used alongside wildcards (globs). + +In addition to "expansion", braces are also used for matching. In other words: + +* [brace expansion](#brace-expansion) is for generating new lists +* [brace matching](#brace-matching) is for filtering existing lists + +
+More about brace expansion (click to expand) + +There are two main types of brace expansion: + +1. **lists**: which are defined using comma-separated values inside curly braces: `{a,b,c}` +2. **sequences**: which are defined using a starting value and an ending value, separated by two dots: `a{1..3}b`. Optionally, a third argument may be passed to define a "step" or increment to use: `a{1..100..10}b`. These are also sometimes referred to as "ranges". + +Here are some example brace patterns to illustrate how they work: + +**Sets** + +``` +{a,b,c} => a b c +{a,b,c}{1,2} => a1 a2 b1 b2 c1 c2 +``` + +**Sequences** + +``` +{1..9} => 1 2 3 4 5 6 7 8 9 +{4..-4} => 4 3 2 1 0 -1 -2 -3 -4 +{1..20..3} => 1 4 7 10 13 16 19 +{a..j} => a b c d e f g h i j +{j..a} => j i h g f e d c b a +{a..z..3} => a d g j m p s v y +``` + +**Combination** + +Sets and sequences can be mixed together or used along with any other strings. + +``` +{a,b,c}{1..3} => a1 a2 a3 b1 b2 b3 c1 c2 c3 +foo/{a,b,c}/bar => foo/a/bar foo/b/bar foo/c/bar +``` + +The fact that braces can be "expanded" from relatively simple patterns makes them ideal for quickly generating test fixtures, file paths, and similar use cases. + +## Brace matching + +In addition to _expansion_, brace patterns are also useful for performing regular-expression-like matching. + +For example, the pattern `foo/{1..3}/bar` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +``` + +But not: + +``` +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Braces can also be combined with [glob patterns](https://github.com/jonschlinkert/micromatch) to perform more advanced wildcard matching. For example, the pattern `*/{1..3}/*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +## Brace matching pitfalls + +Although brace patterns offer a user-friendly way of matching ranges or sets of strings, there are also some major disadvantages and potential risks you should be aware of. + +### tldr + +**"brace bombs"** + +* brace expansion can eat up a huge amount of processing resources +* as brace patterns increase _linearly in size_, the system resources required to expand the pattern increase exponentially +* users can accidentally (or intentially) exhaust your system's resources resulting in the equivalent of a DoS attack (bonus: no programming knowledge is required!) + +For a more detailed explanation with examples, see the [geometric complexity](#geometric-complexity) section. + +### The solution + +Jump to the [performance section](#performance) to see how Braces solves this problem in comparison to other libraries. + +### Geometric complexity + +At minimum, brace patterns with sets limited to two elements have quadradic or `O(n^2)` complexity. But the complexity of the algorithm increases exponentially as the number of sets, _and elements per set_, increases, which is `O(n^c)`. + +For example, the following sets demonstrate quadratic (`O(n^2)`) complexity: + +``` +{1,2}{3,4} => (2X2) => 13 14 23 24 +{1,2}{3,4}{5,6} => (2X2X2) => 135 136 145 146 235 236 245 246 +``` + +But add an element to a set, and we get a n-fold Cartesian product with `O(n^c)` complexity: + +``` +{1,2,3}{4,5,6}{7,8,9} => (3X3X3) => 147 148 149 157 158 159 167 168 169 247 248 + 249 257 258 259 267 268 269 347 348 349 357 + 358 359 367 368 369 +``` + +Now, imagine how this complexity grows given that each element is a n-tuple: + +``` +{1..100}{1..100} => (100X100) => 10,000 elements (38.4 kB) +{1..100}{1..100}{1..100} => (100X100X100) => 1,000,000 elements (5.76 MB) +``` + +Although these examples are clearly contrived, they demonstrate how brace patterns can quickly grow out of control. + +**More information** + +Interested in learning more about brace expansion? + +* [linuxjournal/bash-brace-expansion](http://www.linuxjournal.com/content/bash-brace-expansion) +* [rosettacode/Brace_expansion](https://rosettacode.org/wiki/Brace_expansion) +* [cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) + +
+ +## Performance + +Braces is not only screaming fast, it's also more accurate the other brace expansion libraries. + +### Better algorithms + +Fortunately there is a solution to the ["brace bomb" problem](#brace-matching-pitfalls): _don't expand brace patterns into an array when they're used for matching_. + +Instead, convert the pattern into an optimized regular expression. This is easier said than done, and braces is the only library that does this currently. + +**The proof is in the numbers** + +Minimatch gets exponentially slower as patterns increase in complexity, braces does not. The following results were generated using `braces()` and `minimatch.braceExpand()`, respectively. + +| **Pattern** | **braces** | **[minimatch][]** | +| --- | --- | --- | +| `{1..9007199254740991}`[^1] | `298 B` (5ms 459μs)| N/A (freezes) | +| `{1..1000000000000000}` | `41 B` (1ms 15μs) | N/A (freezes) | +| `{1..100000000000000}` | `40 B` (890μs) | N/A (freezes) | +| `{1..10000000000000}` | `39 B` (2ms 49μs) | N/A (freezes) | +| `{1..1000000000000}` | `38 B` (608μs) | N/A (freezes) | +| `{1..100000000000}` | `37 B` (397μs) | N/A (freezes) | +| `{1..10000000000}` | `35 B` (983μs) | N/A (freezes) | +| `{1..1000000000}` | `34 B` (798μs) | N/A (freezes) | +| `{1..100000000}` | `33 B` (733μs) | N/A (freezes) | +| `{1..10000000}` | `32 B` (5ms 632μs) | `78.89 MB` (16s 388ms 569μs) | +| `{1..1000000}` | `31 B` (1ms 381μs) | `6.89 MB` (1s 496ms 887μs) | +| `{1..100000}` | `30 B` (950μs) | `588.89 kB` (146ms 921μs) | +| `{1..10000}` | `29 B` (1ms 114μs) | `48.89 kB` (14ms 187μs) | +| `{1..1000}` | `28 B` (760μs) | `3.89 kB` (1ms 453μs) | +| `{1..100}` | `22 B` (345μs) | `291 B` (196μs) | +| `{1..10}` | `10 B` (533μs) | `20 B` (37μs) | +| `{1..3}` | `7 B` (190μs) | `5 B` (27μs) | + +### Faster algorithms + +When you need expansion, braces is still much faster. + +_(the following results were generated using `braces.expand()` and `minimatch.braceExpand()`, respectively)_ + +| **Pattern** | **braces** | **[minimatch][]** | +| --- | --- | --- | +| `{1..10000000}` | `78.89 MB` (2s 698ms 642μs) | `78.89 MB` (18s 601ms 974μs) | +| `{1..1000000}` | `6.89 MB` (458ms 576μs) | `6.89 MB` (1s 491ms 621μs) | +| `{1..100000}` | `588.89 kB` (20ms 728μs) | `588.89 kB` (156ms 919μs) | +| `{1..10000}` | `48.89 kB` (2ms 202μs) | `48.89 kB` (13ms 641μs) | +| `{1..1000}` | `3.89 kB` (1ms 796μs) | `3.89 kB` (1ms 958μs) | +| `{1..100}` | `291 B` (424μs) | `291 B` (211μs) | +| `{1..10}` | `20 B` (487μs) | `20 B` (72μs) | +| `{1..3}` | `5 B` (166μs) | `5 B` (27μs) | + +If you'd like to run these comparisons yourself, see [test/support/generate.js](test/support/generate.js). + +## Benchmarks + +### Running benchmarks + +Install dev dependencies: + +```bash +npm i -d && npm benchmark +``` + +### Latest results + +Braces is more accurate, without sacrificing performance. + +```bash +# range (expanded) + braces x 29,040 ops/sec ±3.69% (91 runs sampled)) + minimatch x 4,735 ops/sec ±1.28% (90 runs sampled) + +# range (optimized for regex) + braces x 382,878 ops/sec ±0.56% (94 runs sampled) + minimatch x 1,040 ops/sec ±0.44% (93 runs sampled) + +# nested ranges (expanded) + braces x 19,744 ops/sec ±2.27% (92 runs sampled)) + minimatch x 4,579 ops/sec ±0.50% (93 runs sampled) + +# nested ranges (optimized for regex) + braces x 246,019 ops/sec ±2.02% (93 runs sampled) + minimatch x 1,028 ops/sec ±0.39% (94 runs sampled) + +# set (expanded) + braces x 138,641 ops/sec ±0.53% (95 runs sampled) + minimatch x 219,582 ops/sec ±0.98% (94 runs sampled) + +# set (optimized for regex) + braces x 388,408 ops/sec ±0.41% (95 runs sampled) + minimatch x 44,724 ops/sec ±0.91% (89 runs sampled) + +# nested sets (expanded) + braces x 84,966 ops/sec ±0.48% (94 runs sampled) + minimatch x 140,720 ops/sec ±0.37% (95 runs sampled) + +# nested sets (optimized for regex) + braces x 263,340 ops/sec ±2.06% (92 runs sampled) + minimatch x 28,714 ops/sec ±0.40% (90 runs sampled) +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 197 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [doowb](https://github.com/doowb) | +| 1 | [es128](https://github.com/es128) | +| 1 | [eush77](https://github.com/eush77) | +| 1 | [hemanth](https://github.com/hemanth) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/node_modules/braces/index.js b/node_modules/braces/index.js new file mode 100644 index 0000000..0eee0f5 --- /dev/null +++ b/node_modules/braces/index.js @@ -0,0 +1,170 @@ +'use strict'; + +const stringify = require('./lib/stringify'); +const compile = require('./lib/compile'); +const expand = require('./lib/expand'); +const parse = require('./lib/parse'); + +/** + * Expand the given pattern or create a regex-compatible string. + * + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ + +const braces = (input, options = {}) => { + let output = []; + + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; + +/** + * Parse the given `str` with the given `options`. + * + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public + */ + +braces.parse = (input, options = {}) => parse(input, options); + +/** + * Creates a braces string from an AST, or an AST node. + * + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify(braces.parse(input, options), options); + } + return stringify(input, options); +}; + +/** + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. + * + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + return compile(input, options); +}; + +/** + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. + * + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + + let result = expand(input, options); + + // filter out empty strings if specified + if (options.noempty === true) { + result = result.filter(Boolean); + } + + // filter out duplicates if specified + if (options.nodupes === true) { + result = [...new Set(result)]; + } + + return result; +}; + +/** + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. + * + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } + + return options.expand !== true + ? braces.compile(input, options) + : braces.expand(input, options); +}; + +/** + * Expose "braces" + */ + +module.exports = braces; diff --git a/node_modules/braces/lib/compile.js b/node_modules/braces/lib/compile.js new file mode 100644 index 0000000..3e984a4 --- /dev/null +++ b/node_modules/braces/lib/compile.js @@ -0,0 +1,57 @@ +'use strict'; + +const fill = require('fill-range'); +const utils = require('./utils'); + +const compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; + + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; + } + + if (node.type === 'open') { + return invalid ? (prefix + node.value) : '('; + } + + if (node.type === 'close') { + return invalid ? (prefix + node.value) : ')'; + } + + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); + } + + if (node.value) { + return node.value; + } + + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + let range = fill(...args, { ...options, wrap: false, toRegex: true }); + + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } + return output; + }; + + return walk(ast); +}; + +module.exports = compile; diff --git a/node_modules/braces/lib/constants.js b/node_modules/braces/lib/constants.js new file mode 100644 index 0000000..a937943 --- /dev/null +++ b/node_modules/braces/lib/constants.js @@ -0,0 +1,57 @@ +'use strict'; + +module.exports = { + MAX_LENGTH: 1024 * 64, + + // Digits + CHAR_0: '0', /* 0 */ + CHAR_9: '9', /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', /* A */ + CHAR_LOWERCASE_A: 'a', /* a */ + CHAR_UPPERCASE_Z: 'Z', /* Z */ + CHAR_LOWERCASE_Z: 'z', /* z */ + + CHAR_LEFT_PARENTHESES: '(', /* ( */ + CHAR_RIGHT_PARENTHESES: ')', /* ) */ + + CHAR_ASTERISK: '*', /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', /* & */ + CHAR_AT: '@', /* @ */ + CHAR_BACKSLASH: '\\', /* \ */ + CHAR_BACKTICK: '`', /* ` */ + CHAR_CARRIAGE_RETURN: '\r', /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ + CHAR_COLON: ':', /* : */ + CHAR_COMMA: ',', /* , */ + CHAR_DOLLAR: '$', /* . */ + CHAR_DOT: '.', /* . */ + CHAR_DOUBLE_QUOTE: '"', /* " */ + CHAR_EQUAL: '=', /* = */ + CHAR_EXCLAMATION_MARK: '!', /* ! */ + CHAR_FORM_FEED: '\f', /* \f */ + CHAR_FORWARD_SLASH: '/', /* / */ + CHAR_HASH: '#', /* # */ + CHAR_HYPHEN_MINUS: '-', /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ + CHAR_LEFT_CURLY_BRACE: '{', /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ + CHAR_LINE_FEED: '\n', /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ + CHAR_PERCENT: '%', /* % */ + CHAR_PLUS: '+', /* + */ + CHAR_QUESTION_MARK: '?', /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ + CHAR_SEMICOLON: ';', /* ; */ + CHAR_SINGLE_QUOTE: '\'', /* ' */ + CHAR_SPACE: ' ', /* */ + CHAR_TAB: '\t', /* \t */ + CHAR_UNDERSCORE: '_', /* _ */ + CHAR_VERTICAL_LINE: '|', /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ +}; diff --git a/node_modules/braces/lib/expand.js b/node_modules/braces/lib/expand.js new file mode 100644 index 0000000..376c748 --- /dev/null +++ b/node_modules/braces/lib/expand.js @@ -0,0 +1,113 @@ +'use strict'; + +const fill = require('fill-range'); +const stringify = require('./stringify'); +const utils = require('./utils'); + +const append = (queue = '', stash = '', enclose = false) => { + let result = []; + + queue = [].concat(queue); + stash = [].concat(stash); + + if (!stash.length) return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; + } + + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); + } + } + } + return utils.flatten(result); +}; + +const expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; + + let walk = (node, parent = {}) => { + node.queue = []; + + let p = parent; + let q = parent.queue; + + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } + + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify(node, options))); + return; + } + + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } + + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } + + let range = fill(...args, options); + if (range.length === 0) { + range = stringify(node, options); + } + + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + + let enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } + + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } + + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } + + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } + + if (child.nodes) { + walk(child, node); + } + } + + return queue; + }; + + return utils.flatten(walk(ast)); +}; + +module.exports = expand; diff --git a/node_modules/braces/lib/parse.js b/node_modules/braces/lib/parse.js new file mode 100644 index 0000000..145ea26 --- /dev/null +++ b/node_modules/braces/lib/parse.js @@ -0,0 +1,333 @@ +'use strict'; + +const stringify = require('./stringify'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + CHAR_BACKSLASH, /* \ */ + CHAR_BACKTICK, /* ` */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET, /* ] */ + CHAR_DOUBLE_QUOTE, /* " */ + CHAR_SINGLE_QUOTE, /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = require('./constants'); + +/** + * parse + */ + +const parse = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + let opts = options || {}; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + + let ast = { type: 'root', input, nodes: [] }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + let memo = {}; + + /** + * Helpers + */ + + const advance = () => input[index++]; + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } + + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } + + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + + push({ type: 'bos' }); + + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + + /** + * Invalid chars + */ + + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + + /** + * Escaped chars + */ + + if (value === CHAR_BACKSLASH) { + push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); + continue; + } + + /** + * Right square bracket (literal): ']' + */ + + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ type: 'text', value: '\\' + value }); + continue; + } + + /** + * Left square bracket: '[' + */ + + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + + let closed = true; + let next; + + while (index < length && (next = advance())) { + value += next; + + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + + if (brackets === 0) { + break; + } + } + } + + push({ type: 'text', value }); + continue; + } + + /** + * Parentheses + */ + + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ type: 'paren', nodes: [] }); + stack.push(block); + push({ type: 'text', value }); + continue; + } + + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== 'paren') { + push({ type: 'text', value }); + continue; + } + block = stack.pop(); + push({ type: 'text', value }); + block = stack[stack.length - 1]; + continue; + } + + /** + * Quotes: '|"|` + */ + + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; + + if (options.keepQuotes !== true) { + value = ''; + } + + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } + + value += next; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Left curly brace: '{' + */ + + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + + let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + let brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + + block = push(brace); + stack.push(block); + push({ type: 'open', value }); + continue; + } + + /** + * Right curly brace: '}' + */ + + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== 'brace') { + push({ type: 'text', value }); + continue; + } + + let type = 'close'; + block = stack.pop(); + block.close = true; + + push({ type, value }); + depth--; + + block = stack[stack.length - 1]; + continue; + } + + /** + * Comma: ',' + */ + + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { type: 'text', value: stringify(block) }]; + } + + push({ type: 'comma', value }); + block.commas++; + continue; + } + + /** + * Dot: '.' + */ + + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + let siblings = block.nodes; + + if (depth === 0 || siblings.length === 0) { + push({ type: 'text', value }); + continue; + } + + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; + + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } + + block.ranges++; + block.args = []; + continue; + } + + if (prev.type === 'range') { + siblings.pop(); + + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + + push({ type: 'dot', value }); + continue; + } + + /** + * Text + */ + + push({ type: 'text', value }); + } + + // Mark imbalanced braces and brackets as invalid + do { + block = stack.pop(); + + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); + + // get the location of the block on parent.nodes (block's siblings) + let parent = stack[stack.length - 1]; + let index = parent.nodes.indexOf(block); + // replace the (invalid) block with it's nodes + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); + + push({ type: 'eos' }); + return ast; +}; + +module.exports = parse; diff --git a/node_modules/braces/lib/stringify.js b/node_modules/braces/lib/stringify.js new file mode 100644 index 0000000..414b7bc --- /dev/null +++ b/node_modules/braces/lib/stringify.js @@ -0,0 +1,32 @@ +'use strict'; + +const utils = require('./utils'); + +module.exports = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; + + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return '\\' + node.value; + } + return node.value; + } + + if (node.value) { + return node.value; + } + + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } + } + return output; + }; + + return stringify(ast); +}; + diff --git a/node_modules/braces/lib/utils.js b/node_modules/braces/lib/utils.js new file mode 100644 index 0000000..e3551a6 --- /dev/null +++ b/node_modules/braces/lib/utils.js @@ -0,0 +1,112 @@ +'use strict'; + +exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } + return false; +}; + +/** + * Find a node of the given type + */ + +exports.find = (node, type) => node.nodes.find(node => node.type === type); + +/** + * Find a node of the given type + */ + +exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return ((Number(max) - Number(min)) / Number(step)) >= limit; +}; + +/** + * Escape the given node with '\\' before node.value + */ + +exports.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) return; + + if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } +}; + +/** + * Returns true if the given brace node should be enclosed in literal braces + */ + +exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if ((node.commas >> 0 + node.ranges >> 0) === 0) { + node.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a brace node is invalid. + */ + +exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; + if ((block.commas >> 0 + block.ranges >> 0) === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a node is an open or close node + */ + +exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } + return node.open === true || node.close === true; +}; + +/** + * Reduce an array of text nodes. + */ + +exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; +}, []); + +/** + * Flatten an array + */ + +exports.flatten = (...args) => { + const result = []; + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); + } + return result; + }; + flat(args); + return result; +}; diff --git a/node_modules/braces/package.json b/node_modules/braces/package.json new file mode 100644 index 0000000..3f52e34 --- /dev/null +++ b/node_modules/braces/package.json @@ -0,0 +1,77 @@ +{ + "name": "braces", + "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", + "version": "3.0.2", + "homepage": "https://github.com/micromatch/braces", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Elan Shanker (https://github.com/es128)", + "Eugene Sharygin (https://github.com/eush77)", + "hemanth.hm (http://h3manth.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/braces", + "bugs": { + "url": "https://github.com/micromatch/braces/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha", + "benchmark": "node benchmark" + }, + "dependencies": { + "fill-range": "^7.0.1" + }, + "devDependencies": { + "ansi-colors": "^3.2.4", + "bash-path": "^2.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "bash", + "brace", + "braces", + "expand", + "expansion", + "filepath", + "fill", + "fs", + "glob", + "globbing", + "letter", + "match", + "matches", + "matching", + "number", + "numerical", + "path", + "range", + "ranges", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "lint": { + "reflinks": true + }, + "plugins": [ + "gulp-format-md" + ] + } +} diff --git a/node_modules/browserslist/LICENSE b/node_modules/browserslist/LICENSE new file mode 100644 index 0000000..90b6b91 --- /dev/null +++ b/node_modules/browserslist/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2014 Andrey Sitnik and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/browserslist/README.md b/node_modules/browserslist/README.md new file mode 100644 index 0000000..04abebd --- /dev/null +++ b/node_modules/browserslist/README.md @@ -0,0 +1,73 @@ +# Browserslist [![Cult Of Martians][cult-img]][cult] + +Browserslist logo by Anton Popov + +The config to share target browsers and Node.js versions between different +front-end tools. It is used in: + +* [Autoprefixer] +* [Babel] +* [postcss-preset-env] +* [eslint-plugin-compat] +* [stylelint-no-unsupported-browser-features] +* [postcss-normalize] +* [obsolete-webpack-plugin] + +All tools will find target browsers automatically, +when you add the following to `package.json`: + +```json + "browserslist": [ + "defaults and supports es6-module", + "maintained node versions" + ] +``` + +Or in `.browserslistrc` config: + +```yaml +# Browsers that we support + +defaults and supports es6-module +maintained node versions +``` + +Developers set their version lists using queries like `last 2 versions` +to be free from updating versions manually. +Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries. + +You can check how config works at our playground: [`browsersl.ist`](https://browsersl.ist/) + + + browsersl.ist website + + +
+
+
+ + Sponsored by Evil Martians +    + Supported by Cube + +
+ +[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features +[obsolete-webpack-plugin]: https://github.com/ElemeFE/obsolete-webpack-plugin +[eslint-plugin-compat]: https://github.com/amilajack/eslint-plugin-compat +[Browserslist Example]: https://github.com/browserslist/browserslist-example +[postcss-preset-env]: https://github.com/csstools/postcss-plugins/tree/main/plugin-packs/postcss-preset-env +[postcss-normalize]: https://github.com/csstools/postcss-normalize +[`browsersl.ist`]: https://browsersl.ist/ +[`caniuse-lite`]: https://github.com/ben-eb/caniuse-lite +[Autoprefixer]: https://github.com/postcss/autoprefixer +[Can I Use]: https://caniuse.com/ +[Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env +[cult-img]: https://cultofmartians.com/assets/badges/badge.svg +[cult]: https://cultofmartians.com/done.html + +## Docs +Read full docs **[here](https://github.com/browserslist/browserslist#readme)**. diff --git a/node_modules/browserslist/browser.js b/node_modules/browserslist/browser.js new file mode 100644 index 0000000..6828bdb --- /dev/null +++ b/node_modules/browserslist/browser.js @@ -0,0 +1,52 @@ +var BrowserslistError = require('./error') + +function noop() {} + +module.exports = { + loadQueries: function loadQueries() { + throw new BrowserslistError( + 'Sharable configs are not supported in client-side build of Browserslist' + ) + }, + + getStat: function getStat(opts) { + return opts.stats + }, + + loadConfig: function loadConfig(opts) { + if (opts.config) { + throw new BrowserslistError( + 'Browserslist config are not supported in client-side build' + ) + } + }, + + loadCountry: function loadCountry() { + throw new BrowserslistError( + 'Country statistics are not supported ' + + 'in client-side build of Browserslist' + ) + }, + + loadFeature: function loadFeature() { + throw new BrowserslistError( + 'Supports queries are not available in client-side build of Browserslist' + ) + }, + + currentNode: function currentNode(resolve, context) { + return resolve(['maintained node versions'], context)[0] + }, + + parseConfig: noop, + + readConfig: noop, + + findConfig: noop, + + clearCaches: noop, + + oldDataWarning: noop, + + env: {} +} diff --git a/node_modules/browserslist/cli.js b/node_modules/browserslist/cli.js new file mode 100755 index 0000000..c54aa98 --- /dev/null +++ b/node_modules/browserslist/cli.js @@ -0,0 +1,151 @@ +#!/usr/bin/env node + +var updateDb = require('update-browserslist-db') +var fs = require('fs') + +var browserslist = require('./') +var pkg = require('./package.json') + +var args = process.argv.slice(2) + +var USAGE = + 'Usage:\n' + + ' npx browserslist\n' + + ' npx browserslist "QUERIES"\n' + + ' npx browserslist --json "QUERIES"\n' + + ' npx browserslist --config="path/to/browserlist/file"\n' + + ' npx browserslist --coverage "QUERIES"\n' + + ' npx browserslist --coverage=US "QUERIES"\n' + + ' npx browserslist --coverage=US,RU,global "QUERIES"\n' + + ' npx browserslist --env="environment name defined in config"\n' + + ' npx browserslist --stats="path/to/browserlist/stats/file"\n' + + ' npx browserslist --mobile-to-desktop\n' + + ' npx browserslist --ignore-unknown-versions\n' + +function isArg(arg) { + return args.some(function (str) { + return str === arg || str.indexOf(arg + '=') === 0 + }) +} + +function error(msg) { + process.stderr.write('browserslist: ' + msg + '\n') + process.exit(1) +} + +if (isArg('--help') || isArg('-h')) { + process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n') +} else if (isArg('--version') || isArg('-v')) { + process.stdout.write('browserslist ' + pkg.version + '\n') +} else if (isArg('--update-db')) { + /* c8 ignore next 3 */ + updateDb(function (str) { + process.stdout.write(str) + }) +} else { + var mode = 'browsers' + var opts = {} + var queries + var areas + + for (var i = 0; i < args.length; i++) { + if (args[i][0] !== '-') { + queries = args[i].replace(/^["']|["']$/g, '') + continue + } + + var arg = args[i].split('=') + var name = arg[0] + var value = arg[1] + + if (value) value = value.replace(/^["']|["']$/g, '') + + if (name === '--config' || name === '-b') { + opts.config = value + } else if (name === '--env' || name === '-e') { + opts.env = value + } else if (name === '--stats' || name === '-s') { + opts.stats = value + } else if (name === '--coverage' || name === '-c') { + if (mode !== 'json') mode = 'coverage' + if (value) { + areas = value.split(',') + } else { + areas = ['global'] + } + } else if (name === '--json') { + mode = 'json' + } else if (name === '--mobile-to-desktop') { + /* c8 ignore next */ + opts.mobileToDesktop = true + } else if (name === '--ignore-unknown-versions') { + /* c8 ignore next */ + opts.ignoreUnknownVersions = true + } else { + error('Unknown arguments ' + args[i] + '.\n\n' + USAGE) + } + } + + var browsers + try { + browsers = browserslist(queries, opts) + } catch (e) { + if (e.name === 'BrowserslistError') { + error(e.message) + } /* c8 ignore start */ else { + throw e + } /* c8 ignore end */ + } + + var coverage + if (mode === 'browsers') { + browsers.forEach(function (browser) { + process.stdout.write(browser + '\n') + }) + } else if (areas) { + coverage = areas.map(function (area) { + var stats + if (area !== 'global') { + stats = area + } else if (opts.stats) { + stats = JSON.parse(fs.readFileSync(opts.stats)) + } + var result = browserslist.coverage(browsers, stats) + var round = Math.round(result * 100) / 100.0 + + return [area, round] + }) + + if (mode === 'coverage') { + var prefix = 'These browsers account for ' + process.stdout.write(prefix) + coverage.forEach(function (data, index) { + var area = data[0] + var round = data[1] + var end = 'globally' + if (area && area !== 'global') { + end = 'in the ' + area.toUpperCase() + } else if (opts.stats) { + end = 'in custom statistics' + } + + if (index !== 0) { + process.stdout.write(prefix.replace(/./g, ' ')) + } + + process.stdout.write(round + '% of all users ' + end + '\n') + }) + } + } + + if (mode === 'json') { + var data = { browsers: browsers } + if (coverage) { + data.coverage = coverage.reduce(function (object, j) { + object[j[0]] = j[1] + return object + }, {}) + } + process.stdout.write(JSON.stringify(data, null, ' ') + '\n') + } +} diff --git a/node_modules/browserslist/error.d.ts b/node_modules/browserslist/error.d.ts new file mode 100644 index 0000000..12ff921 --- /dev/null +++ b/node_modules/browserslist/error.d.ts @@ -0,0 +1,7 @@ +declare class BrowserslistError extends Error { + constructor(message: any) + name: 'BrowserslistError' + browserslist: true +} + +export = BrowserslistError diff --git a/node_modules/browserslist/error.js b/node_modules/browserslist/error.js new file mode 100644 index 0000000..6e5da7a --- /dev/null +++ b/node_modules/browserslist/error.js @@ -0,0 +1,12 @@ +function BrowserslistError(message) { + this.name = 'BrowserslistError' + this.message = message + this.browserslist = true + if (Error.captureStackTrace) { + Error.captureStackTrace(this, BrowserslistError) + } +} + +BrowserslistError.prototype = Error.prototype + +module.exports = BrowserslistError diff --git a/node_modules/browserslist/index.d.ts b/node_modules/browserslist/index.d.ts new file mode 100644 index 0000000..076590c --- /dev/null +++ b/node_modules/browserslist/index.d.ts @@ -0,0 +1,198 @@ +/** + * Return array of browsers by selection queries. + * + * ```js + * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] + * ``` + * + * @param queries Browser queries. + * @param opts Options. + * @returns Array with browser names in Can I Use. + */ +declare function browserslist( + queries?: string | readonly string[] | null, + opts?: browserslist.Options +): string[] + +declare namespace browserslist { + interface Query { + compose: 'or' | 'and' + type: string + query: string + not?: true + } + + interface Options { + /** + * Path to processed file. It will be used to find config files. + */ + path?: string | false + /** + * Processing environment. It will be used to take right queries + * from config file. + */ + env?: string + /** + * Custom browser usage statistics for "> 1% in my stats" query. + */ + stats?: Stats | string + /** + * Path to config file with queries. + */ + config?: string + /** + * Do not throw on unknown version in direct query. + */ + ignoreUnknownVersions?: boolean + /** + * Throw an error if env is not found. + */ + throwOnMissing?: boolean + /** + * Disable security checks for extend query. + */ + dangerousExtend?: boolean + /** + * Alias mobile browsers to the desktop version when Can I Use + * doesn’t have data about the specified version. + */ + mobileToDesktop?: boolean + } + + type Config = { + defaults: string[] + [section: string]: string[] | undefined + } + + interface Stats { + [browser: string]: { + [version: string]: number + } + } + + /** + * Browser names aliases. + */ + let aliases: { + [alias: string]: string | undefined + } + + /** + * Aliases to work with joined versions like `ios_saf 7.0-7.1`. + */ + let versionAliases: { + [browser: string]: + | { + [version: string]: string | undefined + } + | undefined + } + + /** + * Can I Use only provides a few versions for some browsers (e.g. `and_chr`). + * + * Fallback to a similar browser for unknown versions. + */ + let desktopNames: { + [browser: string]: string | undefined + } + + let data: { + [browser: string]: + | { + name: string + versions: string[] + released: string[] + releaseDate: { + [version: string]: number | undefined | null + } + } + | undefined + } + + let nodeVersions: string[] + + interface Usage { + [version: string]: number + } + + let usage: { + global?: Usage + custom?: Usage | null + [country: string]: Usage | undefined | null + } + + let cache: { + [feature: string]: { + [name: string]: 'y' | 'n' + } + } + + /** + * Default browsers query + */ + let defaults: readonly string[] + + /** + * Which statistics should be used. Country code or custom statistics. + * Pass `"my stats"` to load statistics from `Browserslist` files. + */ + type StatsOptions = string | 'my stats' | Stats | { dataByBrowser: Stats } + + /** + * Return browsers market coverage. + * + * ```js + * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 + * ``` + * + * @param browsers Browsers names in Can I Use. + * @param stats Which statistics should be used. + * @returns Total market coverage for all selected browsers. + */ + function coverage(browsers: readonly string[], stats?: StatsOptions): number + + /** + * Get queries AST to analyze the config content. + * + * @param queries Browser queries. + * @param opts Options. + * @returns An array of the data of each query in the config. + */ + function parse( + queries?: string | readonly string[] | null, + opts?: browserslist.Options + ): Query[] + + function clearCaches(): void + + function parseConfig(string: string): Config + + function readConfig(file: string): Config + + function findConfig(...pathSegments: string[]): Config | undefined + + interface LoadConfigOptions { + config?: string + path?: string + env?: string + } + + function loadConfig(options: LoadConfigOptions): string[] | undefined +} + +declare global { + namespace NodeJS { + interface ProcessEnv { + BROWSERSLIST?: string + BROWSERSLIST_CONFIG?: string + BROWSERSLIST_DANGEROUS_EXTEND?: string + BROWSERSLIST_DISABLE_CACHE?: string + BROWSERSLIST_ENV?: string + BROWSERSLIST_IGNORE_OLD_DATA?: string + BROWSERSLIST_STATS?: string + } + } +} + +export = browserslist diff --git a/node_modules/browserslist/index.js b/node_modules/browserslist/index.js new file mode 100644 index 0000000..c05cf6c --- /dev/null +++ b/node_modules/browserslist/index.js @@ -0,0 +1,1191 @@ +var jsReleases = require('node-releases/data/processed/envs.json') +var agents = require('caniuse-lite/dist/unpacker/agents').agents +var jsEOL = require('node-releases/data/release-schedule/release-schedule.json') +var path = require('path') +var e2c = require('electron-to-chromium/versions') + +var BrowserslistError = require('./error') +var parse = require('./parse') +var env = require('./node') // Will load browser.js in webpack + +var YEAR = 365.259641 * 24 * 60 * 60 * 1000 +var ANDROID_EVERGREEN_FIRST = '37' + +// Helpers + +function isVersionsMatch(versionA, versionB) { + return (versionA + '.').indexOf(versionB + '.') === 0 +} + +function isEolReleased(name) { + var version = name.slice(1) + return browserslist.nodeVersions.some(function (i) { + return isVersionsMatch(i, version) + }) +} + +function normalize(versions) { + return versions.filter(function (version) { + return typeof version === 'string' + }) +} + +function normalizeElectron(version) { + var versionToUse = version + if (version.split('.').length === 3) { + versionToUse = version.split('.').slice(0, -1).join('.') + } + return versionToUse +} + +function nameMapper(name) { + return function mapName(version) { + return name + ' ' + version + } +} + +function getMajor(version) { + return parseInt(version.split('.')[0]) +} + +function getMajorVersions(released, number) { + if (released.length === 0) return [] + var majorVersions = uniq(released.map(getMajor)) + var minimum = majorVersions[majorVersions.length - number] + if (!minimum) { + return released + } + var selected = [] + for (var i = released.length - 1; i >= 0; i--) { + if (minimum > getMajor(released[i])) break + selected.unshift(released[i]) + } + return selected +} + +function uniq(array) { + var filtered = [] + for (var i = 0; i < array.length; i++) { + if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) + } + return filtered +} + +function fillUsage(result, name, data) { + for (var i in data) { + result[name + ' ' + i] = data[i] + } +} + +function generateFilter(sign, version) { + version = parseFloat(version) + if (sign === '>') { + return function (v) { + return parseFloat(v) > version + } + } else if (sign === '>=') { + return function (v) { + return parseFloat(v) >= version + } + } else if (sign === '<') { + return function (v) { + return parseFloat(v) < version + } + } else { + return function (v) { + return parseFloat(v) <= version + } + } +} + +function generateSemverFilter(sign, version) { + version = version.split('.').map(parseSimpleInt) + version[1] = version[1] || 0 + version[2] = version[2] || 0 + if (sign === '>') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) > 0 + } + } else if (sign === '>=') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) >= 0 + } + } else if (sign === '<') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) > 0 + } + } else { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) >= 0 + } + } +} + +function parseSimpleInt(x) { + return parseInt(x) +} + +function compare(a, b) { + if (a < b) return -1 + if (a > b) return +1 + return 0 +} + +function compareSemver(a, b) { + return ( + compare(parseInt(a[0]), parseInt(b[0])) || + compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || + compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) + ) +} + +// this follows the npm-like semver behavior +function semverFilterLoose(operator, range) { + range = range.split('.').map(parseSimpleInt) + if (typeof range[1] === 'undefined') { + range[1] = 'x' + } + // ignore any patch version because we only return minor versions + // range[2] = 'x' + switch (operator) { + case '<=': + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) <= 0 + } + case '>=': + default: + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) >= 0 + } + } +} + +// this follows the npm-like semver behavior +function compareSemverLoose(version, range) { + if (version[0] !== range[0]) { + return version[0] < range[0] ? -1 : +1 + } + if (range[1] === 'x') { + return 0 + } + if (version[1] !== range[1]) { + return version[1] < range[1] ? -1 : +1 + } + return 0 +} + +function resolveVersion(data, version) { + if (data.versions.indexOf(version) !== -1) { + return version + } else if (browserslist.versionAliases[data.name][version]) { + return browserslist.versionAliases[data.name][version] + } else { + return false + } +} + +function normalizeVersion(data, version) { + var resolved = resolveVersion(data, version) + if (resolved) { + return resolved + } else if (data.versions.length === 1) { + return data.versions[0] + } else { + return false + } +} + +function filterByYear(since, context) { + since = since / 1000 + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var versions = Object.keys(data.releaseDate).filter(function (v) { + var date = data.releaseDate[v] + return date !== null && date >= since + }) + return selected.concat(versions.map(nameMapper(data.name))) + }, []) +} + +function cloneData(data) { + return { + name: data.name, + versions: data.versions, + released: data.released, + releaseDate: data.releaseDate + } +} + +function mapVersions(data, map) { + data.versions = data.versions.map(function (i) { + return map[i] || i + }) + data.released = data.released.map(function (i) { + return map[i] || i + }) + var fixedDate = {} + for (var i in data.releaseDate) { + fixedDate[map[i] || i] = data.releaseDate[i] + } + data.releaseDate = fixedDate + return data +} + +function byName(name, context) { + name = name.toLowerCase() + name = browserslist.aliases[name] || name + if (context.mobileToDesktop && browserslist.desktopNames[name]) { + var desktop = browserslist.data[browserslist.desktopNames[name]] + if (name === 'android') { + return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) + } else { + var cloned = cloneData(desktop) + cloned.name = name + if (name === 'op_mob') { + cloned = mapVersions(cloned, { '10.0-10.1': '10' }) + } + return cloned + } + } + return browserslist.data[name] +} + +function normalizeAndroidVersions(androidVersions, chromeVersions) { + var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST) + return androidVersions + .filter(function (version) { + return /^(?:[2-4]\.|[34]$)/.test(version) + }) + .concat(chromeVersions.slice(iFirstEvergreen)) +} + +function normalizeAndroidData(android, chrome) { + android.released = normalizeAndroidVersions(android.released, chrome.released) + android.versions = normalizeAndroidVersions(android.versions, chrome.versions) + android.released.forEach(function (v) { + if (android.releaseDate[v] === undefined) { + android.releaseDate[v] = chrome.releaseDate[v] + } + }) + return android +} + +function checkName(name, context) { + var data = byName(name, context) + if (!data) throw new BrowserslistError('Unknown browser ' + name) + return data +} + +function unknownQuery(query) { + return new BrowserslistError( + 'Unknown browser query `' + + query + + '`. ' + + 'Maybe you are using old Browserslist or made typo in query.' + ) +} + +function filterAndroid(list, versions, context) { + if (context.mobileToDesktop) return list + var released = browserslist.data.chrome.released + var nEvergreen = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) + if (versions <= nEvergreen) { + return list.slice(-1) + } + return list.slice(nEvergreen - 1 - versions) +} + +function resolve(queries, context) { + return parse(QUERIES, queries).reduce(function (result, node, index) { + if (node.not && index === 0) { + throw new BrowserslistError( + 'Write any browsers query (for instance, `defaults`) ' + + 'before `' + + node.query + + '`' + ) + } + var type = QUERIES[node.type] + var array = type.select.call(browserslist, context, node).map(function (j) { + var parts = j.split(' ') + if (parts[1] === '0') { + return parts[0] + ' ' + byName(parts[0], context).versions[0] + } else { + return j + } + }) + + if (node.compose === 'and') { + if (node.not) { + return result.filter(function (j) { + return array.indexOf(j) === -1 + }) + } else { + return result.filter(function (j) { + return array.indexOf(j) !== -1 + }) + } + } else { + if (node.not) { + var filter = {} + array.forEach(function (j) { + filter[j] = true + }) + return result.filter(function (j) { + return !filter[j] + }) + } + return result.concat(array) + } + }, []) +} + +function prepareOpts(opts) { + if (typeof opts === 'undefined') opts = {} + + if (typeof opts.path === 'undefined') { + opts.path = path.resolve ? path.resolve('.') : '.' + } + + return opts +} + +function prepareQueries(queries, opts) { + if (typeof queries === 'undefined' || queries === null) { + var config = browserslist.loadConfig(opts) + if (config) { + queries = config + } else { + queries = browserslist.defaults + } + } + + return queries +} + +function checkQueries(queries) { + if (!(typeof queries === 'string' || Array.isArray(queries))) { + throw new BrowserslistError( + 'Browser queries must be an array or string. Got ' + typeof queries + '.' + ) + } +} + +var cache = {} + +function browserslist(queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + + var context = { + ignoreUnknownVersions: opts.ignoreUnknownVersions, + dangerousExtend: opts.dangerousExtend, + mobileToDesktop: opts.mobileToDesktop, + path: opts.path, + env: opts.env + } + + env.oldDataWarning(browserslist.data) + var stats = env.getStat(opts, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + + var cacheKey = JSON.stringify([queries, context]) + if (cache[cacheKey]) return cache[cacheKey] + + var result = uniq(resolve(queries, context)).sort(function (name1, name2) { + name1 = name1.split(' ') + name2 = name2.split(' ') + if (name1[0] === name2[0]) { + // assumptions on caniuse data + // 1) version ranges never overlaps + // 2) if version is not a range, it never contains `-` + var version1 = name1[1].split('-')[0] + var version2 = name2[1].split('-')[0] + return compareSemver(version2.split('.'), version1.split('.')) + } else { + return compare(name1[0], name2[0]) + } + }) + if (!env.env.BROWSERSLIST_DISABLE_CACHE) { + cache[cacheKey] = result + } + return result +} + +browserslist.parse = function (queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + return parse(QUERIES, queries) +} + +// Will be filled by Can I Use data below +browserslist.cache = {} +browserslist.data = {} +browserslist.usage = { + global: {}, + custom: null +} + +// Default browsers query +browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] + +// Browser names aliases +browserslist.aliases = { + fx: 'firefox', + ff: 'firefox', + ios: 'ios_saf', + explorer: 'ie', + blackberry: 'bb', + explorermobile: 'ie_mob', + operamini: 'op_mini', + operamobile: 'op_mob', + chromeandroid: 'and_chr', + firefoxandroid: 'and_ff', + ucandroid: 'and_uc', + qqandroid: 'and_qq' +} + +// Can I Use only provides a few versions for some browsers (e.g. and_chr). +// Fallback to a similar browser for unknown versions +browserslist.desktopNames = { + and_chr: 'chrome', + and_ff: 'firefox', + ie_mob: 'ie', + op_mob: 'opera', + android: 'chrome' // has extra processing logic +} + +// Aliases to work with joined versions like `ios_saf 7.0-7.1` +browserslist.versionAliases = {} + +browserslist.clearCaches = env.clearCaches +browserslist.parseConfig = env.parseConfig +browserslist.readConfig = env.readConfig +browserslist.findConfig = env.findConfig +browserslist.loadConfig = env.loadConfig + +browserslist.coverage = function (browsers, stats) { + var data + if (typeof stats === 'undefined') { + data = browserslist.usage.global + } else if (stats === 'my stats') { + var opts = {} + opts.path = path.resolve ? path.resolve('.') : '.' + var customStats = env.getStat(opts) + if (!customStats) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + data = {} + for (var browser in customStats) { + fillUsage(data, browser, customStats[browser]) + } + } else if (typeof stats === 'string') { + if (stats.length > 2) { + stats = stats.toLowerCase() + } else { + stats = stats.toUpperCase() + } + env.loadCountry(browserslist.usage, stats, browserslist.data) + data = browserslist.usage[stats] + } else { + if ('dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + data = {} + for (var name in stats) { + for (var version in stats[name]) { + data[name + ' ' + version] = stats[name][version] + } + } + } + + return browsers.reduce(function (all, i) { + var usage = data[i] + if (usage === undefined) { + usage = data[i.replace(/ \S+$/, ' 0')] + } + return all + (usage || 0) + }, 0) +} + +function nodeQuery(context, node) { + var matched = browserslist.nodeVersions.filter(function (i) { + return isVersionsMatch(i, node.version) + }) + if (matched.length === 0) { + if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of Node.js' + ) + } + } + return ['node ' + matched[matched.length - 1]] +} + +function sinceQuery(context, node) { + var year = parseInt(node.year) + var month = parseInt(node.month || '01') - 1 + var day = parseInt(node.day || '01') + return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) +} + +function coverQuery(context, node) { + var coverage = parseFloat(node.coverage) + var usage = browserslist.usage.global + if (node.place) { + if (node.place.match(/^my\s+stats$/i)) { + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + usage = context.customUsage + } else { + var place + if (node.place.length === 2) { + place = node.place.toUpperCase() + } else { + place = node.place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + usage = browserslist.usage[place] + } + } + var versions = Object.keys(usage).sort(function (a, b) { + return usage[b] - usage[a] + }) + var coveraged = 0 + var result = [] + var version + for (var i = 0; i < versions.length; i++) { + version = versions[i] + if (usage[version] === 0) break + coveraged += usage[version] + result.push(version) + if (coveraged >= coverage) break + } + return result +} + +var QUERIES = { + last_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+major\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = getMajorVersions(data.released, node.versions) + list = list.map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return selected.concat(list) + }, []) + } + }, + last_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.released.slice(-node.versions) + list = list.map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return selected.concat(list) + }, []) + } + }, + last_electron_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, + select: function (context, node) { + var validVersions = getMajorVersions(Object.keys(e2c), node.versions) + return validVersions.map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, + select: function (context, node) { + return getMajorVersions(browserslist.nodeVersions, node.versions).map( + function (version) { + return 'node ' + version + } + ) + } + }, + last_browser_major_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var validVersions = getMajorVersions(data.released, node.versions) + var list = validVersions.map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return list + } + }, + last_electron_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, + select: function (context, node) { + return Object.keys(e2c) + .slice(-node.versions) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+versions?$/i, + select: function (context, node) { + return browserslist.nodeVersions + .slice(-node.versions) + .map(function (version) { + return 'node ' + version + }) + } + }, + last_browser_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var list = data.released.slice(-node.versions).map(nameMapper(data.name)) + if (data.name === 'android') { + list = filterAndroid(list, node.versions, context) + } + return list + } + }, + unreleased_versions: { + matches: [], + regexp: /^unreleased\s+versions$/i, + select: function (context) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.versions.filter(function (v) { + return data.released.indexOf(v) === -1 + }) + list = list.map(nameMapper(data.name)) + return selected.concat(list) + }, []) + } + }, + unreleased_electron_versions: { + matches: [], + regexp: /^unreleased\s+electron\s+versions?$/i, + select: function () { + return [] + } + }, + unreleased_browser_versions: { + matches: ['browser'], + regexp: /^unreleased\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + return data.versions + .filter(function (v) { + return data.released.indexOf(v) === -1 + }) + .map(nameMapper(data.name)) + } + }, + last_years: { + matches: ['years'], + regexp: /^last\s+(\d*.?\d+)\s+years?$/i, + select: function (context, node) { + return filterByYear(Date.now() - YEAR * node.years, context) + } + }, + since_y: { + matches: ['year'], + regexp: /^since (\d+)$/i, + select: sinceQuery + }, + since_y_m: { + matches: ['year', 'month'], + regexp: /^since (\d+)-(\d+)$/i, + select: sinceQuery + }, + since_y_m_d: { + matches: ['year', 'month', 'day'], + regexp: /^since (\d+)-(\d+)-(\d+)$/i, + select: sinceQuery + }, + popularity: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var usage = browserslist.usage.global + return Object.keys(usage).reduce(function (result, version) { + if (node.sign === '>') { + if (usage[version] > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (usage[version] < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (usage[version] <= popularity) { + result.push(version) + } + } else if (usage[version] >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_my_stats: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_config_stats: { + matches: ['sign', 'popularity', 'config'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var stats = env.loadStat(context, node.config, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_place: { + matches: ['sign', 'popularity', 'place'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var place = node.place + if (place.length === 2) { + place = place.toUpperCase() + } else { + place = place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + var usage = browserslist.usage[place] + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + cover: { + matches: ['coverage'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, + select: coverQuery + }, + cover_in: { + matches: ['coverage', 'place'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, + select: coverQuery + }, + supports: { + matches: ['feature'], + regexp: /^supports\s+([\w-]+)$/, + select: function (context, node) { + env.loadFeature(browserslist.cache, node.feature) + var features = browserslist.cache[node.feature] + return Object.keys(features).reduce(function (result, version) { + var flags = features[version] + if (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0) { + result.push(version) + } + return result + }, []) + } + }, + electron_range: { + matches: ['from', 'to'], + regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var fromToUse = normalizeElectron(node.from) + var toToUse = normalizeElectron(node.to) + var from = parseFloat(node.from) + var to = parseFloat(node.to) + if (!e2c[fromToUse]) { + throw new BrowserslistError('Unknown version ' + from + ' of electron') + } + if (!e2c[toToUse]) { + throw new BrowserslistError('Unknown version ' + to + ' of electron') + } + return Object.keys(e2c) + .filter(function (i) { + var parsed = parseFloat(i) + return parsed >= from && parsed <= to + }) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_range: { + matches: ['from', 'to'], + regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(semverFilterLoose('>=', node.from)) + .filter(semverFilterLoose('<=', node.to)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_range: { + matches: ['browser', 'from', 'to'], + regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var from = parseFloat(normalizeVersion(data, node.from) || node.from) + var to = parseFloat(normalizeVersion(data, node.to) || node.to) + function filter(v) { + var parsed = parseFloat(v) + return parsed >= from && parsed <= to + } + return data.released.filter(filter).map(nameMapper(data.name)) + } + }, + electron_ray: { + matches: ['sign', 'version'], + regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + return Object.keys(e2c) + .filter(generateFilter(node.sign, versionToUse)) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_ray: { + matches: ['sign', 'version'], + regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(generateSemverFilter(node.sign, node.version)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_ray: { + matches: ['browser', 'sign', 'version'], + regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, + select: function (context, node) { + var version = node.version + var data = checkName(node.browser, context) + var alias = browserslist.versionAliases[data.name][version] + if (alias) version = alias + return data.released + .filter(generateFilter(node.sign, version)) + .map(function (v) { + return data.name + ' ' + v + }) + } + }, + firefox_esr: { + matches: [], + regexp: /^(firefox|ff|fx)\s+esr$/i, + select: function () { + return ['firefox 102'] + } + }, + opera_mini_all: { + matches: [], + regexp: /(operamini|op_mini)\s+all/i, + select: function () { + return ['op_mini all'] + } + }, + electron_version: { + matches: ['version'], + regexp: /^electron\s+([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + var chrome = e2c[versionToUse] + if (!chrome) { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of electron' + ) + } + return ['chrome ' + chrome] + } + }, + node_major_version: { + matches: ['version'], + regexp: /^node\s+(\d+)$/i, + select: nodeQuery + }, + node_minor_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+)$/i, + select: nodeQuery + }, + node_patch_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+\.\d+)$/i, + select: nodeQuery + }, + current_node: { + matches: [], + regexp: /^current\s+node$/i, + select: function (context) { + return [env.currentNode(resolve, context)] + } + }, + maintained_node: { + matches: [], + regexp: /^maintained\s+node\s+versions$/i, + select: function (context) { + var now = Date.now() + var queries = Object.keys(jsEOL) + .filter(function (key) { + return ( + now < Date.parse(jsEOL[key].end) && + now > Date.parse(jsEOL[key].start) && + isEolReleased(key) + ) + }) + .map(function (key) { + return 'node ' + key.slice(1) + }) + return resolve(queries, context) + } + }, + phantomjs_1_9: { + matches: [], + regexp: /^phantomjs\s+1.9$/i, + select: function () { + return ['safari 5'] + } + }, + phantomjs_2_1: { + matches: [], + regexp: /^phantomjs\s+2.1$/i, + select: function () { + return ['safari 6'] + } + }, + browser_version: { + matches: ['browser', 'version'], + regexp: /^(\w+)\s+(tp|[\d.]+)$/i, + select: function (context, node) { + var version = node.version + if (/^tp$/i.test(version)) version = 'TP' + var data = checkName(node.browser, context) + var alias = normalizeVersion(data, version) + if (alias) { + version = alias + } else { + if (version.indexOf('.') === -1) { + alias = version + '.0' + } else { + alias = version.replace(/\.0$/, '') + } + alias = normalizeVersion(data, alias) + if (alias) { + version = alias + } else if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + version + ' of ' + node.browser + ) + } + } + return [data.name + ' ' + version] + } + }, + browserslist_config: { + matches: [], + regexp: /^browserslist config$/i, + select: function (context) { + return browserslist(undefined, context) + } + }, + extends: { + matches: ['config'], + regexp: /^extends (.+)$/i, + select: function (context, node) { + return resolve(env.loadQueries(context, node.config), context) + } + }, + defaults: { + matches: [], + regexp: /^defaults$/i, + select: function (context) { + return resolve(browserslist.defaults, context) + } + }, + dead: { + matches: [], + regexp: /^dead$/i, + select: function (context) { + var dead = [ + 'Baidu >= 0', + 'ie <= 11', + 'ie_mob <= 11', + 'bb <= 10', + 'op_mob <= 12.1', + 'samsung 4' + ] + return resolve(dead, context) + } + }, + unknown: { + matches: [], + regexp: /^(\w+)$/i, + select: function (context, node) { + if (byName(node.query, context)) { + throw new BrowserslistError( + 'Specify versions in Browserslist query for browser ' + node.query + ) + } else { + throw unknownQuery(node.query) + } + } + } +} + +// Get and convert Can I Use data + +;(function () { + for (var name in agents) { + var browser = agents[name] + browserslist.data[name] = { + name: name, + versions: normalize(agents[name].versions), + released: normalize(agents[name].versions.slice(0, -3)), + releaseDate: agents[name].release_date + } + fillUsage(browserslist.usage.global, name, browser.usage_global) + + browserslist.versionAliases[name] = {} + for (var i = 0; i < browser.versions.length; i++) { + var full = browser.versions[i] + if (!full) continue + + if (full.indexOf('-') !== -1) { + var interval = full.split('-') + for (var j = 0; j < interval.length; j++) { + browserslist.versionAliases[name][interval[j]] = full + } + } + } + } + + browserslist.versionAliases.op_mob['59'] = '58' + + browserslist.nodeVersions = jsReleases.map(function (release) { + return release.version + }) +})() + +module.exports = browserslist diff --git a/node_modules/browserslist/node.js b/node_modules/browserslist/node.js new file mode 100644 index 0000000..0e208d0 --- /dev/null +++ b/node_modules/browserslist/node.js @@ -0,0 +1,409 @@ +var feature = require('caniuse-lite/dist/unpacker/feature').default +var region = require('caniuse-lite/dist/unpacker/region').default +var path = require('path') +var fs = require('fs') + +var BrowserslistError = require('./error') + +var IS_SECTION = /^\s*\[(.+)]\s*$/ +var CONFIG_PATTERN = /^browserslist-config-/ +var SCOPED_CONFIG__PATTERN = /@[^/]+\/browserslist-config(-|$|\/)/ +var TIME_TO_UPDATE_CANIUSE = 6 * 30 * 24 * 60 * 60 * 1000 +var FORMAT = + 'Browserslist config should be a string or an array ' + + 'of strings with browser queries' + +var dataTimeChecked = false +var filenessCache = {} +var configCache = {} +function checkExtend(name) { + var use = ' Use `dangerousExtend` option to disable.' + if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) { + throw new BrowserslistError( + 'Browserslist config needs `browserslist-config-` prefix. ' + use + ) + } + if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) { + throw new BrowserslistError( + '`.` not allowed in Browserslist config name. ' + use + ) + } + if (name.indexOf('node_modules') !== -1) { + throw new BrowserslistError( + '`node_modules` not allowed in Browserslist config.' + use + ) + } +} + +function isFile(file) { + if (file in filenessCache) { + return filenessCache[file] + } + var result = fs.existsSync(file) && fs.statSync(file).isFile() + if (!process.env.BROWSERSLIST_DISABLE_CACHE) { + filenessCache[file] = result + } + return result +} + +function eachParent(file, callback) { + var dir = isFile(file) ? path.dirname(file) : file + var loc = path.resolve(dir) + do { + var result = callback(loc) + if (typeof result !== 'undefined') return result + } while (loc !== (loc = path.dirname(loc))) + return undefined +} + +function check(section) { + if (Array.isArray(section)) { + for (var i = 0; i < section.length; i++) { + if (typeof section[i] !== 'string') { + throw new BrowserslistError(FORMAT) + } + } + } else if (typeof section !== 'string') { + throw new BrowserslistError(FORMAT) + } +} + +function pickEnv(config, opts) { + if (typeof config !== 'object') return config + + var name + if (typeof opts.env === 'string') { + name = opts.env + } else if (process.env.BROWSERSLIST_ENV) { + name = process.env.BROWSERSLIST_ENV + } else if (process.env.NODE_ENV) { + name = process.env.NODE_ENV + } else { + name = 'production' + } + + if (opts.throwOnMissing) { + if (name && name !== 'defaults' && !config[name]) { + throw new BrowserslistError( + 'Missing config for Browserslist environment `' + name + '`' + ) + } + } + + return config[name] || config.defaults +} + +function parsePackage(file) { + var config = JSON.parse( + fs + .readFileSync(file) + .toString() + .replace(/^\uFEFF/m, '') + ) + if (config.browserlist && !config.browserslist) { + throw new BrowserslistError( + '`browserlist` key instead of `browserslist` in ' + file + ) + } + var list = config.browserslist + if (Array.isArray(list) || typeof list === 'string') { + list = { defaults: list } + } + for (var i in list) { + check(list[i]) + } + + return list +} + +function latestReleaseTime(agents) { + var latest = 0 + for (var name in agents) { + var dates = agents[name].releaseDate || {} + for (var key in dates) { + if (latest < dates[key]) { + latest = dates[key] + } + } + } + return latest * 1000 +} + +function normalizeStats(data, stats) { + if (!data) { + data = {} + } + if (stats && 'dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + + if (typeof stats !== 'object') return undefined + + var normalized = {} + for (var i in stats) { + var versions = Object.keys(stats[i]) + if (versions.length === 1 && data[i] && data[i].versions.length === 1) { + var normal = data[i].versions[0] + normalized[i] = {} + normalized[i][normal] = stats[i][versions[0]] + } else { + normalized[i] = stats[i] + } + } + + return normalized +} + +function normalizeUsageData(usageData, data) { + for (var browser in usageData) { + var browserUsage = usageData[browser] + // eslint-disable-next-line max-len + // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615 + // caniuse-db returns { 0: "percentage" } for `and_*` regional stats + if ('0' in browserUsage) { + var versions = data[browser].versions + browserUsage[versions[versions.length - 1]] = browserUsage[0] + delete browserUsage[0] + } + } +} + +module.exports = { + loadQueries: function loadQueries(ctx, name) { + if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { + checkExtend(name) + } + var queries = require(require.resolve(name, { paths: ['.', ctx.path] })) + if (queries) { + if (Array.isArray(queries)) { + return queries + } else if (typeof queries === 'object') { + if (!queries.defaults) queries.defaults = [] + return pickEnv(queries, ctx, name) + } + } + throw new BrowserslistError( + '`' + + name + + '` config exports not an array of queries' + + ' or an object of envs' + ) + }, + + loadStat: function loadStat(ctx, name, data) { + if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { + checkExtend(name) + } + var stats = require(require.resolve( + path.join(name, 'browserslist-stats.json'), + { paths: ['.'] } + )) + return normalizeStats(data, stats) + }, + + getStat: function getStat(opts, data) { + var stats + if (opts.stats) { + stats = opts.stats + } else if (process.env.BROWSERSLIST_STATS) { + stats = process.env.BROWSERSLIST_STATS + } else if (opts.path && path.resolve && fs.existsSync) { + stats = eachParent(opts.path, function (dir) { + var file = path.join(dir, 'browserslist-stats.json') + return isFile(file) ? file : undefined + }) + } + if (typeof stats === 'string') { + try { + stats = JSON.parse(fs.readFileSync(stats)) + } catch (e) { + throw new BrowserslistError("Can't read " + stats) + } + } + return normalizeStats(data, stats) + }, + + loadConfig: function loadConfig(opts) { + if (process.env.BROWSERSLIST) { + return process.env.BROWSERSLIST + } else if (opts.config || process.env.BROWSERSLIST_CONFIG) { + var file = opts.config || process.env.BROWSERSLIST_CONFIG + if (path.basename(file) === 'package.json') { + return pickEnv(parsePackage(file), opts) + } else { + return pickEnv(module.exports.readConfig(file), opts) + } + } else if (opts.path) { + return pickEnv(module.exports.findConfig(opts.path), opts) + } else { + return undefined + } + }, + + loadCountry: function loadCountry(usage, country, data) { + var code = country.replace(/[^\w-]/g, '') + if (!usage[code]) { + var compressed + try { + compressed = require('caniuse-lite/data/regions/' + code + '.js') + } catch (e) { + throw new BrowserslistError('Unknown region name `' + code + '`.') + } + var usageData = region(compressed) + normalizeUsageData(usageData, data) + usage[country] = {} + for (var i in usageData) { + for (var j in usageData[i]) { + usage[country][i + ' ' + j] = usageData[i][j] + } + } + } + }, + + loadFeature: function loadFeature(features, name) { + name = name.replace(/[^\w-]/g, '') + if (features[name]) return + var compressed + try { + compressed = require('caniuse-lite/data/features/' + name + '.js') + } catch (e) { + throw new BrowserslistError('Unknown feature name `' + name + '`.') + } + var stats = feature(compressed).stats + features[name] = {} + for (var i in stats) { + for (var j in stats[i]) { + features[name][i + ' ' + j] = stats[i][j] + } + } + }, + + parseConfig: function parseConfig(string) { + var result = { defaults: [] } + var sections = ['defaults'] + + string + .toString() + .replace(/#[^\n]*/g, '') + .split(/\n|,/) + .map(function (line) { + return line.trim() + }) + .filter(function (line) { + return line !== '' + }) + .forEach(function (line) { + if (IS_SECTION.test(line)) { + sections = line.match(IS_SECTION)[1].trim().split(' ') + sections.forEach(function (section) { + if (result[section]) { + throw new BrowserslistError( + 'Duplicate section ' + section + ' in Browserslist config' + ) + } + result[section] = [] + }) + } else { + sections.forEach(function (section) { + result[section].push(line) + }) + } + }) + + return result + }, + + readConfig: function readConfig(file) { + if (!isFile(file)) { + throw new BrowserslistError("Can't read " + file + ' config') + } + return module.exports.parseConfig(fs.readFileSync(file)) + }, + + findConfig: function findConfig(from) { + from = path.resolve(from) + + var passed = [] + var resolved = eachParent(from, function (dir) { + if (dir in configCache) { + return configCache[dir] + } + + passed.push(dir) + + var config = path.join(dir, 'browserslist') + var pkg = path.join(dir, 'package.json') + var rc = path.join(dir, '.browserslistrc') + + var pkgBrowserslist + if (isFile(pkg)) { + try { + pkgBrowserslist = parsePackage(pkg) + } catch (e) { + if (e.name === 'BrowserslistError') throw e + console.warn( + '[Browserslist] Could not parse ' + pkg + '. Ignoring it.' + ) + } + } + + if (isFile(config) && pkgBrowserslist) { + throw new BrowserslistError( + dir + ' contains both browserslist and package.json with browsers' + ) + } else if (isFile(rc) && pkgBrowserslist) { + throw new BrowserslistError( + dir + ' contains both .browserslistrc and package.json with browsers' + ) + } else if (isFile(config) && isFile(rc)) { + throw new BrowserslistError( + dir + ' contains both .browserslistrc and browserslist' + ) + } else if (isFile(config)) { + return module.exports.readConfig(config) + } else if (isFile(rc)) { + return module.exports.readConfig(rc) + } else { + return pkgBrowserslist + } + }) + if (!process.env.BROWSERSLIST_DISABLE_CACHE) { + passed.forEach(function (dir) { + configCache[dir] = resolved + }) + } + return resolved + }, + + clearCaches: function clearCaches() { + dataTimeChecked = false + filenessCache = {} + configCache = {} + + this.cache = {} + }, + + oldDataWarning: function oldDataWarning(agentsObj) { + if (dataTimeChecked) return + dataTimeChecked = true + if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return + + var latest = latestReleaseTime(agentsObj) + var halfYearAgo = Date.now() - TIME_TO_UPDATE_CANIUSE + + if (latest !== 0 && latest < halfYearAgo) { + console.warn( + 'Browserslist: caniuse-lite is outdated. Please run:\n' + + ' npx update-browserslist-db@latest\n' + + ' Why you should do it regularly: ' + + 'https://github.com/browserslist/update-db#readme' + ) + } + }, + + currentNode: function currentNode() { + return 'node ' + process.versions.node + }, + + env: process.env +} diff --git a/node_modules/browserslist/package.json b/node_modules/browserslist/package.json new file mode 100644 index 0000000..8c0a5db --- /dev/null +++ b/node_modules/browserslist/package.json @@ -0,0 +1,44 @@ +{ + "name": "browserslist", + "version": "4.21.7", + "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "browserslist/browserslist", + "dependencies": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "bin": { + "browserslist": "cli.js" + }, + "types": "./index.d.ts", + "browser": { + "./node.js": "./browser.js", + "path": false + } +} diff --git a/node_modules/browserslist/parse.js b/node_modules/browserslist/parse.js new file mode 100644 index 0000000..56b534a --- /dev/null +++ b/node_modules/browserslist/parse.js @@ -0,0 +1,78 @@ +var AND_REGEXP = /^\s+and\s+(.*)/i +var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i + +function flatten(array) { + if (!Array.isArray(array)) return [array] + return array.reduce(function (a, b) { + return a.concat(flatten(b)) + }, []) +} + +function find(string, predicate) { + for (var n = 1, max = string.length; n <= max; n++) { + var parsed = string.substr(-n, n) + if (predicate(parsed, n, max)) { + return string.slice(0, -n) + } + } + return '' +} + +function matchQuery(all, query) { + var node = { query: query } + if (query.indexOf('not ') === 0) { + node.not = true + query = query.slice(4) + } + + for (var name in all) { + var type = all[name] + var match = query.match(type.regexp) + if (match) { + node.type = name + for (var i = 0; i < type.matches.length; i++) { + node[type.matches[i]] = match[i + 1] + } + return node + } + } + + node.type = 'unknown' + return node +} + +function matchBlock(all, string, qs) { + var node + return find(string, function (parsed, n, max) { + if (AND_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(AND_REGEXP)[1]) + node.compose = 'and' + qs.unshift(node) + return true + } else if (OR_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(OR_REGEXP)[1]) + node.compose = 'or' + qs.unshift(node) + return true + } else if (n === max) { + node = matchQuery(all, parsed.trim()) + node.compose = 'or' + qs.unshift(node) + return true + } + return false + }) +} + +module.exports = function parse(all, queries) { + if (!Array.isArray(queries)) queries = [queries] + return flatten( + queries.map(function (block) { + var qs = [] + do { + block = matchBlock(all, block, qs) + } while (block) + return qs + }) + ) +} diff --git a/node_modules/caniuse-lite/LICENSE b/node_modules/caniuse-lite/LICENSE new file mode 100644 index 0000000..06c608d --- /dev/null +++ b/node_modules/caniuse-lite/LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/node_modules/caniuse-lite/README.md b/node_modules/caniuse-lite/README.md new file mode 100644 index 0000000..f2c67bc --- /dev/null +++ b/node_modules/caniuse-lite/README.md @@ -0,0 +1,6 @@ +# caniuse-lite + +A smaller version of caniuse-db, with only the essentials! + +## Docs +Read full docs **[here](https://github.com/browserslist/caniuse-lite#readme)**. diff --git a/node_modules/caniuse-lite/data/agents.js b/node_modules/caniuse-lite/data/agents.js new file mode 100644 index 0000000..df675a0 --- /dev/null +++ b/node_modules/caniuse-lite/data/agents.js @@ -0,0 +1 @@ +module.exports={A:{A:{J:0.0131217,E:0.00621152,F:0.0439988,G:0.0527986,A:0.00879976,B:0.36959,GC:0.009298},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GC","J","E","F","G","A","B","","",""],E:"IE",F:{GC:962323200,J:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{C:0.004081,K:0.004267,L:0.004268,H:0.004081,M:0.003702,N:0.004441,O:0.013323,P:0,Q:0.004298,R:0.00944,S:0.004043,T:0.004441,U:0.003861,V:0.003861,W:0.004441,X:0.003943,Y:0.004441,Z:0.003943,a:0.003943,b:0.008882,c:0.004118,d:0.003939,e:0.003943,f:0.003943,g:0.003943,h:0.003929,i:0.003901,m:0.011829,n:0.004441,o:0.004441,p:0.008162,q:0.004081,r:0.004441,s:0.008882,t:0.017764,u:0.031087,v:0.093261,w:0.075497,x:1.38559,y:3.15755,D:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","H","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","m","n","o","p","q","r","s","t","u","v","w","x","y","D","","",""],E:"Edge",F:{C:1438128000,K:1447286400,L:1470096000,H:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,m:1649635200,n:1651190400,o:1653955200,p:1655942400,q:1659657600,r:1661990400,s:1664755200,t:1666915200,u:1670198400,v:1673481600,w:1675900800,x:1678665600,y:1680825600,D:1683158400},D:{C:"ms",K:"ms",L:"ms",H:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.004443,"1":0.013698,"2":0.004161,"3":0.008786,"4":0.004118,"5":0.004317,"6":0.004393,"7":0.004418,"8":0.008834,"9":0.008322,HC:0.004118,wB:0.004271,I:0.011703,z:0.004879,J:0.020136,E:0.005725,F:0.004525,G:0.00533,A:0.004283,B:0.008882,C:0.004471,K:0.004486,L:0.00453,H:0.008322,M:0.004417,N:0.004425,O:0.004161,j:0.004283,k:0.008322,AB:0.008928,BB:0.004471,CB:0.009284,DB:0.004707,EB:0.009076,FB:0.004081,GB:0.004783,HB:0.003929,IB:0.004783,JB:0.00487,KB:0.005029,LB:0.0047,MB:0.022205,NB:0.004441,OB:0.003867,PB:0.004525,QB:0.004293,RB:0.004081,SB:0.004538,TB:0.008282,UB:0.011601,VB:0.039969,WB:0.011601,XB:0.004441,YB:0.004441,ZB:0.004441,aB:0.011601,bB:0.003939,xB:0.004441,cB:0.003929,yB:0.004356,dB:0.004425,eB:0.008322,fB:0.00415,gB:0.004267,hB:0.003801,iB:0.004267,jB:0.004081,kB:0.00415,lB:0.004293,mB:0.004425,nB:0.013323,l:0.00415,oB:0.00415,pB:0.004318,qB:0.004356,rB:0.003974,sB:0.031087,P:0.004081,Q:0.004081,R:0.004081,zB:0.003861,S:0.004441,T:0.003929,U:0.004268,V:0.003801,W:0.008882,X:0.004441,Y:0.003943,Z:0.003943,a:0.008882,b:0.003801,c:0.007722,d:0.017764,e:0.003773,f:0.007886,g:0.003901,h:0.003901,i:0.004081,m:0.003861,n:0.004081,o:0.097702,p:0.017764,q:0.004441,r:0.008882,s:0.008882,t:0.008882,u:0.013323,v:0.022205,w:0.048851,x:1.00367,y:0.905964,D:0.008882,"0B":0,"1B":0,IC:0.008786,JC:0.00487},B:"moz",C:["HC","wB","IC","JC","I","z","J","E","F","G","A","B","C","K","L","H","M","N","O","0","j","k","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","xB","cB","yB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","l","oB","pB","qB","rB","sB","P","Q","R","zB","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","m","n","o","p","q","r","s","t","u","v","w","x","y","D","0B","1B",""],E:"Firefox",F:{"0":1357603200,"1":1368489600,"2":1372118400,"3":1375747200,"4":1379376000,"5":1386633600,"6":1391472000,"7":1395100800,"8":1398729600,"9":1402358400,HC:1161648000,wB:1213660800,IC:1246320000,JC:1264032000,I:1300752000,z:1308614400,J:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,H:1342483200,M:1346112000,N:1349740800,O:1353628800,j:1361232000,k:1364860800,AB:1405987200,BB:1409616000,CB:1413244800,DB:1417392000,EB:1421107200,FB:1424736000,GB:1428278400,HB:1431475200,IB:1435881600,JB:1439251200,KB:1442880000,LB:1446508800,MB:1450137600,NB:1453852800,OB:1457395200,PB:1461628800,QB:1465257600,RB:1470096000,SB:1474329600,TB:1479168000,UB:1485216000,VB:1488844800,WB:1492560000,XB:1497312000,YB:1502150400,ZB:1506556800,aB:1510617600,bB:1516665600,xB:1520985600,cB:1525824000,yB:1529971200,dB:1536105600,eB:1540252800,fB:1544486400,gB:1548720000,hB:1552953600,iB:1558396800,jB:1562630400,kB:1567468800,lB:1571788800,mB:1575331200,nB:1578355200,l:1581379200,oB:1583798400,pB:1586304000,qB:1588636800,rB:1591056000,sB:1593475200,P:1595894400,Q:1598313600,R:1600732800,zB:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,m:1651536000,n:1653955200,o:1656374400,p:1658793600,q:1661212800,r:1663632000,s:1666051200,t:1668470400,u:1670889600,v:1673913600,w:1676332800,x:1678752000,y:1681171200,D:1683590400,"0B":null,"1B":null}},D:{A:{"0":0.008322,"1":0.003901,"2":0.008786,"3":0.003939,"4":0.004461,"5":0.004141,"6":0.004326,"7":0.0047,"8":0.004538,"9":0.008322,I:0.004706,z:0.004879,J:0.004879,E:0.005591,F:0.005591,G:0.005591,A:0.004534,B:0.004464,C:0.010424,K:0.0083,L:0.004706,H:0.015087,M:0.004393,N:0.004393,O:0.008652,j:0.004393,k:0.004317,AB:0.008596,BB:0.004566,CB:0.004118,DB:0.008882,EB:0.004441,FB:0.004335,GB:0.004464,HB:0.017764,IB:0.003867,JB:0.013323,KB:0.004441,LB:0.003974,MB:0.008882,NB:0.008882,OB:0.013323,PB:0.003867,QB:0.008882,RB:0.017764,SB:0.035528,TB:0.004441,UB:0.004081,VB:0.004441,WB:0.008882,XB:0.003867,YB:0.004441,ZB:0.066615,aB:0.004081,bB:0.004441,xB:0.003773,cB:0.013323,yB:0.008882,dB:0.003773,eB:0.004441,fB:0.003943,gB:0.008882,hB:0.031087,iB:0.008882,jB:0.013323,kB:0.039969,lB:0.022205,mB:0.017764,nB:0.026646,l:0.008882,oB:0.031087,pB:0.04441,qB:0.04441,rB:0.017764,sB:0.026646,P:0.22205,Q:0.039969,R:0.04441,S:0.137671,T:0.035528,U:0.071056,V:0.057733,W:0.093261,X:0.026646,Y:0.035528,Z:0.04441,a:0.084379,b:0.048851,c:0.137671,d:0.066615,e:0.017764,f:0.035528,g:0.048851,h:0.039969,i:0.057733,m:0.048851,n:0.039969,o:0.057733,p:0.270901,q:0.057733,r:0.08882,s:0.071056,t:0.093261,u:0.248696,v:2.10947,w:0.475187,x:8.75321,y:9.67694,D:0.022205,"0B":0.013323,"1B":0,KC:0},B:"webkit",C:["","","","","","I","z","J","E","F","G","A","B","C","K","L","H","M","N","O","0","j","k","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","xB","cB","yB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","l","oB","pB","qB","rB","sB","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","m","n","o","p","q","r","s","t","u","v","w","x","y","D","0B","1B","KC"],E:"Chrome",F:{"0":1332892800,"1":1343692800,"2":1348531200,"3":1352246400,"4":1357862400,"5":1361404800,"6":1364428800,"7":1369094400,"8":1374105600,"9":1376956800,I:1264377600,z:1274745600,J:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,H:1316131200,M:1319500800,N:1323734400,O:1328659200,j:1337040000,k:1340668800,AB:1384214400,BB:1389657600,CB:1392940800,DB:1397001600,EB:1400544000,FB:1405468800,GB:1409011200,HB:1412640000,IB:1416268800,JB:1421798400,KB:1425513600,LB:1429401600,MB:1432080000,NB:1437523200,OB:1441152000,PB:1444780800,QB:1449014400,RB:1453248000,SB:1456963200,TB:1460592000,UB:1464134400,VB:1469059200,WB:1472601600,XB:1476230400,YB:1480550400,ZB:1485302400,aB:1489017600,bB:1492560000,xB:1496707200,cB:1500940800,yB:1504569600,dB:1508198400,eB:1512518400,fB:1516752000,gB:1520294400,hB:1523923200,iB:1527552000,jB:1532390400,kB:1536019200,lB:1539648000,mB:1543968000,nB:1548720000,l:1552348800,oB:1555977600,pB:1559606400,qB:1564444800,rB:1568073600,sB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,m:1648512000,n:1650931200,o:1653350400,p:1655769600,q:1659398400,r:1661817600,s:1664236800,t:1666656000,u:1669680000,v:1673308800,w:1675728000,x:1678147200,y:1680566400,D:1682985600,"0B":null,"1B":null,KC:null}},E:{A:{I:0,z:0.008322,J:0.004656,E:0.004465,F:0.003974,G:0.003929,A:0.004425,B:0.004318,C:0.003801,K:0.022205,L:0.119907,H:0.026646,LC:0,"2B":0.008692,MC:0.008882,NC:0.00456,OC:0.004283,PC:0.048851,"3B":0.007802,tB:0.008882,uB:0.039969,"4B":0.186522,QC:0.328634,RC:0.048851,"5B":0.04441,"6B":0.111025,"7B":0.195404,"8B":0.830467,vB:0.08882,"9B":0.279783,AC:0.408572,BC:1.63429,CC:0.688355,DC:0.013323,SC:0,TC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","LC","2B","I","z","MC","J","NC","E","OC","F","G","PC","A","3B","B","tB","C","uB","K","4B","L","QC","H","RC","5B","6B","7B","8B","vB","9B","AC","BC","CC","DC","SC","TC",""],E:"Safari",F:{LC:1205798400,"2B":1226534400,I:1244419200,z:1275868800,MC:1311120000,J:1343174400,NC:1382400000,E:1382400000,OC:1410998400,F:1413417600,G:1443657600,PC:1458518400,A:1474329600,"3B":1490572800,B:1505779200,tB:1522281600,C:1537142400,uB:1553472000,K:1568851200,"4B":1585008000,L:1600214400,QC:1619395200,H:1632096000,RC:1635292800,"5B":1639353600,"6B":1647216000,"7B":1652745600,"8B":1658275200,vB:1662940800,"9B":1666569600,AC:1670889600,BC:1674432000,CC:1679875200,DC:1684368000,SC:null,TC:null}},F:{A:{"0":0.006015,"1":0.006597,"2":0.013434,"3":0.006702,"4":0.006015,"5":0.005595,"6":0.004393,"7":0.008882,"8":0.004879,"9":0.004879,G:0.0082,B:0.016581,C:0.004317,H:0.00685,M:0.00685,N:0.00685,O:0.005014,j:0.004879,k:0.006597,AB:0.004441,BB:0.005152,CB:0.005014,DB:0.009758,EB:0.004879,FB:0.004441,GB:0.004283,HB:0.004367,IB:0.004534,JB:0.004441,KB:0.004227,LB:0.004418,MB:0.004161,NB:0.004227,OB:0.004725,PB:0.013323,QB:0.008942,RB:0.004707,SB:0.004827,TB:0.004707,UB:0.004707,VB:0.004326,WB:0.008922,XB:0.014349,YB:0.004425,ZB:0.00472,aB:0.004425,bB:0.004425,cB:0.00472,dB:0.004532,eB:0.004566,fB:0.02283,gB:0.00867,hB:0.004656,iB:0.004642,jB:0.003929,kB:0.00944,lB:0.004293,mB:0.003929,nB:0.004298,l:0.096692,oB:0.008162,pB:0.004141,qB:0.004257,rB:0.003939,sB:0.008236,P:0.003855,Q:0.003939,R:0.008514,zB:0.003939,S:0.003939,T:0.003702,U:0.004441,V:0.003855,W:0.003855,X:0.003929,Y:0.003861,Z:0.011703,a:0.007546,b:0.011829,c:0.069498,d:0.004441,e:0.066615,f:0.315311,g:0.817144,h:0.031087,i:0,UC:0.00685,VC:0,WC:0.008392,XC:0.004706,tB:0.006229,EC:0.004879,YC:0.008786,uB:0.00472},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","G","UC","VC","WC","XC","B","tB","EC","YC","C","uB","H","M","N","O","0","j","k","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","l","oB","pB","qB","rB","sB","P","Q","R","zB","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","","",""],E:"Opera",F:{"0":1390867200,"1":1401753600,"2":1405987200,"3":1409616000,"4":1413331200,"5":1417132800,"6":1422316800,"7":1425945600,"8":1430179200,"9":1433808000,G:1150761600,UC:1223424000,VC:1251763200,WC:1267488000,XC:1277942400,B:1292457600,tB:1302566400,EC:1309219200,YC:1323129600,C:1323129600,uB:1352073600,H:1372723200,M:1377561600,N:1381104000,O:1386288000,j:1393891200,k:1399334400,AB:1438646400,BB:1442448000,CB:1445904000,DB:1449100800,EB:1454371200,FB:1457308800,GB:1462320000,HB:1465344000,IB:1470096000,JB:1474329600,KB:1477267200,LB:1481587200,MB:1486425600,NB:1490054400,OB:1494374400,PB:1498003200,QB:1502236800,RB:1506470400,SB:1510099200,TB:1515024000,UB:1517961600,VB:1521676800,WB:1525910400,XB:1530144000,YB:1534982400,ZB:1537833600,aB:1543363200,bB:1548201600,cB:1554768000,dB:1561593600,eB:1566259200,fB:1570406400,gB:1573689600,hB:1578441600,iB:1583971200,jB:1587513600,kB:1592956800,lB:1595894400,mB:1600128000,nB:1603238400,l:1613520000,oB:1612224000,pB:1616544000,qB:1619568000,rB:1623715200,sB:1627948800,P:1631577600,Q:1633392000,R:1635984000,zB:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200},D:{G:"o",B:"o",C:"o",UC:"o",VC:"o",WC:"o",XC:"o",tB:"o",EC:"o",YC:"o",uB:"o"}},G:{A:{F:0.00318601,"2B":0,ZC:0,FC:0.00318601,aC:0.00477902,bC:0.00637202,cC:0.0175231,dC:0.0254881,eC:0.012744,fC:0.0541622,gC:0.00318601,hC:0.0684992,iC:0.0207091,jC:0.0223021,kC:0.0191161,lC:0.358426,mC:0.011151,nC:0.0207091,oC:0.0302671,pC:0.0908013,qC:0.237358,rC:0.430112,sC:0.136998,"5B":0.167266,"6B":0.191161,"7B":0.30745,"8B":0.831549,vB:0.933501,"9B":1.93709,AC:1.14696,BC:5.44011,CC:2.42455,DC:0.0525692},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2B","ZC","FC","aC","bC","cC","F","dC","eC","fC","gC","hC","iC","jC","kC","lC","mC","nC","oC","pC","qC","rC","sC","5B","6B","7B","8B","vB","9B","AC","BC","CC","DC","","",""],E:"Safari on iOS",F:{"2B":1270252800,ZC:1283904000,FC:1299628800,aC:1331078400,bC:1359331200,cC:1394409600,F:1410912000,dC:1413763200,eC:1442361600,fC:1458518400,gC:1473724800,hC:1490572800,iC:1505779200,jC:1522281600,kC:1537142400,lC:1553472000,mC:1568851200,nC:1572220800,oC:1580169600,pC:1585008000,qC:1600214400,rC:1619395200,sC:1632096000,"5B":1639353600,"6B":1647216000,"7B":1652659200,"8B":1658275200,vB:1662940800,"9B":1666569600,AC:1670889600,BC:1674432000,CC:1679875200,DC:1684368000}},H:{A:{tC:0.994689},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","tC","","",""],E:"Opera Mini",F:{tC:1426464000}},I:{A:{wB:0,I:0.0285433,D:0,uC:0,vC:0.00951444,wC:0,xC:0.0190289,FC:0.0951444,yC:0,zC:0.34252},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uC","vC","wC","wB","I","xC","FC","yC","zC","D","","",""],E:"Android Browser",F:{uC:1256515200,vC:1274313600,wC:1291593600,wB:1298332800,I:1318896000,xC:1341792000,FC:1374624000,yC:1386547200,zC:1401667200,D:1682985600}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,l:0.0111391,tB:0,EC:0,uB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","tB","EC","C","uB","l","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,tB:1314835200,EC:1318291200,C:1330300800,uB:1349740800,l:1673827200},D:{l:"webkit"}},L:{A:{D:39.6882},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Chrome for Android",F:{D:1682985600}},M:{A:{D:0.289068},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","","",""],E:"Firefox for Android",F:{D:1683590400}},N:{A:{A:0.0115934,B:0.022664},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{"0C":0.950589},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","0C","","",""],E:"UC Browser for Android",F:{"0C":1634688000},D:{"0C":"webkit"}},P:{A:{I:0.191027,j:2.06946,k:0,"1C":0.0103543,"2C":0.010304,"3C":0.0530632,"4C":0.0103584,"5C":0.0104443,"3B":0.0105043,"6C":0.0212253,"7C":0.0103982,"8C":0.0212253,"9C":0.0106126,AD:0.0106126,vB:0.0530632,BD:0.0530632,CD:0.0530632,DD:0.148577},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","1C","2C","3C","4C","5C","3B","6C","7C","8C","9C","AD","vB","BD","CD","DD","j","k","","",""],E:"Samsung Internet",F:{I:1461024000,"1C":1481846400,"2C":1509408000,"3C":1528329600,"4C":1546128000,"5C":1554163200,"3B":1567900800,"6C":1582588800,"7C":1593475200,"8C":1605657600,"9C":1618531200,AD:1629072000,vB:1640736000,BD:1651708800,CD:1659657600,DD:1667260800,j:1677369600,k:1684454400}},Q:{A:{"4B":0.127857},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4B","","",""],E:"QQ Browser",F:{"4B":1663718400}},R:{A:{ED:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","ED","","",""],E:"Baidu Browser",F:{ED:1663027200}},S:{A:{FD:0.066708,GD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","FD","GD","","",""],E:"KaiOS Browser",F:{FD:1527811200,GD:1631664000}}}; diff --git a/node_modules/caniuse-lite/data/browserVersions.js b/node_modules/caniuse-lite/data/browserVersions.js new file mode 100644 index 0000000..0759e01 --- /dev/null +++ b/node_modules/caniuse-lite/data/browserVersions.js @@ -0,0 +1 @@ +module.exports={"0":"19","1":"22","2":"23","3":"24","4":"25","5":"26","6":"27","7":"28","8":"29","9":"30",A:"10",B:"11",C:"12",D:"113",E:"7",F:"8",G:"9",H:"15",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"20",k:"21",l:"73",m:"100",n:"101",o:"102",p:"103",q:"104",r:"105",s:"106",t:"107",u:"108",v:"109",w:"110",x:"111",y:"112",z:"5",AB:"31",BB:"32",CB:"33",DB:"34",EB:"35",FB:"36",GB:"37",HB:"38",IB:"39",JB:"40",KB:"41",LB:"42",MB:"43",NB:"44",OB:"45",PB:"46",QB:"47",RB:"48",SB:"49",TB:"50",UB:"51",VB:"52",WB:"53",XB:"54",YB:"55",ZB:"56",aB:"57",bB:"58",cB:"60",dB:"62",eB:"63",fB:"64",gB:"65",hB:"66",iB:"67",jB:"68",kB:"69",lB:"70",mB:"71",nB:"72",oB:"74",pB:"75",qB:"76",rB:"77",sB:"78",tB:"11.1",uB:"12.1",vB:"16.0",wB:"3",xB:"59",yB:"61",zB:"82","0B":"114","1B":"115","2B":"3.2","3B":"10.1","4B":"13.1","5B":"15.2-15.3","6B":"15.4","7B":"15.5","8B":"15.6","9B":"16.1",AC:"16.2",BC:"16.3",CC:"16.4",DC:"16.5",EC:"11.5",FC:"4.2-4.3",GC:"5.5",HC:"2",IC:"3.5",JC:"3.6",KC:"116",LC:"3.1",MC:"5.1",NC:"6.1",OC:"7.1",PC:"9.1",QC:"14.1",RC:"15.1",SC:"16.6",TC:"TP",UC:"9.5-9.6",VC:"10.0-10.1",WC:"10.5",XC:"10.6",YC:"11.6",ZC:"4.0-4.1",aC:"5.0-5.1",bC:"6.0-6.1",cC:"7.0-7.1",dC:"8.1-8.4",eC:"9.0-9.2",fC:"9.3",gC:"10.0-10.2",hC:"10.3",iC:"11.0-11.2",jC:"11.3-11.4",kC:"12.0-12.1",lC:"12.2-12.5",mC:"13.0-13.1",nC:"13.2",oC:"13.3",pC:"13.4-13.7",qC:"14.0-14.4",rC:"14.5-14.8",sC:"15.0-15.1",tC:"all",uC:"2.1",vC:"2.2",wC:"2.3",xC:"4.1",yC:"4.4",zC:"4.4.3-4.4.4","0C":"13.4","1C":"5.0-5.4","2C":"6.2-6.4","3C":"7.2-7.4","4C":"8.2","5C":"9.2","6C":"11.1-11.2","7C":"12.0","8C":"13.0","9C":"14.0",AD:"15.0",BD:"17.0",CD:"18.0",DD:"19.0",ED:"13.18",FD:"2.5",GD:"3.0-3.1"}; diff --git a/node_modules/caniuse-lite/data/browsers.js b/node_modules/caniuse-lite/data/browsers.js new file mode 100644 index 0000000..04fbb50 --- /dev/null +++ b/node_modules/caniuse-lite/data/browsers.js @@ -0,0 +1 @@ +module.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}; diff --git a/node_modules/caniuse-lite/data/features.js b/node_modules/caniuse-lite/data/features.js new file mode 100644 index 0000000..f7404b3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features.js @@ -0,0 +1 @@ +module.exports={"aac":require("./features/aac"),"abortcontroller":require("./features/abortcontroller"),"ac3-ec3":require("./features/ac3-ec3"),"accelerometer":require("./features/accelerometer"),"addeventlistener":require("./features/addeventlistener"),"alternate-stylesheet":require("./features/alternate-stylesheet"),"ambient-light":require("./features/ambient-light"),"apng":require("./features/apng"),"array-find-index":require("./features/array-find-index"),"array-find":require("./features/array-find"),"array-flat":require("./features/array-flat"),"array-includes":require("./features/array-includes"),"arrow-functions":require("./features/arrow-functions"),"asmjs":require("./features/asmjs"),"async-clipboard":require("./features/async-clipboard"),"async-functions":require("./features/async-functions"),"atob-btoa":require("./features/atob-btoa"),"audio-api":require("./features/audio-api"),"audio":require("./features/audio"),"audiotracks":require("./features/audiotracks"),"autofocus":require("./features/autofocus"),"auxclick":require("./features/auxclick"),"av1":require("./features/av1"),"avif":require("./features/avif"),"background-attachment":require("./features/background-attachment"),"background-clip-text":require("./features/background-clip-text"),"background-img-opts":require("./features/background-img-opts"),"background-position-x-y":require("./features/background-position-x-y"),"background-repeat-round-space":require("./features/background-repeat-round-space"),"background-sync":require("./features/background-sync"),"battery-status":require("./features/battery-status"),"beacon":require("./features/beacon"),"beforeafterprint":require("./features/beforeafterprint"),"bigint":require("./features/bigint"),"blobbuilder":require("./features/blobbuilder"),"bloburls":require("./features/bloburls"),"border-image":require("./features/border-image"),"border-radius":require("./features/border-radius"),"broadcastchannel":require("./features/broadcastchannel"),"brotli":require("./features/brotli"),"calc":require("./features/calc"),"canvas-blending":require("./features/canvas-blending"),"canvas-text":require("./features/canvas-text"),"canvas":require("./features/canvas"),"ch-unit":require("./features/ch-unit"),"chacha20-poly1305":require("./features/chacha20-poly1305"),"channel-messaging":require("./features/channel-messaging"),"childnode-remove":require("./features/childnode-remove"),"classlist":require("./features/classlist"),"client-hints-dpr-width-viewport":require("./features/client-hints-dpr-width-viewport"),"clipboard":require("./features/clipboard"),"colr-v1":require("./features/colr-v1"),"colr":require("./features/colr"),"comparedocumentposition":require("./features/comparedocumentposition"),"console-basic":require("./features/console-basic"),"console-time":require("./features/console-time"),"const":require("./features/const"),"constraint-validation":require("./features/constraint-validation"),"contenteditable":require("./features/contenteditable"),"contentsecuritypolicy":require("./features/contentsecuritypolicy"),"contentsecuritypolicy2":require("./features/contentsecuritypolicy2"),"cookie-store-api":require("./features/cookie-store-api"),"cors":require("./features/cors"),"createimagebitmap":require("./features/createimagebitmap"),"credential-management":require("./features/credential-management"),"cryptography":require("./features/cryptography"),"css-all":require("./features/css-all"),"css-animation":require("./features/css-animation"),"css-any-link":require("./features/css-any-link"),"css-appearance":require("./features/css-appearance"),"css-at-counter-style":require("./features/css-at-counter-style"),"css-autofill":require("./features/css-autofill"),"css-backdrop-filter":require("./features/css-backdrop-filter"),"css-background-offsets":require("./features/css-background-offsets"),"css-backgroundblendmode":require("./features/css-backgroundblendmode"),"css-boxdecorationbreak":require("./features/css-boxdecorationbreak"),"css-boxshadow":require("./features/css-boxshadow"),"css-canvas":require("./features/css-canvas"),"css-caret-color":require("./features/css-caret-color"),"css-cascade-layers":require("./features/css-cascade-layers"),"css-case-insensitive":require("./features/css-case-insensitive"),"css-clip-path":require("./features/css-clip-path"),"css-color-adjust":require("./features/css-color-adjust"),"css-color-function":require("./features/css-color-function"),"css-conic-gradients":require("./features/css-conic-gradients"),"css-container-queries-style":require("./features/css-container-queries-style"),"css-container-queries":require("./features/css-container-queries"),"css-container-query-units":require("./features/css-container-query-units"),"css-containment":require("./features/css-containment"),"css-content-visibility":require("./features/css-content-visibility"),"css-counters":require("./features/css-counters"),"css-crisp-edges":require("./features/css-crisp-edges"),"css-cross-fade":require("./features/css-cross-fade"),"css-default-pseudo":require("./features/css-default-pseudo"),"css-descendant-gtgt":require("./features/css-descendant-gtgt"),"css-deviceadaptation":require("./features/css-deviceadaptation"),"css-dir-pseudo":require("./features/css-dir-pseudo"),"css-display-contents":require("./features/css-display-contents"),"css-element-function":require("./features/css-element-function"),"css-env-function":require("./features/css-env-function"),"css-exclusions":require("./features/css-exclusions"),"css-featurequeries":require("./features/css-featurequeries"),"css-file-selector-button":require("./features/css-file-selector-button"),"css-filter-function":require("./features/css-filter-function"),"css-filters":require("./features/css-filters"),"css-first-letter":require("./features/css-first-letter"),"css-first-line":require("./features/css-first-line"),"css-fixed":require("./features/css-fixed"),"css-focus-visible":require("./features/css-focus-visible"),"css-focus-within":require("./features/css-focus-within"),"css-font-palette":require("./features/css-font-palette"),"css-font-rendering-controls":require("./features/css-font-rendering-controls"),"css-font-stretch":require("./features/css-font-stretch"),"css-gencontent":require("./features/css-gencontent"),"css-gradients":require("./features/css-gradients"),"css-grid-animation":require("./features/css-grid-animation"),"css-grid":require("./features/css-grid"),"css-hanging-punctuation":require("./features/css-hanging-punctuation"),"css-has":require("./features/css-has"),"css-hyphens":require("./features/css-hyphens"),"css-image-orientation":require("./features/css-image-orientation"),"css-image-set":require("./features/css-image-set"),"css-in-out-of-range":require("./features/css-in-out-of-range"),"css-indeterminate-pseudo":require("./features/css-indeterminate-pseudo"),"css-initial-letter":require("./features/css-initial-letter"),"css-initial-value":require("./features/css-initial-value"),"css-lch-lab":require("./features/css-lch-lab"),"css-letter-spacing":require("./features/css-letter-spacing"),"css-line-clamp":require("./features/css-line-clamp"),"css-logical-props":require("./features/css-logical-props"),"css-marker-pseudo":require("./features/css-marker-pseudo"),"css-masks":require("./features/css-masks"),"css-matches-pseudo":require("./features/css-matches-pseudo"),"css-math-functions":require("./features/css-math-functions"),"css-media-interaction":require("./features/css-media-interaction"),"css-media-range-syntax":require("./features/css-media-range-syntax"),"css-media-resolution":require("./features/css-media-resolution"),"css-media-scripting":require("./features/css-media-scripting"),"css-mediaqueries":require("./features/css-mediaqueries"),"css-mixblendmode":require("./features/css-mixblendmode"),"css-motion-paths":require("./features/css-motion-paths"),"css-namespaces":require("./features/css-namespaces"),"css-nesting":require("./features/css-nesting"),"css-not-sel-list":require("./features/css-not-sel-list"),"css-nth-child-of":require("./features/css-nth-child-of"),"css-opacity":require("./features/css-opacity"),"css-optional-pseudo":require("./features/css-optional-pseudo"),"css-overflow-anchor":require("./features/css-overflow-anchor"),"css-overflow-overlay":require("./features/css-overflow-overlay"),"css-overflow":require("./features/css-overflow"),"css-overscroll-behavior":require("./features/css-overscroll-behavior"),"css-page-break":require("./features/css-page-break"),"css-paged-media":require("./features/css-paged-media"),"css-paint-api":require("./features/css-paint-api"),"css-placeholder-shown":require("./features/css-placeholder-shown"),"css-placeholder":require("./features/css-placeholder"),"css-print-color-adjust":require("./features/css-print-color-adjust"),"css-read-only-write":require("./features/css-read-only-write"),"css-rebeccapurple":require("./features/css-rebeccapurple"),"css-reflections":require("./features/css-reflections"),"css-regions":require("./features/css-regions"),"css-relative-colors":require("./features/css-relative-colors"),"css-repeating-gradients":require("./features/css-repeating-gradients"),"css-resize":require("./features/css-resize"),"css-revert-value":require("./features/css-revert-value"),"css-rrggbbaa":require("./features/css-rrggbbaa"),"css-scroll-behavior":require("./features/css-scroll-behavior"),"css-scroll-timeline":require("./features/css-scroll-timeline"),"css-scrollbar":require("./features/css-scrollbar"),"css-sel2":require("./features/css-sel2"),"css-sel3":require("./features/css-sel3"),"css-selection":require("./features/css-selection"),"css-shapes":require("./features/css-shapes"),"css-snappoints":require("./features/css-snappoints"),"css-sticky":require("./features/css-sticky"),"css-subgrid":require("./features/css-subgrid"),"css-supports-api":require("./features/css-supports-api"),"css-table":require("./features/css-table"),"css-text-align-last":require("./features/css-text-align-last"),"css-text-box-trim":require("./features/css-text-box-trim"),"css-text-indent":require("./features/css-text-indent"),"css-text-justify":require("./features/css-text-justify"),"css-text-orientation":require("./features/css-text-orientation"),"css-text-spacing":require("./features/css-text-spacing"),"css-textshadow":require("./features/css-textshadow"),"css-touch-action":require("./features/css-touch-action"),"css-transitions":require("./features/css-transitions"),"css-unicode-bidi":require("./features/css-unicode-bidi"),"css-unset-value":require("./features/css-unset-value"),"css-variables":require("./features/css-variables"),"css-when-else":require("./features/css-when-else"),"css-widows-orphans":require("./features/css-widows-orphans"),"css-width-stretch":require("./features/css-width-stretch"),"css-writing-mode":require("./features/css-writing-mode"),"css-zoom":require("./features/css-zoom"),"css3-attr":require("./features/css3-attr"),"css3-boxsizing":require("./features/css3-boxsizing"),"css3-colors":require("./features/css3-colors"),"css3-cursors-grab":require("./features/css3-cursors-grab"),"css3-cursors-newer":require("./features/css3-cursors-newer"),"css3-cursors":require("./features/css3-cursors"),"css3-tabsize":require("./features/css3-tabsize"),"currentcolor":require("./features/currentcolor"),"custom-elements":require("./features/custom-elements"),"custom-elementsv1":require("./features/custom-elementsv1"),"customevent":require("./features/customevent"),"datalist":require("./features/datalist"),"dataset":require("./features/dataset"),"datauri":require("./features/datauri"),"date-tolocaledatestring":require("./features/date-tolocaledatestring"),"declarative-shadow-dom":require("./features/declarative-shadow-dom"),"decorators":require("./features/decorators"),"details":require("./features/details"),"deviceorientation":require("./features/deviceorientation"),"devicepixelratio":require("./features/devicepixelratio"),"dialog":require("./features/dialog"),"dispatchevent":require("./features/dispatchevent"),"dnssec":require("./features/dnssec"),"do-not-track":require("./features/do-not-track"),"document-currentscript":require("./features/document-currentscript"),"document-evaluate-xpath":require("./features/document-evaluate-xpath"),"document-execcommand":require("./features/document-execcommand"),"document-policy":require("./features/document-policy"),"document-scrollingelement":require("./features/document-scrollingelement"),"documenthead":require("./features/documenthead"),"dom-manip-convenience":require("./features/dom-manip-convenience"),"dom-range":require("./features/dom-range"),"domcontentloaded":require("./features/domcontentloaded"),"dommatrix":require("./features/dommatrix"),"download":require("./features/download"),"dragndrop":require("./features/dragndrop"),"element-closest":require("./features/element-closest"),"element-from-point":require("./features/element-from-point"),"element-scroll-methods":require("./features/element-scroll-methods"),"eme":require("./features/eme"),"eot":require("./features/eot"),"es5":require("./features/es5"),"es6-class":require("./features/es6-class"),"es6-generators":require("./features/es6-generators"),"es6-module-dynamic-import":require("./features/es6-module-dynamic-import"),"es6-module":require("./features/es6-module"),"es6-number":require("./features/es6-number"),"es6-string-includes":require("./features/es6-string-includes"),"es6":require("./features/es6"),"eventsource":require("./features/eventsource"),"extended-system-fonts":require("./features/extended-system-fonts"),"feature-policy":require("./features/feature-policy"),"fetch":require("./features/fetch"),"fieldset-disabled":require("./features/fieldset-disabled"),"fileapi":require("./features/fileapi"),"filereader":require("./features/filereader"),"filereadersync":require("./features/filereadersync"),"filesystem":require("./features/filesystem"),"flac":require("./features/flac"),"flexbox-gap":require("./features/flexbox-gap"),"flexbox":require("./features/flexbox"),"flow-root":require("./features/flow-root"),"focusin-focusout-events":require("./features/focusin-focusout-events"),"font-family-system-ui":require("./features/font-family-system-ui"),"font-feature":require("./features/font-feature"),"font-kerning":require("./features/font-kerning"),"font-loading":require("./features/font-loading"),"font-size-adjust":require("./features/font-size-adjust"),"font-smooth":require("./features/font-smooth"),"font-unicode-range":require("./features/font-unicode-range"),"font-variant-alternates":require("./features/font-variant-alternates"),"font-variant-numeric":require("./features/font-variant-numeric"),"fontface":require("./features/fontface"),"form-attribute":require("./features/form-attribute"),"form-submit-attributes":require("./features/form-submit-attributes"),"form-validation":require("./features/form-validation"),"forms":require("./features/forms"),"fullscreen":require("./features/fullscreen"),"gamepad":require("./features/gamepad"),"geolocation":require("./features/geolocation"),"getboundingclientrect":require("./features/getboundingclientrect"),"getcomputedstyle":require("./features/getcomputedstyle"),"getelementsbyclassname":require("./features/getelementsbyclassname"),"getrandomvalues":require("./features/getrandomvalues"),"gyroscope":require("./features/gyroscope"),"hardwareconcurrency":require("./features/hardwareconcurrency"),"hashchange":require("./features/hashchange"),"heif":require("./features/heif"),"hevc":require("./features/hevc"),"hidden":require("./features/hidden"),"high-resolution-time":require("./features/high-resolution-time"),"history":require("./features/history"),"html-media-capture":require("./features/html-media-capture"),"html5semantic":require("./features/html5semantic"),"http-live-streaming":require("./features/http-live-streaming"),"http2":require("./features/http2"),"http3":require("./features/http3"),"iframe-sandbox":require("./features/iframe-sandbox"),"iframe-seamless":require("./features/iframe-seamless"),"iframe-srcdoc":require("./features/iframe-srcdoc"),"imagecapture":require("./features/imagecapture"),"ime":require("./features/ime"),"img-naturalwidth-naturalheight":require("./features/img-naturalwidth-naturalheight"),"import-maps":require("./features/import-maps"),"imports":require("./features/imports"),"indeterminate-checkbox":require("./features/indeterminate-checkbox"),"indexeddb":require("./features/indexeddb"),"indexeddb2":require("./features/indexeddb2"),"inline-block":require("./features/inline-block"),"innertext":require("./features/innertext"),"input-autocomplete-onoff":require("./features/input-autocomplete-onoff"),"input-color":require("./features/input-color"),"input-datetime":require("./features/input-datetime"),"input-email-tel-url":require("./features/input-email-tel-url"),"input-event":require("./features/input-event"),"input-file-accept":require("./features/input-file-accept"),"input-file-directory":require("./features/input-file-directory"),"input-file-multiple":require("./features/input-file-multiple"),"input-inputmode":require("./features/input-inputmode"),"input-minlength":require("./features/input-minlength"),"input-number":require("./features/input-number"),"input-pattern":require("./features/input-pattern"),"input-placeholder":require("./features/input-placeholder"),"input-range":require("./features/input-range"),"input-search":require("./features/input-search"),"input-selection":require("./features/input-selection"),"insert-adjacent":require("./features/insert-adjacent"),"insertadjacenthtml":require("./features/insertadjacenthtml"),"internationalization":require("./features/internationalization"),"intersectionobserver-v2":require("./features/intersectionobserver-v2"),"intersectionobserver":require("./features/intersectionobserver"),"intl-pluralrules":require("./features/intl-pluralrules"),"intrinsic-width":require("./features/intrinsic-width"),"jpeg2000":require("./features/jpeg2000"),"jpegxl":require("./features/jpegxl"),"jpegxr":require("./features/jpegxr"),"js-regexp-lookbehind":require("./features/js-regexp-lookbehind"),"json":require("./features/json"),"justify-content-space-evenly":require("./features/justify-content-space-evenly"),"kerning-pairs-ligatures":require("./features/kerning-pairs-ligatures"),"keyboardevent-charcode":require("./features/keyboardevent-charcode"),"keyboardevent-code":require("./features/keyboardevent-code"),"keyboardevent-getmodifierstate":require("./features/keyboardevent-getmodifierstate"),"keyboardevent-key":require("./features/keyboardevent-key"),"keyboardevent-location":require("./features/keyboardevent-location"),"keyboardevent-which":require("./features/keyboardevent-which"),"lazyload":require("./features/lazyload"),"let":require("./features/let"),"link-icon-png":require("./features/link-icon-png"),"link-icon-svg":require("./features/link-icon-svg"),"link-rel-dns-prefetch":require("./features/link-rel-dns-prefetch"),"link-rel-modulepreload":require("./features/link-rel-modulepreload"),"link-rel-preconnect":require("./features/link-rel-preconnect"),"link-rel-prefetch":require("./features/link-rel-prefetch"),"link-rel-preload":require("./features/link-rel-preload"),"link-rel-prerender":require("./features/link-rel-prerender"),"loading-lazy-attr":require("./features/loading-lazy-attr"),"localecompare":require("./features/localecompare"),"magnetometer":require("./features/magnetometer"),"matchesselector":require("./features/matchesselector"),"matchmedia":require("./features/matchmedia"),"mathml":require("./features/mathml"),"maxlength":require("./features/maxlength"),"mdn-css-unicode-bidi-isolate-override":require("./features/mdn-css-unicode-bidi-isolate-override"),"mdn-css-unicode-bidi-isolate":require("./features/mdn-css-unicode-bidi-isolate"),"mdn-css-unicode-bidi-plaintext":require("./features/mdn-css-unicode-bidi-plaintext"),"mdn-text-decoration-color":require("./features/mdn-text-decoration-color"),"mdn-text-decoration-line":require("./features/mdn-text-decoration-line"),"mdn-text-decoration-shorthand":require("./features/mdn-text-decoration-shorthand"),"mdn-text-decoration-style":require("./features/mdn-text-decoration-style"),"media-fragments":require("./features/media-fragments"),"mediacapture-fromelement":require("./features/mediacapture-fromelement"),"mediarecorder":require("./features/mediarecorder"),"mediasource":require("./features/mediasource"),"menu":require("./features/menu"),"meta-theme-color":require("./features/meta-theme-color"),"meter":require("./features/meter"),"midi":require("./features/midi"),"minmaxwh":require("./features/minmaxwh"),"mp3":require("./features/mp3"),"mpeg-dash":require("./features/mpeg-dash"),"mpeg4":require("./features/mpeg4"),"multibackgrounds":require("./features/multibackgrounds"),"multicolumn":require("./features/multicolumn"),"mutation-events":require("./features/mutation-events"),"mutationobserver":require("./features/mutationobserver"),"namevalue-storage":require("./features/namevalue-storage"),"native-filesystem-api":require("./features/native-filesystem-api"),"nav-timing":require("./features/nav-timing"),"netinfo":require("./features/netinfo"),"notifications":require("./features/notifications"),"object-entries":require("./features/object-entries"),"object-fit":require("./features/object-fit"),"object-observe":require("./features/object-observe"),"object-values":require("./features/object-values"),"objectrtc":require("./features/objectrtc"),"offline-apps":require("./features/offline-apps"),"offscreencanvas":require("./features/offscreencanvas"),"ogg-vorbis":require("./features/ogg-vorbis"),"ogv":require("./features/ogv"),"ol-reversed":require("./features/ol-reversed"),"once-event-listener":require("./features/once-event-listener"),"online-status":require("./features/online-status"),"opus":require("./features/opus"),"orientation-sensor":require("./features/orientation-sensor"),"outline":require("./features/outline"),"pad-start-end":require("./features/pad-start-end"),"page-transition-events":require("./features/page-transition-events"),"pagevisibility":require("./features/pagevisibility"),"passive-event-listener":require("./features/passive-event-listener"),"passwordrules":require("./features/passwordrules"),"path2d":require("./features/path2d"),"payment-request":require("./features/payment-request"),"pdf-viewer":require("./features/pdf-viewer"),"permissions-api":require("./features/permissions-api"),"permissions-policy":require("./features/permissions-policy"),"picture-in-picture":require("./features/picture-in-picture"),"picture":require("./features/picture"),"ping":require("./features/ping"),"png-alpha":require("./features/png-alpha"),"pointer-events":require("./features/pointer-events"),"pointer":require("./features/pointer"),"pointerlock":require("./features/pointerlock"),"portals":require("./features/portals"),"prefers-color-scheme":require("./features/prefers-color-scheme"),"prefers-reduced-motion":require("./features/prefers-reduced-motion"),"progress":require("./features/progress"),"promise-finally":require("./features/promise-finally"),"promises":require("./features/promises"),"proximity":require("./features/proximity"),"proxy":require("./features/proxy"),"publickeypinning":require("./features/publickeypinning"),"push-api":require("./features/push-api"),"queryselector":require("./features/queryselector"),"readonly-attr":require("./features/readonly-attr"),"referrer-policy":require("./features/referrer-policy"),"registerprotocolhandler":require("./features/registerprotocolhandler"),"rel-noopener":require("./features/rel-noopener"),"rel-noreferrer":require("./features/rel-noreferrer"),"rellist":require("./features/rellist"),"rem":require("./features/rem"),"requestanimationframe":require("./features/requestanimationframe"),"requestidlecallback":require("./features/requestidlecallback"),"resizeobserver":require("./features/resizeobserver"),"resource-timing":require("./features/resource-timing"),"rest-parameters":require("./features/rest-parameters"),"rtcpeerconnection":require("./features/rtcpeerconnection"),"ruby":require("./features/ruby"),"run-in":require("./features/run-in"),"same-site-cookie-attribute":require("./features/same-site-cookie-attribute"),"screen-orientation":require("./features/screen-orientation"),"script-async":require("./features/script-async"),"script-defer":require("./features/script-defer"),"scrollintoview":require("./features/scrollintoview"),"scrollintoviewifneeded":require("./features/scrollintoviewifneeded"),"sdch":require("./features/sdch"),"selection-api":require("./features/selection-api"),"server-timing":require("./features/server-timing"),"serviceworkers":require("./features/serviceworkers"),"setimmediate":require("./features/setimmediate"),"shadowdom":require("./features/shadowdom"),"shadowdomv1":require("./features/shadowdomv1"),"sharedarraybuffer":require("./features/sharedarraybuffer"),"sharedworkers":require("./features/sharedworkers"),"sni":require("./features/sni"),"spdy":require("./features/spdy"),"speech-recognition":require("./features/speech-recognition"),"speech-synthesis":require("./features/speech-synthesis"),"spellcheck-attribute":require("./features/spellcheck-attribute"),"sql-storage":require("./features/sql-storage"),"srcset":require("./features/srcset"),"stream":require("./features/stream"),"streams":require("./features/streams"),"stricttransportsecurity":require("./features/stricttransportsecurity"),"style-scoped":require("./features/style-scoped"),"subresource-bundling":require("./features/subresource-bundling"),"subresource-integrity":require("./features/subresource-integrity"),"svg-css":require("./features/svg-css"),"svg-filters":require("./features/svg-filters"),"svg-fonts":require("./features/svg-fonts"),"svg-fragment":require("./features/svg-fragment"),"svg-html":require("./features/svg-html"),"svg-html5":require("./features/svg-html5"),"svg-img":require("./features/svg-img"),"svg-smil":require("./features/svg-smil"),"svg":require("./features/svg"),"sxg":require("./features/sxg"),"tabindex-attr":require("./features/tabindex-attr"),"template-literals":require("./features/template-literals"),"template":require("./features/template"),"temporal":require("./features/temporal"),"testfeat":require("./features/testfeat"),"text-decoration":require("./features/text-decoration"),"text-emphasis":require("./features/text-emphasis"),"text-overflow":require("./features/text-overflow"),"text-size-adjust":require("./features/text-size-adjust"),"text-stroke":require("./features/text-stroke"),"textcontent":require("./features/textcontent"),"textencoder":require("./features/textencoder"),"tls1-1":require("./features/tls1-1"),"tls1-2":require("./features/tls1-2"),"tls1-3":require("./features/tls1-3"),"touch":require("./features/touch"),"transforms2d":require("./features/transforms2d"),"transforms3d":require("./features/transforms3d"),"trusted-types":require("./features/trusted-types"),"ttf":require("./features/ttf"),"typedarrays":require("./features/typedarrays"),"u2f":require("./features/u2f"),"unhandledrejection":require("./features/unhandledrejection"),"upgradeinsecurerequests":require("./features/upgradeinsecurerequests"),"url-scroll-to-text-fragment":require("./features/url-scroll-to-text-fragment"),"url":require("./features/url"),"urlsearchparams":require("./features/urlsearchparams"),"use-strict":require("./features/use-strict"),"user-select-none":require("./features/user-select-none"),"user-timing":require("./features/user-timing"),"variable-fonts":require("./features/variable-fonts"),"vector-effect":require("./features/vector-effect"),"vibration":require("./features/vibration"),"video":require("./features/video"),"videotracks":require("./features/videotracks"),"viewport-unit-variants":require("./features/viewport-unit-variants"),"viewport-units":require("./features/viewport-units"),"wai-aria":require("./features/wai-aria"),"wake-lock":require("./features/wake-lock"),"wasm":require("./features/wasm"),"wav":require("./features/wav"),"wbr-element":require("./features/wbr-element"),"web-animation":require("./features/web-animation"),"web-app-manifest":require("./features/web-app-manifest"),"web-bluetooth":require("./features/web-bluetooth"),"web-serial":require("./features/web-serial"),"web-share":require("./features/web-share"),"webauthn":require("./features/webauthn"),"webcodecs":require("./features/webcodecs"),"webgl":require("./features/webgl"),"webgl2":require("./features/webgl2"),"webgpu":require("./features/webgpu"),"webhid":require("./features/webhid"),"webkit-user-drag":require("./features/webkit-user-drag"),"webm":require("./features/webm"),"webnfc":require("./features/webnfc"),"webp":require("./features/webp"),"websockets":require("./features/websockets"),"webtransport":require("./features/webtransport"),"webusb":require("./features/webusb"),"webvr":require("./features/webvr"),"webvtt":require("./features/webvtt"),"webworkers":require("./features/webworkers"),"webxr":require("./features/webxr"),"will-change":require("./features/will-change"),"woff":require("./features/woff"),"woff2":require("./features/woff2"),"word-break":require("./features/word-break"),"wordwrap":require("./features/wordwrap"),"x-doc-messaging":require("./features/x-doc-messaging"),"x-frame-options":require("./features/x-frame-options"),"xhr2":require("./features/xhr2"),"xhtml":require("./features/xhtml"),"xhtmlsmil":require("./features/xhtmlsmil"),"xml-serializer":require("./features/xml-serializer")}; diff --git a/node_modules/caniuse-lite/data/features/aac.js b/node_modules/caniuse-lite/data/features/aac.js new file mode 100644 index 0000000..cb8e950 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/aac.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G","16":"A B"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"132":"D"},N:{"1":"A","2":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"132":"FD GD"}},B:6,C:"AAC audio file format"}; diff --git a/node_modules/caniuse-lite/data/features/abortcontroller.js b/node_modules/caniuse-lite/data/features/abortcontroller.js new file mode 100644 index 0000000..5282241 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/abortcontroller.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H"},C:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB IC JC"},D:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B","130":"C tB"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"AbortController & AbortSignal"}; diff --git a/node_modules/caniuse-lite/data/features/ac3-ec3.js b/node_modules/caniuse-lite/data/features/ac3-ec3.js new file mode 100644 index 0000000..c5bbef1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ac3-ec3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O","2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC","132":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E","132":"A"},K:{"2":"A B C l tB EC","132":"uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs"}; diff --git a/node_modules/caniuse-lite/data/features/accelerometer.js b/node_modules/caniuse-lite/data/features/accelerometer.js new file mode 100644 index 0000000..c2288c2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/accelerometer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","194":"bB xB cB yB dB eB fB gB hB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:4,C:"Accelerometer"}; diff --git a/node_modules/caniuse-lite/data/features/addeventlistener.js b/node_modules/caniuse-lite/data/features/addeventlistener.js new file mode 100644 index 0000000..c41460f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/addeventlistener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","130":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","257":"HC wB I z J IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"EventTarget.addEventListener()"}; diff --git a/node_modules/caniuse-lite/data/features/alternate-stylesheet.js b/node_modules/caniuse-lite/data/features/alternate-stylesheet.js new file mode 100644 index 0000000..a1dfac5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/alternate-stylesheet.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","2":"J E GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"G B C UC VC WC XC tB EC YC uB","16":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"16":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"2":"l","16":"A B C tB EC uB"},L:{"16":"D"},M:{"16":"D"},N:{"16":"A B"},O:{"16":"0C"},P:{"16":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"16":"ED"},S:{"1":"FD GD"}},B:1,C:"Alternate stylesheet"}; diff --git a/node_modules/caniuse-lite/data/features/ambient-light.js b/node_modules/caniuse-lite/data/features/ambient-light.js new file mode 100644 index 0000000..9001f8d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ambient-light.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K","132":"L H M N O","322":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB","194":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","322":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB UC VC WC XC tB EC YC uB","322":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"132":"FD GD"}},B:4,C:"Ambient Light Sensor"}; diff --git a/node_modules/caniuse-lite/data/features/apng.js b/node_modules/caniuse-lite/data/features/apng.js new file mode 100644 index 0000000..7e8bd73 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/apng.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC"},D:{"1":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC OC"},F:{"1":"B C PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"0 1 2 3 4 5 6 7 8 9 G H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Animated PNG (APNG)"}; diff --git a/node_modules/caniuse-lite/data/features/array-find-index.js b/node_modules/caniuse-lite/data/features/array-find-index.js new file mode 100644 index 0000000..edc5300 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-find-index.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","16":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Array.prototype.findIndex"}; diff --git a/node_modules/caniuse-lite/data/features/array-find.js b/node_modules/caniuse-lite/data/features/array-find.js new file mode 100644 index 0000000..e877b99 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-find.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C K L"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","16":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Array.prototype.find"}; diff --git a/node_modules/caniuse-lite/data/features/array-flat.js b/node_modules/caniuse-lite/data/features/array-flat.js new file mode 100644 index 0000000..9663384 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-flat.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB IC JC"},D:{"1":"kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB"},E:{"1":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B tB"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB UC VC WC XC tB EC YC uB"},G:{"1":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"flat & flatMap array methods"}; diff --git a/node_modules/caniuse-lite/data/features/array-includes.js b/node_modules/caniuse-lite/data/features/array-includes.js new file mode 100644 index 0000000..a783830 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/array-includes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB IC JC"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Array.prototype.includes"}; diff --git a/node_modules/caniuse-lite/data/features/arrow-functions.js b/node_modules/caniuse-lite/data/features/arrow-functions.js new file mode 100644 index 0000000..ea9ca9c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/arrow-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Arrow functions"}; diff --git a/node_modules/caniuse-lite/data/features/asmjs.js b/node_modules/caniuse-lite/data/features/asmjs.js new file mode 100644 index 0000000..9634e58 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/asmjs.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O","132":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","322":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"2":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k","132":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","132":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","132":"l"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"132":"0C"},P:{"2":"I","132":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"132":"4B"},R:{"132":"ED"},S:{"1":"FD GD"}},B:6,C:"asm.js"}; diff --git a/node_modules/caniuse-lite/data/features/async-clipboard.js b/node_modules/caniuse-lite/data/features/async-clipboard.js new file mode 100644 index 0000000..e58fd1c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/async-clipboard.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB IC JC","132":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","66":"bB xB cB yB"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC","260":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","260":"D"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I 1C 2C 3C 4C","260":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD","132":"GD"}},B:5,C:"Asynchronous Clipboard API"}; diff --git a/node_modules/caniuse-lite/data/features/async-functions.js b/node_modules/caniuse-lite/data/features/async-functions.js new file mode 100644 index 0000000..6eb1d83 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/async-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K","194":"L"},C:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC"},D:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC","514":"3B"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC","514":"hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"Async functions"}; diff --git a/node_modules/caniuse-lite/data/features/atob-btoa.js b/node_modules/caniuse-lite/data/features/atob-btoa.js new file mode 100644 index 0000000..411dcbc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/atob-btoa.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","2":"G UC VC","16":"WC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Base64 encoding and decoding"}; diff --git a/node_modules/caniuse-lite/data/features/audio-api.js b/node_modules/caniuse-lite/data/features/audio-api.js new file mode 100644 index 0000000..d60a5e6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/audio-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K","33":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB CB"},E:{"1":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J E F G A B C K L NC OC PC 3B tB uB 4B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 H M N O j k"},G:{"1":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Web Audio API"}; diff --git a/node_modules/caniuse-lite/data/features/audio.js b/node_modules/caniuse-lite/data/features/audio.js new file mode 100644 index 0000000..61de893 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/audio.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","132":"0 I z J E F G A B C K L H M N O IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G","4":"UC VC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","2":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Audio element"}; diff --git a/node_modules/caniuse-lite/data/features/audiotracks.js b/node_modules/caniuse-lite/data/features/audiotracks.js new file mode 100644 index 0000000..8eeeb88 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/audiotracks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O","322":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC","194":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB","322":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB UC VC WC XC tB EC YC uB","322":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","322":"l"},L:{"322":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"322":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"322":"4B"},R:{"322":"ED"},S:{"194":"FD GD"}},B:1,C:"Audio Tracks"}; diff --git a/node_modules/caniuse-lite/data/features/autofocus.js b/node_modules/caniuse-lite/data/features/autofocus.js new file mode 100644 index 0000000..acb6f1f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/autofocus.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"Autofocus attribute"}; diff --git a/node_modules/caniuse-lite/data/features/auxclick.js b/node_modules/caniuse-lite/data/features/auxclick.js new file mode 100644 index 0000000..c78950f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/auxclick.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC","129":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"Auxclick"}; diff --git a/node_modules/caniuse-lite/data/features/av1.js b/node_modules/caniuse-lite/data/features/av1.js new file mode 100644 index 0000000..b0b3f70 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/av1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N","194":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB IC JC","66":"YB ZB aB bB xB cB yB dB eB fB","260":"gB","516":"hB"},D:{"1":"lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB","66":"iB jB kB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1090":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:6,C:"AV1 video format"}; diff --git a/node_modules/caniuse-lite/data/features/avif.js b/node_modules/caniuse-lite/data/features/avif.js new file mode 100644 index 0000000..4bc1c42 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/avif.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB IC JC","194":"rB sB P Q R zB S T U V W X Y Z a b","257":"c d e f g h i m n o p q r s t u v w","2049":"x y"},D:{"1":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB","1796":"9B AC BC"},F:{"1":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB UC VC WC XC tB EC YC uB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B","1281":"vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"257":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:6,C:"AVIF image format"}; diff --git a/node_modules/caniuse-lite/data/features/background-attachment.js b/node_modules/caniuse-lite/data/features/background-attachment.js new file mode 100644 index 0000000..07edfdc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-attachment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C MC NC OC PC 3B tB uB 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"I K LC 2B 4B","2050":"L H QC RC 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","132":"G UC VC"},G:{"2":"2B ZC FC","772":"F aC bC cC dC eC fC gC hC iC jC kC lC","2050":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC yC zC","132":"xC FC"},J:{"260":"E A"},K:{"1":"B C l tB EC uB","132":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"2":"I","1028":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS background-attachment"}; diff --git a/node_modules/caniuse-lite/data/features/background-clip-text.js b/node_modules/caniuse-lite/data/features/background-clip-text.js new file mode 100644 index 0000000..3060e61 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-clip-text.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O","33":"C K L P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B","33":"I z J E F G A B C K MC NC OC PC 3B tB uB 4B"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC","33":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"16":"wB uC vC wC","33":"I D xC FC yC zC"},J:{"33":"E A"},K:{"16":"A B C tB EC uB","33":"l"},L:{"33":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"33":"0C"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"33":"4B"},R:{"33":"ED"},S:{"1":"FD GD"}},B:7,C:"Background-clip: text"}; diff --git a/node_modules/caniuse-lite/data/features/background-img-opts.js b/node_modules/caniuse-lite/data/features/background-img-opts.js new file mode 100644 index 0000000..ddf4b8b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-img-opts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","36":"JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","516":"I z J E F G A B C K L"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","772":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC","36":"VC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","4":"2B ZC FC bC","516":"aC"},H:{"132":"tC"},I:{"1":"D yC zC","36":"uC","516":"wB I xC FC","548":"vC wC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 Background-image options"}; diff --git a/node_modules/caniuse-lite/data/features/background-position-x-y.js b/node_modules/caniuse-lite/data/features/background-position-x-y.js new file mode 100644 index 0000000..9da6c24 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-position-x-y.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:7,C:"background-position-x & background-position-y"}; diff --git a/node_modules/caniuse-lite/data/features/background-repeat-round-space.js b/node_modules/caniuse-lite/data/features/background-repeat-round-space.js new file mode 100644 index 0000000..9847849 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-repeat-round-space.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F GC","132":"G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G H M N O UC VC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"CSS background-repeat round and space"}; diff --git a/node_modules/caniuse-lite/data/features/background-sync.js b/node_modules/caniuse-lite/data/features/background-sync.js new file mode 100644 index 0000000..d8db7f4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/background-sync.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D IC JC","16":"0B 1B"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Background Sync API"}; diff --git a/node_modules/caniuse-lite/data/features/battery-status.js b/node_modules/caniuse-lite/data/features/battery-status.js new file mode 100644 index 0000000..c012a43 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/battery-status.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"MB NB OB PB QB RB SB TB UB","2":"HC wB I z J E F G VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","132":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB","164":"A B C K L H"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB","66":"GB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD","2":"GD"}},B:4,C:"Battery Status API"}; diff --git a/node_modules/caniuse-lite/data/features/beacon.js b/node_modules/caniuse-lite/data/features/beacon.js new file mode 100644 index 0000000..a643ac7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/beacon.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Beacon API"}; diff --git a/node_modules/caniuse-lite/data/features/beforeafterprint.js b/node_modules/caniuse-lite/data/features/beforeafterprint.js new file mode 100644 index 0000000..7910eb4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/beforeafterprint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","16":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC"},D:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB UC VC WC XC tB EC YC uB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"0C"},P:{"2":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","16":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Printing Events"}; diff --git a/node_modules/caniuse-lite/data/features/bigint.js b/node_modules/caniuse-lite/data/features/bigint.js new file mode 100644 index 0000000..eb7acac --- /dev/null +++ b/node_modules/caniuse-lite/data/features/bigint.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB IC JC","194":"gB hB iB"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB 4B"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"BigInt"}; diff --git a/node_modules/caniuse-lite/data/features/blobbuilder.js b/node_modules/caniuse-lite/data/features/blobbuilder.js new file mode 100644 index 0000000..95d8bf9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/blobbuilder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","36":"J E F G A B C"},D:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E","36":"0 F G A B C K L H M N O"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B C UC VC WC XC tB EC YC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"D","2":"uC vC wC","36":"wB I xC FC yC zC"},J:{"1":"A","2":"E"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Blob constructing"}; diff --git a/node_modules/caniuse-lite/data/features/bloburls.js b/node_modules/caniuse-lite/data/features/bloburls.js new file mode 100644 index 0000000..bfcc888 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/bloburls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","129":"A B"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E","33":"0 1 F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB uC vC wC","33":"I xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Blob URLs"}; diff --git a/node_modules/caniuse-lite/data/features/border-image.js b/node_modules/caniuse-lite/data/features/border-image.js new file mode 100644 index 0000000..c5bcce4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/border-image.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","260":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","804":"I z J E F G A B C K L IC JC"},D:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","260":"UB VB WB XB YB","388":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","1412":"0 1 2 3 4 5 6 7 8 H M N O j k","1956":"I z J E F G A B C K L"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","129":"A B C K L H PC 3B tB uB 4B QC RC 5B","1412":"J E F G NC OC","1956":"I z LC 2B MC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC VC","260":"HB IB JB KB LB","388":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB","1796":"WC XC","1828":"B C tB EC YC uB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","129":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B","1412":"F bC cC dC eC","1956":"2B ZC FC aC"},H:{"1828":"tC"},I:{"1":"D","388":"yC zC","1956":"wB I uC vC wC xC FC"},J:{"1412":"A","1924":"E"},K:{"1":"l","2":"A","1828":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","260":"1C 2C","388":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","260":"FD"}},B:4,C:"CSS3 Border images"}; diff --git a/node_modules/caniuse-lite/data/features/border-radius.js b/node_modules/caniuse-lite/data/features/border-radius.js new file mode 100644 index 0000000..6bb8f30 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/border-radius.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","257":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","289":"wB IC JC","292":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"I"},E:{"1":"z E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"I LC 2B","129":"J MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"2B"},H:{"2":"tC"},I:{"1":"wB I D vC wC xC FC yC zC","33":"uC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","257":"FD"}},B:4,C:"CSS3 Border-radius (rounded corners)"}; diff --git a/node_modules/caniuse-lite/data/features/broadcastchannel.js b/node_modules/caniuse-lite/data/features/broadcastchannel.js new file mode 100644 index 0000000..d10c756 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/broadcastchannel.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB IC JC"},D:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB UC VC WC XC tB EC YC uB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"BroadcastChannel"}; diff --git a/node_modules/caniuse-lite/data/features/brotli.js b/node_modules/caniuse-lite/data/features/brotli.js new file mode 100644 index 0000000..68f13f2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/brotli.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB IC JC"},D:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","194":"SB","257":"TB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","513":"B C tB uB"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB","194":"FB GB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding"}; diff --git a/node_modules/caniuse-lite/data/features/calc.js b/node_modules/caniuse-lite/data/features/calc.js new file mode 100644 index 0000000..19d44ed --- /dev/null +++ b/node_modules/caniuse-lite/data/features/calc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","260":"G","516":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"I z J E F G A B C K L H"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N O","33":"0 1 2 3 4 j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"bC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","132":"yC zC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"calc() as CSS unit value"}; diff --git a/node_modules/caniuse-lite/data/features/canvas-blending.js b/node_modules/caniuse-lite/data/features/canvas-blending.js new file mode 100644 index 0000000..ff2f6c3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/canvas-blending.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O IC JC"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H M UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Canvas blend modes"}; diff --git a/node_modules/caniuse-lite/data/features/canvas-text.js b/node_modules/caniuse-lite/data/features/canvas-text.js new file mode 100644 index 0000000..6d449fd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/canvas-text.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","8":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","8":"G UC VC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Text API for Canvas"}; diff --git a/node_modules/caniuse-lite/data/features/canvas.js b/node_modules/caniuse-lite/data/features/canvas.js new file mode 100644 index 0000000..c0d52df --- /dev/null +++ b/node_modules/caniuse-lite/data/features/canvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","132":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"260":"tC"},I:{"1":"wB I D xC FC yC zC","132":"uC vC wC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Canvas (basic support)"}; diff --git a/node_modules/caniuse-lite/data/features/ch-unit.js b/node_modules/caniuse-lite/data/features/ch-unit.js new file mode 100644 index 0000000..b8ec8b3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ch-unit.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","132":"G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"ch (character) unit"}; diff --git a/node_modules/caniuse-lite/data/features/chacha20-poly1305.js b/node_modules/caniuse-lite/data/features/chacha20-poly1305.js new file mode 100644 index 0000000..4c70b09 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/chacha20-poly1305.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB","129":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC","16":"zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS"}; diff --git a/node_modules/caniuse-lite/data/features/channel-messaging.js b/node_modules/caniuse-lite/data/features/channel-messaging.js new file mode 100644 index 0000000..749151b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/channel-messaging.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","2":"G UC VC","16":"WC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Channel messaging"}; diff --git a/node_modules/caniuse-lite/data/features/childnode-remove.js b/node_modules/caniuse-lite/data/features/childnode-remove.js new file mode 100644 index 0000000..bbd7d6a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/childnode-remove.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"ChildNode.remove()"}; diff --git a/node_modules/caniuse-lite/data/features/classlist.js b/node_modules/caniuse-lite/data/features/classlist.js new file mode 100644 index 0000000..f8e0f1f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/classlist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J E F G GC","1924":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"HC wB IC","516":"3 4","772":"0 1 2 I z J E F G A B C K L H M N O j k JC"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"I z J E","516":"3 4 5 6","772":"2","900":"0 1 F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z LC 2B","900":"J MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","8":"G B UC VC WC XC tB","900":"C EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC","900":"aC bC"},H:{"900":"tC"},I:{"1":"D yC zC","8":"uC vC wC","900":"wB I xC FC"},J:{"1":"A","900":"E"},K:{"1":"l","8":"A B","900":"C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"900":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"classList (DOMTokenList)"}; diff --git a/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js b/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js new file mode 100644 index 0000000..41728c0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width"}; diff --git a/node_modules/caniuse-lite/data/features/clipboard.js b/node_modules/caniuse-lite/data/features/clipboard.js new file mode 100644 index 0000000..4cf717e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/clipboard.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2436":"J E F G A B GC"},B:{"260":"N O","2436":"C K L H M","8196":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC","772":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB","4100":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"I z J E F G A B C","2564":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB","8196":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","10244":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B","2308":"A B 3B tB","2820":"I z J E F G MC NC OC PC"},F:{"2":"G B UC VC WC XC tB EC YC","16":"C","516":"uB","2564":"0 1 2 3 4 5 6 7 8 H M N O j k","8196":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","10244":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},G:{"1":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","2820":"F aC bC cC dC eC fC gC hC iC jC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","260":"D","2308":"yC zC"},J:{"2":"E","2308":"A"},K:{"2":"A B C tB EC","16":"uB","8196":"l"},L:{"8196":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"8196":"0C"},P:{"2052":"1C 2C","2308":"I","8196":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"8196":"4B"},R:{"8196":"ED"},S:{"4100":"FD GD"}},B:5,C:"Synchronous Clipboard API"}; diff --git a/node_modules/caniuse-lite/data/features/colr-v1.js b/node_modules/caniuse-lite/data/features/colr-v1.js new file mode 100644 index 0000000..44ade95 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/colr-v1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g"},C:{"1":"t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g IC JC","258":"h i m n o p q","578":"r s"},D:{"1":"h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y","194":"Z a b c d e f g"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"2":"0C"},P:{"1":"j k CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"COLR/CPAL(v1) Font Formats"}; diff --git a/node_modules/caniuse-lite/data/features/colr.js b/node_modules/caniuse-lite/data/features/colr.js new file mode 100644 index 0000000..a6fd3e2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/colr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","257":"G A B"},B:{"1":"C K L H M N O","513":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB","513":"mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","129":"B C K tB uB 4B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB UC VC WC XC tB EC YC uB","513":"bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"COLR/CPAL(v0) Font Formats"}; diff --git a/node_modules/caniuse-lite/data/features/comparedocumentposition.js b/node_modules/caniuse-lite/data/features/comparedocumentposition.js new file mode 100644 index 0000000..b89fc5d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/comparedocumentposition.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC wB IC JC"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 H M N O j k"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z J LC 2B","132":"E F G NC OC PC","260":"MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","16":"G B UC VC WC XC tB EC","132":"H M"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B","132":"F ZC FC aC bC cC dC eC fC"},H:{"1":"tC"},I:{"1":"D yC zC","16":"uC vC","132":"wB I wC xC FC"},J:{"132":"E A"},K:{"1":"C l uB","16":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Node.compareDocumentPosition()"}; diff --git a/node_modules/caniuse-lite/data/features/console-basic.js b/node_modules/caniuse-lite/data/features/console-basic.js new file mode 100644 index 0000000..889e50b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/console-basic.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E GC","132":"F G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G UC VC WC XC"},G:{"1":"2B ZC FC aC","513":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"4097":"tC"},I:{"1025":"wB I D uC vC wC xC FC yC zC"},J:{"258":"E A"},K:{"2":"A","258":"B C tB EC uB","1025":"l"},L:{"1025":"D"},M:{"2049":"D"},N:{"258":"A B"},O:{"258":"0C"},P:{"1025":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1025":"ED"},S:{"1":"FD GD"}},B:1,C:"Basic console logging functions"}; diff --git a/node_modules/caniuse-lite/data/features/console-time.js b/node_modules/caniuse-lite/data/features/console-time.js new file mode 100644 index 0000000..53ac5b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/console-time.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G UC VC WC XC","16":"B"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"l","16":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"console.time and console.timeEnd"}; diff --git a/node_modules/caniuse-lite/data/features/const.js b/node_modules/caniuse-lite/data/features/const.js new file mode 100644 index 0000000..aa7b5df --- /dev/null +++ b/node_modules/caniuse-lite/data/features/const.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","2052":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"HC wB I z J E F G A B C IC JC","260":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","260":"0 I z J E F G A B C K L H M N O j","772":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB","1028":"KB LB MB NB OB PB QB RB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","260":"I z A LC 2B 3B","772":"J E F G MC NC OC PC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC","132":"B VC WC XC tB EC","644":"C YC uB","772":"0 1 2 3 4 5 6 H M N O j k","1028":"7 8 9 AB BB CB DB EB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","260":"2B ZC FC gC hC","772":"F aC bC cC dC eC fC"},H:{"644":"tC"},I:{"1":"D","16":"uC vC","260":"wC","772":"wB I xC FC yC zC"},J:{"772":"E A"},K:{"1":"l","132":"A B tB EC","644":"C uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","1028":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"const"}; diff --git a/node_modules/caniuse-lite/data/features/constraint-validation.js b/node_modules/caniuse-lite/data/features/constraint-validation.js new file mode 100644 index 0000000..4674c7a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/constraint-validation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","900":"A B"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","388":"L H M","900":"C K"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","260":"SB TB","388":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","900":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","388":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB","900":"0 1 2 3 H M N O j k"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B","388":"F G OC PC","900":"J E MC NC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G B UC VC WC XC tB EC","388":"0 1 2 3 4 5 H M N O j k","900":"C YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC","388":"F cC dC eC fC","900":"aC bC"},H:{"2":"tC"},I:{"1":"D","16":"wB uC vC wC","388":"yC zC","900":"I xC FC"},J:{"16":"E","388":"A"},K:{"1":"l","16":"A B tB EC","900":"C uB"},L:{"1":"D"},M:{"1":"D"},N:{"900":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","388":"FD"}},B:1,C:"Constraint Validation API"}; diff --git a/node_modules/caniuse-lite/data/features/contenteditable.js b/node_modules/caniuse-lite/data/features/contenteditable.js new file mode 100644 index 0000000..228d676 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/contenteditable.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC","4":"wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"contenteditable attribute (basic support)"}; diff --git a/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js b/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js new file mode 100644 index 0000000..6702e75 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","129":"0 1 I z J E F G A B C K L H M N O j k"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K","257":"0 1 2 3 L H M N O j k"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B","257":"J NC","260":"MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","257":"bC","260":"aC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E","257":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Content Security Policy 1.0"}; diff --git a/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js b/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js new file mode 100644 index 0000000..c2fdf7d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","4100":"H M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k IC JC","132":"AB BB CB DB","260":"EB","516":"FB GB HB IB JB KB LB MB NB"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB","1028":"FB GB HB","2052":"IB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 G B C H M N O j k UC VC WC XC tB EC YC uB","1028":"2 3 4","2052":"5"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Content Security Policy Level 2"}; diff --git a/node_modules/caniuse-lite/data/features/cookie-store-api.js b/node_modules/caniuse-lite/data/features/cookie-store-api.js new file mode 100644 index 0000000..c699c70 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/cookie-store-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","194":"P Q R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB","194":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UC VC WC XC tB EC YC uB","194":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Cookie Store API"}; diff --git a/node_modules/caniuse-lite/data/features/cors.js b/node_modules/caniuse-lite/data/features/cors.js new file mode 100644 index 0000000..8ed6a74 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/cors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E GC","132":"A","260":"F G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB","1025":"yB dB eB fB gB hB iB jB kB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"I z J E F G A B C"},E:{"2":"LC 2B","513":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","644":"I z MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC"},G:{"513":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","644":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"D yC zC","132":"wB I uC vC wC xC FC"},J:{"1":"A","132":"E"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","132":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Cross-Origin Resource Sharing"}; diff --git a/node_modules/caniuse-lite/data/features/createimagebitmap.js b/node_modules/caniuse-lite/data/features/createimagebitmap.js new file mode 100644 index 0000000..29790ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/createimagebitmap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB IC JC","1028":"c d e f g","3076":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b","8196":"h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","132":"TB UB","260":"VB WB","516":"XB YB ZB aB bB"},E:{"2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B QC","4100":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB UC VC WC XC tB EC YC uB","132":"GB HB","260":"IB JB","516":"KB LB MB NB OB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC","4100":"sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"8196":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","16":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"3076":"FD GD"}},B:1,C:"createImageBitmap"}; diff --git a/node_modules/caniuse-lite/data/features/credential-management.js b/node_modules/caniuse-lite/data/features/credential-management.js new file mode 100644 index 0000000..e386ada --- /dev/null +++ b/node_modules/caniuse-lite/data/features/credential-management.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","66":"RB SB TB","129":"UB VB WB XB YB ZB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB UC VC WC XC tB EC YC uB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"Credential Management API"}; diff --git a/node_modules/caniuse-lite/data/features/cryptography.js b/node_modules/caniuse-lite/data/features/cryptography.js new file mode 100644 index 0000000..9c4c1f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/cryptography.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F G A","164":"B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","513":"C K L H M N O"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB IC JC","66":"BB CB"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z J E LC 2B MC NC","289":"F G A OC PC 3B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","8":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC aC bC cC","289":"F dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","8":"wB I uC vC wC xC FC yC zC"},J:{"8":"E A"},K:{"1":"l","8":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","164":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Web Cryptography"}; diff --git a/node_modules/caniuse-lite/data/features/css-all.js b/node_modules/caniuse-lite/data/features/css-all.js new file mode 100644 index 0000000..9843044 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-all.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC"},H:{"2":"tC"},I:{"1":"D zC","2":"wB I uC vC wC xC FC yC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS all property"}; diff --git a/node_modules/caniuse-lite/data/features/css-animation.js b/node_modules/caniuse-lite/data/features/css-animation.js new file mode 100644 index 0000000..61e6b58 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I IC JC","33":"z J E F G A B C K L H"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B","33":"J E F MC NC OC","292":"I z"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC","33":"0 1 2 3 4 5 6 7 8 C H M N O j k"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"F bC cC dC","164":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"D","33":"I xC FC yC zC","164":"wB uC vC wC"},J:{"33":"E A"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS Animation"}; diff --git a/node_modules/caniuse-lite/data/features/css-any-link.js b/node_modules/caniuse-lite/data/features/css-any-link.js new file mode 100644 index 0000000..8c0bb25 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-any-link.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC","33":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB IC JC"},D:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z J LC 2B MC","33":"E F NC OC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC","33":"F bC cC dC"},H:{"2":"tC"},I:{"1":"D","16":"wB I uC vC wC xC FC","33":"yC zC"},J:{"16":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","16":"I","33":"1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:5,C:"CSS :any-link selector"}; diff --git a/node_modules/caniuse-lite/data/features/css-appearance.js b/node_modules/caniuse-lite/data/features/css-appearance.js new file mode 100644 index 0000000..c2828d0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-appearance.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","33":"S","164":"P Q R","388":"C K L H M N O"},C:{"1":"Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","164":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","676":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB IC JC"},D:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"S","164":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","164":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"lB mB nB","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","164":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","164":"wB I uC vC wC xC FC yC zC"},J:{"164":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","388":"B"},O:{"164":"0C"},P:{"164":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"164":"4B"},R:{"1":"ED"},S:{"1":"GD","164":"FD"}},B:5,C:"CSS Appearance"}; diff --git a/node_modules/caniuse-lite/data/features/css-at-counter-style.js b/node_modules/caniuse-lite/data/features/css-at-counter-style.js new file mode 100644 index 0000000..7378d56 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-at-counter-style.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z","132":"a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC","132":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z","132":"a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","4":"TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB UC VC WC XC tB EC YC uB","132":"rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","132":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","132":"l"},L:{"132":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD","132":"j k vB BD CD DD"},Q:{"2":"4B"},R:{"132":"ED"},S:{"132":"FD GD"}},B:4,C:"CSS Counter Styles"}; diff --git a/node_modules/caniuse-lite/data/features/css-autofill.js b/node_modules/caniuse-lite/data/features/css-autofill.js new file mode 100644 index 0000000..e2c1e7b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-autofill.js @@ -0,0 +1 @@ +module.exports={A:{D:{"33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},L:{"33":"D"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U IC JC"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},K:{"2":"A B C tB EC uB","33":"l"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"TC","33":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B QC"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},I:{"2":"wB I uC vC wC xC FC","33":"D yC zC"}},B:6,C:":autofill CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-backdrop-filter.js b/node_modules/caniuse-lite/data/features/css-backdrop-filter.js new file mode 100644 index 0000000..12e7e72 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-backdrop-filter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M","257":"N O"},C:{"1":"p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB IC JC","578":"lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o"},D:{"1":"qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB"},E:{"2":"I z J E F LC 2B MC NC OC","33":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB UC VC WC XC tB EC YC uB","194":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"F 2B ZC FC aC bC cC dC","33":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 7C 8C 9C AD vB BD CD DD","2":"I","194":"1C 2C 3C 4C 5C 3B 6C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS Backdrop Filter"}; diff --git a/node_modules/caniuse-lite/data/features/css-background-offsets.js b/node_modules/caniuse-lite/data/features/css-background-offsets.js new file mode 100644 index 0000000..a0547f1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-background-offsets.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C IC JC"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS background-position edge offsets"}; diff --git a/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js b/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js new file mode 100644 index 0000000..e31ddd7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB","260":"PB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC","132":"F G A OC PC"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 G B C H M N O j k UC VC WC XC tB EC YC uB","260":"CB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","132":"F dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS background-blend-mode"}; diff --git a/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js b/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js new file mode 100644 index 0000000..852ef9d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","164":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB IC JC"},D:{"2":"0 I z J E F G A B C K L H M N O j k","164":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J LC 2B MC","164":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G UC VC WC XC","129":"B C tB EC YC uB","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"2B ZC FC aC bC","164":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"132":"tC"},I:{"2":"wB I uC vC wC xC FC","164":"D yC zC"},J:{"2":"E","164":"A"},K:{"2":"A","129":"B C tB EC uB","164":"l"},L:{"164":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"0C"},P:{"164":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"164":"4B"},R:{"164":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS box-decoration-break"}; diff --git a/node_modules/caniuse-lite/data/features/css-boxshadow.js b/node_modules/caniuse-lite/data/features/css-boxshadow.js new file mode 100644 index 0000000..d434b3e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-boxshadow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","33":"IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"I z J E F G"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"z","164":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"ZC FC","164":"2B"},H:{"2":"tC"},I:{"1":"I D xC FC yC zC","164":"wB uC vC wC"},J:{"1":"A","33":"E"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 Box-shadow"}; diff --git a/node_modules/caniuse-lite/data/features/css-canvas.js b/node_modules/caniuse-lite/data/features/css-canvas.js new file mode 100644 index 0000000..93fb3bb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-canvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"2":"LC 2B","33":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB"},G:{"33":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"D","33":"wB I uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","33":"I"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS Canvas Drawings"}; diff --git a/node_modules/caniuse-lite/data/features/css-caret-color.js b/node_modules/caniuse-lite/data/features/css-caret-color.js new file mode 100644 index 0000000..a8dfafe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-caret-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC"},D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:2,C:"CSS caret-color"}; diff --git a/node_modules/caniuse-lite/data/features/css-cascade-layers.js b/node_modules/caniuse-lite/data/features/css-cascade-layers.js new file mode 100644 index 0000000..419791d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-cascade-layers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e","322":"f g h"},C:{"1":"g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c IC JC","194":"d e f"},D:{"1":"i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e","322":"f g h"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U UC VC WC XC tB EC YC uB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"CSS Cascade Layers"}; diff --git a/node_modules/caniuse-lite/data/features/css-case-insensitive.js b/node_modules/caniuse-lite/data/features/css-case-insensitive.js new file mode 100644 index 0000000..7114ec9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-case-insensitive.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Case-insensitive CSS attribute selectors"}; diff --git a/node_modules/caniuse-lite/data/features/css-clip-path.js b/node_modules/caniuse-lite/data/features/css-clip-path.js new file mode 100644 index 0000000..05dcdff --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-clip-path.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N","260":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","3138":"O"},C:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","132":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC","644":"QB RB SB TB UB VB WB"},D:{"2":"0 1 2 I z J E F G A B C K L H M N O j k","260":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","292":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"2":"I z J LC 2B MC NC","260":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","292":"E F G A B C K OC PC 3B tB uB"},F:{"2":"G B C UC VC WC XC tB EC YC uB","260":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","292":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB"},G:{"2":"2B ZC FC aC bC","260":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","292":"F cC dC eC fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","260":"D","292":"yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","260":"l"},L:{"260":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"260":"0C"},P:{"292":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"260":"4B"},R:{"260":"ED"},S:{"1":"GD","644":"FD"}},B:4,C:"CSS clip-path property (for HTML)"}; diff --git a/node_modules/caniuse-lite/data/features/css-color-adjust.js b/node_modules/caniuse-lite/data/features/css-color-adjust.js new file mode 100644 index 0000000..a6313a6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC"},D:{"16":"I z J E F G A B C K L H M N O","33":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","16":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"16":"wB I uC vC wC xC FC yC zC","33":"D"},J:{"16":"E A"},K:{"2":"A B C tB EC uB","33":"l"},L:{"16":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"16":"0C"},P:{"16":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"33":"4B"},R:{"16":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS print-color-adjust"}; diff --git a/node_modules/caniuse-lite/data/features/css-color-function.js b/node_modules/caniuse-lite/data/features/css-color-function.js new file mode 100644 index 0000000..fb16005 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-color-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t","322":"u v w"},C:{"1":"D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w IC JC","578":"x y"},D:{"1":"x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t","322":"u v w"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC","132":"B C K L 3B tB uB 4B QC"},F:{"1":"h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d UC VC WC XC tB EC YC uB","322":"e f g"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC","132":"hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"CSS color() function"}; diff --git a/node_modules/caniuse-lite/data/features/css-conic-gradients.js b/node_modules/caniuse-lite/data/features/css-conic-gradients.js new file mode 100644 index 0000000..8051c84 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-conic-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB IC JC","578":"pB qB rB sB P Q R zB"},D:{"1":"kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","194":"xB cB yB dB eB fB gB hB iB jB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB UC VC WC XC tB EC YC uB","194":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS Conical Gradients"}; diff --git a/node_modules/caniuse-lite/data/features/css-container-queries-style.js b/node_modules/caniuse-lite/data/features/css-container-queries-style.js new file mode 100644 index 0000000..a5b27e3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-container-queries-style.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s","194":"t u v w","260":"x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s","194":"t u v w","260":"x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b UC VC WC XC tB EC YC uB","194":"c d e f g","260":"h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","260":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","194":"l"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Container Style Queries"}; diff --git a/node_modules/caniuse-lite/data/features/css-container-queries.js b/node_modules/caniuse-lite/data/features/css-container-queries.js new file mode 100644 index 0000000..b560497 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-container-queries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q","516":"r"},C:{"1":"w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v IC JC"},D:{"1":"s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a","194":"c d e f g h i m n o p q","450":"b","516":"r"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB UC VC WC XC tB EC YC uB","194":"P Q R zB S T U V W X Y Z","516":"a b c"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Container Queries (Size)"}; diff --git a/node_modules/caniuse-lite/data/features/css-container-query-units.js b/node_modules/caniuse-lite/data/features/css-container-query-units.js new file mode 100644 index 0000000..b35075d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-container-query-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q"},C:{"1":"w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v IC JC"},D:{"1":"r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b","194":"n o p q","450":"c d e f g h i m"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB UC VC WC XC tB EC YC uB","194":"P Q R zB S T U V W X Y Z"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Container Query Units"}; diff --git a/node_modules/caniuse-lite/data/features/css-containment.js b/node_modules/caniuse-lite/data/features/css-containment.js new file mode 100644 index 0000000..3376b6a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-containment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB IC JC","194":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB"},D:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","66":"UB"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB UC VC WC XC tB EC YC uB","66":"HB IB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","194":"FD"}},B:2,C:"CSS Containment"}; diff --git a/node_modules/caniuse-lite/data/features/css-content-visibility.js b/node_modules/caniuse-lite/data/features/css-content-visibility.js new file mode 100644 index 0000000..cd901ff --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-content-visibility.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u IC JC","194":"v w x y D 0B 1B"},D:{"1":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS content-visibility"}; diff --git a/node_modules/caniuse-lite/data/features/css-counters.js b/node_modules/caniuse-lite/data/features/css-counters.js new file mode 100644 index 0000000..fae2059 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-counters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","2":"J E GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS Counters"}; diff --git a/node_modules/caniuse-lite/data/features/css-crisp-edges.js b/node_modules/caniuse-lite/data/features/css-crisp-edges.js new file mode 100644 index 0000000..1344f01 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-crisp-edges.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J GC","2340":"E F G A B"},B:{"2":"C K L H M N O","1025":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","513":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b","545":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB","1025":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","164":"J","4644":"E F G NC OC PC"},F:{"2":"0 1 2 3 4 5 6 G B H M N O j k UC VC WC XC tB EC","545":"C YC uB","1025":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","4260":"aC bC","4644":"F cC dC eC fC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","1025":"D"},J:{"2":"E","4260":"A"},K:{"2":"A B tB EC","545":"C uB","1025":"l"},L:{"1025":"D"},M:{"1":"D"},N:{"2340":"A B"},O:{"1025":"0C"},P:{"1025":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1025":"4B"},R:{"1025":"ED"},S:{"1":"GD","4097":"FD"}},B:4,C:"Crisp edges/pixelated images"}; diff --git a/node_modules/caniuse-lite/data/features/css-cross-fade.js b/node_modules/caniuse-lite/data/features/css-cross-fade.js new file mode 100644 index 0000000..5f30d25 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-cross-fade.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"I z J E F G A B C K L H M","33":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B","33":"J E F G MC NC OC PC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","33":"F aC bC cC dC eC fC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","33":"D yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","33":"l"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"0C"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"33":"4B"},R:{"33":"ED"},S:{"2":"FD GD"}},B:4,C:"CSS Cross-Fade Function"}; diff --git a/node_modules/caniuse-lite/data/features/css-default-pseudo.js b/node_modules/caniuse-lite/data/features/css-default-pseudo.js new file mode 100644 index 0000000..16f69eb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-default-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC wB IC JC"},D:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B","132":"J E F G A MC NC OC PC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G B UC VC WC XC tB EC","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB","260":"C YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC bC","132":"F cC dC eC fC gC"},H:{"260":"tC"},I:{"1":"D","16":"wB uC vC wC","132":"I xC FC yC zC"},J:{"16":"E","132":"A"},K:{"1":"l","16":"A B C tB EC","260":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","132":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:":default CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js b/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js new file mode 100644 index 0000000..4e65de9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"B","2":"I z J E F G A C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Explicit descendant combinator >>"}; diff --git a/node_modules/caniuse-lite/data/features/css-deviceadaptation.js b/node_modules/caniuse-lite/data/features/css-deviceadaptation.js new file mode 100644 index 0000000..70d8f57 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-deviceadaptation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","164":"A B"},B:{"66":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","164":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k","66":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB UC VC WC XC tB EC YC uB","66":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"292":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A l","292":"B C tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"164":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"66":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Device Adaptation"}; diff --git a/node_modules/caniuse-lite/data/features/css-dir-pseudo.js b/node_modules/caniuse-lite/data/features/css-dir-pseudo.js new file mode 100644 index 0000000..7598fb4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-dir-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q","194":"r s t u v w x y D"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M IC JC","33":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z","194":"a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z UC VC WC XC tB EC YC uB","194":"a b c d e f g h i"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"GD","33":"FD"}},B:5,C:":dir() CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-display-contents.js b/node_modules/caniuse-lite/data/features/css-display-contents.js new file mode 100644 index 0000000..21bd259 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-display-contents.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","132":"P Q R S T U V W X","260":"Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB IC JC","132":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB","260":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","132":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X","194":"bB xB cB yB dB eB fB","260":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B LC 2B MC NC OC PC 3B","132":"C K L H tB uB 4B QC RC 5B 6B 7B 8B","516":"9B AC BC CC DC SC TC","772":"vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB UC VC WC XC tB EC YC uB","132":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB","260":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC","132":"jC kC lC mC nC oC","260":"pC qC rC sC 5B 6B 7B 8B","772":"vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","260":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","260":"l"},L:{"260":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"132":"0C"},P:{"2":"I 1C 2C 3C 4C","132":"5C 3B 6C 7C 8C 9C","260":"j k AD vB BD CD DD"},Q:{"132":"4B"},R:{"260":"ED"},S:{"132":"FD","260":"GD"}},B:4,C:"CSS display: contents"}; diff --git a/node_modules/caniuse-lite/data/features/css-element-function.js b/node_modules/caniuse-lite/data/features/css-element-function.js new file mode 100644 index 0000000..6cbe2f3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-element-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","164":"HC wB IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"33":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"33":"FD GD"}},B:5,C:"CSS element() function"}; diff --git a/node_modules/caniuse-lite/data/features/css-env-function.js b/node_modules/caniuse-lite/data/features/css-env-function.js new file mode 100644 index 0000000..a6315c7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-env-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB IC JC"},D:{"1":"kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","132":"B"},F:{"1":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC","132":"iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:7,C:"CSS Environment Variables env()"}; diff --git a/node_modules/caniuse-lite/data/features/css-exclusions.js b/node_modules/caniuse-lite/data/features/css-exclusions.js new file mode 100644 index 0000000..366b838 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-exclusions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","33":"A B"},B:{"2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","33":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"33":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Exclusions Level 1"}; diff --git a/node_modules/caniuse-lite/data/features/css-featurequeries.js b/node_modules/caniuse-lite/data/features/css-featurequeries.js new file mode 100644 index 0000000..63f710f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-featurequeries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B C UC VC WC XC tB EC YC"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}; diff --git a/node_modules/caniuse-lite/data/features/css-file-selector-button.js b/node_modules/caniuse-lite/data/features/css-file-selector-button.js new file mode 100644 index 0000000..227cc49 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-file-selector-button.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X"},L:{"1":"D"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","33":"C K L H M N O P Q R S T U V W X"},C:{"1":"zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R IC JC"},M:{"1":"D"},A:{"2":"J E F G GC","33":"A B"},F:{"1":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"TC","33":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B"},G:{"1":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC"},P:{"1":"j k AD vB BD CD DD","33":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C"},I:{"1":"D","2":"wB I uC vC wC xC FC","33":"yC zC"}},B:6,C:"::file-selector-button CSS pseudo-element"}; diff --git a/node_modules/caniuse-lite/data/features/css-filter-function.js b/node_modules/caniuse-lite/data/features/css-filter-function.js new file mode 100644 index 0000000..bbc54ce --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-filter-function.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC","33":"G"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC","33":"eC fC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS filter() function"}; diff --git a/node_modules/caniuse-lite/data/features/css-filters.js b/node_modules/caniuse-lite/data/features/css-filters.js new file mode 100644 index 0000000..f1e3e42 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-filters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","1028":"K L H M N O","1346":"C"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","196":"DB","516":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB JC"},D:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N","33":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J E F G NC OC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"F bC cC dC eC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","33":"yC zC"},J:{"2":"E","33":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","33":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS Filter Effects"}; diff --git a/node_modules/caniuse-lite/data/features/css-first-letter.js b/node_modules/caniuse-lite/data/features/css-first-letter.js new file mode 100644 index 0000000..a982f40 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-first-letter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","16":"GC","516":"F","1540":"J E"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","132":"wB","260":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"z J E F","132":"I"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"z LC","132":"I 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","16":"G UC","260":"B VC WC XC tB EC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"1":"tC"},I:{"1":"wB I D xC FC yC zC","16":"uC vC","132":"wC"},J:{"1":"E A"},K:{"1":"C l uB","260":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"::first-letter CSS pseudo-element selector"}; diff --git a/node_modules/caniuse-lite/data/features/css-first-line.js b/node_modules/caniuse-lite/data/features/css-first-line.js new file mode 100644 index 0000000..152dea4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-first-line.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS first-line pseudo-element"}; diff --git a/node_modules/caniuse-lite/data/features/css-fixed.js b/node_modules/caniuse-lite/data/features/css-fixed.js new file mode 100644 index 0000000..279fda2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-fixed.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F G A B","2":"GC","8":"J"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","1025":"PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","132":"aC bC cC"},H:{"2":"tC"},I:{"1":"wB D yC zC","260":"uC vC wC","513":"I xC FC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS position:fixed"}; diff --git a/node_modules/caniuse-lite/data/features/css-focus-visible.js b/node_modules/caniuse-lite/data/features/css-focus-visible.js new file mode 100644 index 0000000..ff77b29 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-focus-visible.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","328":"P Q R S T U"},C:{"1":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","161":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T"},D:{"1":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB","328":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B QC","578":"H RC 5B"},F:{"1":"nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB UC VC WC XC tB EC YC uB","328":"hB iB jB kB lB mB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC","578":"sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"161":"FD GD"}},B:5,C:":focus-visible CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-focus-within.js b/node_modules/caniuse-lite/data/features/css-focus-within.js new file mode 100644 index 0000000..7bf405d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-focus-within.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC"},D:{"1":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","194":"xB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB UC VC WC XC tB EC YC uB","194":"PB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:7,C:":focus-within CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-font-palette.js b/node_modules/caniuse-lite/data/features/css-font-palette.js new file mode 100644 index 0000000..df33aaf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-font-palette.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q"},C:{"1":"t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s IC JC"},D:{"1":"n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V UC VC WC XC tB EC YC uB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS font-palette"}; diff --git a/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js b/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js new file mode 100644 index 0000000..e9c896f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB IC JC","194":"PB QB RB SB TB UB VB WB XB YB ZB aB"},D:{"1":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","66":"SB TB UB VB WB XB YB ZB aB bB xB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB","66":"FB GB HB IB JB KB LB MB NB OB PB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","66":"1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","194":"FD"}},B:5,C:"CSS font-display"}; diff --git a/node_modules/caniuse-lite/data/features/css-font-stretch.js b/node_modules/caniuse-lite/data/features/css-font-stretch.js new file mode 100644 index 0000000..42c7abe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-font-stretch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F IC JC"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS font-stretch"}; diff --git a/node_modules/caniuse-lite/data/features/css-gencontent.js b/node_modules/caniuse-lite/data/features/css-gencontent.js new file mode 100644 index 0000000..642f4bc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-gencontent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E GC","132":"F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS Generated content for pseudo-elements"}; diff --git a/node_modules/caniuse-lite/data/features/css-gradients.js b/node_modules/caniuse-lite/data/features/css-gradients.js new file mode 100644 index 0000000..3a7323b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","260":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB","292":"I z J E F G A B C K L H JC"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 A B C K L H M N O j k","548":"I z J E F G"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B","260":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B","292":"J MC","804":"I z"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC","33":"C YC","164":"tB EC"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","260":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B","292":"aC bC","804":"2B ZC FC"},H:{"2":"tC"},I:{"1":"D yC zC","33":"I xC FC","548":"wB uC vC wC"},J:{"1":"A","548":"E"},K:{"1":"l uB","2":"A B","33":"C","164":"tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Gradients"}; diff --git a/node_modules/caniuse-lite/data/features/css-grid-animation.js b/node_modules/caniuse-lite/data/features/css-grid-animation.js new file mode 100644 index 0000000..0040d92 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-grid-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"CSS Grid animation"}; diff --git a/node_modules/caniuse-lite/data/features/css-grid.js b/node_modules/caniuse-lite/data/features/css-grid.js new file mode 100644 index 0000000..6cd800b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-grid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","8":"G","292":"A B"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","292":"C K L H"},C:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N O IC JC","8":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB","584":"JB KB LB MB NB OB PB QB RB SB TB UB","1025":"VB WB"},D:{"1":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 I z J E F G A B C K L H M N O j k","8":"4 5 6 7","200":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","1025":"aB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","8":"J E F G A NC OC PC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB","200":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","8":"F bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC","8":"FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"292":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"1C","8":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Grid Layout (level 1)"}; diff --git a/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js b/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js new file mode 100644 index 0000000..b4d6855 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"CSS hanging-punctuation"}; diff --git a/node_modules/caniuse-lite/data/features/css-has.js b/node_modules/caniuse-lite/data/features/css-has.js new file mode 100644 index 0000000..a1680d8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-has.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o IC JC","322":"p q r s t u v w x y D 0B 1B"},D:{"1":"r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m","194":"n o p q"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z UC VC WC XC tB EC YC uB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:":has() CSS relational pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-hyphens.js b/node_modules/caniuse-lite/data/features/css-hyphens.js new file mode 100644 index 0000000..0835042 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-hyphens.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","33":"A B"},B:{"1":"r s t u v w x y D","33":"C K L H M N O","132":"P Q R S T U V W","260":"X Y Z a b c d e f g h i m n o p q"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","33":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB"},D:{"1":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","132":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W"},E:{"2":"I z LC 2B","33":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB UC VC WC XC tB EC YC uB","132":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z"},G:{"2":"2B ZC","33":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"4":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","132":"1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Hyphenation"}; diff --git a/node_modules/caniuse-lite/data/features/css-image-orientation.js b/node_modules/caniuse-lite/data/features/css-image-orientation.js new file mode 100644 index 0000000..9ebe76d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-image-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q","257":"R S T U V W X"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q","257":"R S T U V W X"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB"},F:{"1":"rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB UC VC WC XC tB EC YC uB","257":"jB kB lB mB nB l oB pB qB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C","257":"8C 9C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 image-orientation"}; diff --git a/node_modules/caniuse-lite/data/features/css-image-set.js b/node_modules/caniuse-lite/data/features/css-image-set.js new file mode 100644 index 0000000..4724a23 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-image-set.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","164":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y","2049":"D"},C:{"1":"D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U IC JC","66":"V W","2305":"Y Z a b c d e f g h i m n o p q r s t u v w x y","2820":"X"},D:{"1":"0B 1B KC","2":"0 I z J E F G A B C K L H M N O j","164":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y","2049":"D"},E:{"1":"TC","2":"I z LC 2B MC","132":"A B C K 3B tB uB 4B","164":"J E F G NC OC PC","1540":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"2B ZC FC aC","132":"gC hC iC jC kC lC mC nC oC pC","164":"F bC cC dC eC fC","1540":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","164":"D yC zC"},J:{"2":"E","164":"A"},K:{"2":"A B C tB EC uB","164":"l"},L:{"2049":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"0C"},P:{"164":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"164":"4B"},R:{"164":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS image-set"}; diff --git a/node_modules/caniuse-lite/data/features/css-in-out-of-range.js b/node_modules/caniuse-lite/data/features/css-in-out-of-range.js new file mode 100644 index 0000000..90147d4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-in-out-of-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C","260":"K L H M N O"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC","516":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},D:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I","16":"z J E F G A B C K L","260":"VB","772":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z","772":"J E F G A MC NC OC PC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G UC","260":"B C IB VC WC XC tB EC YC uB","772":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","772":"F aC bC cC dC eC fC gC"},H:{"132":"tC"},I:{"1":"D","2":"wB uC vC wC","260":"I xC FC yC zC"},J:{"2":"E","260":"A"},K:{"1":"l","260":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","260":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","516":"FD"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes"}; diff --git a/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js b/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js new file mode 100644 index 0000000..7e4569e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","132":"A B","388":"G"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N O"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC wB IC JC","132":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","388":"I z"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z J LC 2B","132":"E F G A NC OC PC","388":"MC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G B UC VC WC XC tB EC","132":"0 1 2 3 4 H M N O j k","516":"C YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC bC","132":"F cC dC eC fC gC"},H:{"516":"tC"},I:{"1":"D","16":"wB uC vC wC zC","132":"yC","388":"I xC FC"},J:{"16":"E","132":"A"},K:{"1":"l","16":"A B C tB EC","516":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","132":"FD"}},B:5,C:":indeterminate CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-initial-letter.js b/node_modules/caniuse-lite/data/features/css-initial-letter.js new file mode 100644 index 0000000..eedf0ac --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-initial-letter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v","260":"w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v","260":"w x y D 0B 1B KC"},E:{"2":"I z J E F LC 2B MC NC OC","4":"G","164":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g UC VC WC XC tB EC YC uB","260":"h i"},G:{"2":"F 2B ZC FC aC bC cC dC","164":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"260":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"k","2":"I j 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Initial Letter"}; diff --git a/node_modules/caniuse-lite/data/features/css-initial-value.js b/node_modules/caniuse-lite/data/features/css-initial-value.js new file mode 100644 index 0000000..44fb1cd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-initial-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"I z J E F G A B C K L H M N O IC JC","164":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS initial value"}; diff --git a/node_modules/caniuse-lite/data/features/css-lch-lab.js b/node_modules/caniuse-lite/data/features/css-lch-lab.js new file mode 100644 index 0000000..03f36b0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-lch-lab.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v","322":"w"},C:{"1":"D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w IC JC","194":"x y"},D:{"1":"x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v","322":"w"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B QC"},F:{"1":"h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g UC VC WC XC tB EC YC uB"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"LCH and Lab color values"}; diff --git a/node_modules/caniuse-lite/data/features/css-letter-spacing.js b/node_modules/caniuse-lite/data/features/css-letter-spacing.js new file mode 100644 index 0000000..43ce2b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-letter-spacing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","16":"GC","132":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC","132":"I z J 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G UC","132":"B C H M VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"2":"tC"},I:{"1":"D yC zC","16":"uC vC","132":"wB I wC xC FC"},J:{"132":"E A"},K:{"1":"l","132":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"letter-spacing CSS property"}; diff --git a/node_modules/caniuse-lite/data/features/css-line-clamp.js b/node_modules/caniuse-lite/data/features/css-line-clamp.js new file mode 100644 index 0000000..064b710 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-line-clamp.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB IC JC","33":"jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"16":"I z J E F G A B C K","33":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I LC 2B","33":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"2B ZC FC","33":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"16":"uC vC","33":"wB I D wC xC FC yC zC"},J:{"33":"E A"},K:{"2":"A B C tB EC uB","33":"l"},L:{"33":"D"},M:{"33":"D"},N:{"2":"A B"},O:{"33":"0C"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"33":"4B"},R:{"33":"ED"},S:{"2":"FD","33":"GD"}},B:5,C:"CSS line-clamp"}; diff --git a/node_modules/caniuse-lite/data/features/css-logical-props.js b/node_modules/caniuse-lite/data/features/css-logical-props.js new file mode 100644 index 0000000..19c9413 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-logical-props.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","1028":"W X","1540":"P Q R S T U V"},C:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC","164":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB IC JC","1540":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB"},D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","292":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB","1028":"W X","1540":"kB lB mB nB l oB pB qB rB sB P Q R S T U V"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","292":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","1540":"K L uB 4B","5124":"QC"},F:{"1":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","292":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","1028":"oB pB","1540":"ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","292":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC","1540":"lC mC nC oC pC qC","5124":"rC"},H:{"2":"tC"},I:{"1":"D","292":"wB I uC vC wC xC FC yC zC"},J:{"292":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"292":"0C"},P:{"1":"j k AD vB BD CD DD","292":"I 1C 2C 3C 4C 5C","1540":"3B 6C 7C 8C 9C"},Q:{"1540":"4B"},R:{"1":"ED"},S:{"1":"GD","1540":"FD"}},B:5,C:"CSS Logical Properties"}; diff --git a/node_modules/caniuse-lite/data/features/css-marker-pseudo.js b/node_modules/caniuse-lite/data/features/css-marker-pseudo.js new file mode 100644 index 0000000..a50a7de --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-marker-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T U"},C:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB IC JC"},D:{"1":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U"},E:{"1":"TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B","129":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC"},F:{"1":"nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS ::marker pseudo-element"}; diff --git a/node_modules/caniuse-lite/data/features/css-masks.js b/node_modules/caniuse-lite/data/features/css-masks.js new file mode 100644 index 0000000..41bae4f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-masks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M","164":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","3138":"N","12292":"O"},C:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","260":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC"},D:{"164":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B","164":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"2":"G B C UC VC WC XC tB EC YC uB","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","164":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"164":"D yC zC","676":"wB I uC vC wC xC FC"},J:{"164":"E A"},K:{"2":"A B C tB EC uB","164":"l"},L:{"164":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"0C"},P:{"164":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"164":"4B"},R:{"164":"ED"},S:{"1":"GD","260":"FD"}},B:4,C:"CSS Masks"}; diff --git a/node_modules/caniuse-lite/data/features/css-matches-pseudo.js b/node_modules/caniuse-lite/data/features/css-matches-pseudo.js new file mode 100644 index 0000000..99233f4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-matches-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","1220":"P Q R S T U V W"},C:{"1":"sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC wB IC JC","548":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB"},D:{"1":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB","196":"gB hB iB","1220":"jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z","164":"J E F MC NC OC","260":"G A B C K PC 3B tB uB 4B"},F:{"1":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","196":"VB WB XB","1220":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC bC","164":"F cC dC","260":"eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"1":"D","16":"wB uC vC wC","164":"I xC FC yC zC"},J:{"16":"E","164":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"0C"},P:{"1":"j k AD vB BD CD DD","164":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C"},Q:{"1220":"4B"},R:{"1":"ED"},S:{"1":"GD","548":"FD"}},B:5,C:":is() CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-math-functions.js b/node_modules/caniuse-lite/data/features/css-math-functions.js new file mode 100644 index 0000000..0ab92e0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-math-functions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB IC JC"},D:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B","132":"C K tB uB"},F:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB UC VC WC XC tB EC YC uB"},G:{"1":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC","132":"jC kC lC mC nC oC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS math functions min(), max() and clamp()"}; diff --git a/node_modules/caniuse-lite/data/features/css-media-interaction.js b/node_modules/caniuse-lite/data/features/css-media-interaction.js new file mode 100644 index 0000000..dc36371 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-interaction.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB IC JC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"Media Queries: interaction media features"}; diff --git a/node_modules/caniuse-lite/data/features/css-media-range-syntax.js b/node_modules/caniuse-lite/data/features/css-media-range-syntax.js new file mode 100644 index 0000000..3104fe2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-range-syntax.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p"},C:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB IC JC"},D:{"1":"q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z UC VC WC XC tB EC YC uB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"Media Queries: Range Syntax"}; diff --git a/node_modules/caniuse-lite/data/features/css-media-resolution.js b/node_modules/caniuse-lite/data/features/css-media-resolution.js new file mode 100644 index 0000000..a0ff6eb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-resolution.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","132":"G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","1028":"C K L H M N O"},C:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","260":"I z J E F G A B C K L H IC JC","1028":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB"},D:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","548":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k","1028":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"LC 2B","548":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G","548":"B C UC VC WC XC tB EC YC","1028":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"vB 9B AC BC CC DC","16":"2B","548":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"132":"tC"},I:{"1":"D","16":"uC vC","548":"wB I wC xC FC","1028":"yC zC"},J:{"548":"E A"},K:{"1":"l uB","548":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","1028":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Media Queries: resolution feature"}; diff --git a/node_modules/caniuse-lite/data/features/css-media-scripting.js b/node_modules/caniuse-lite/data/features/css-media-scripting.js new file mode 100644 index 0000000..f36a9db --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-media-scripting.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"Media Queries: scripting media feature"}; diff --git a/node_modules/caniuse-lite/data/features/css-mediaqueries.js b/node_modules/caniuse-lite/data/features/css-mediaqueries.js new file mode 100644 index 0000000..6085d51 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-mediaqueries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J E F GC","129":"G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","129":"0 1 2 3 4 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","129":"I z J MC","388":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","129":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"1":"D yC zC","129":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS3 Media Queries"}; diff --git a/node_modules/caniuse-lite/data/features/css-mixblendmode.js b/node_modules/caniuse-lite/data/features/css-mixblendmode.js new file mode 100644 index 0000000..6e60244 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-mixblendmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB IC JC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k","194":"8 9 AB BB CB DB EB FB GB HB IB JB"},E:{"2":"I z J E LC 2B MC NC","260":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC aC bC cC","260":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Blending of HTML/SVG elements"}; diff --git a/node_modules/caniuse-lite/data/features/css-motion-paths.js b/node_modules/caniuse-lite/data/features/css-motion-paths.js new file mode 100644 index 0000000..51fcdb7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-motion-paths.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB IC JC"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB","194":"MB NB OB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 G B C H M N O j k UC VC WC XC tB EC YC uB","194":"9 AB BB"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS Motion Path"}; diff --git a/node_modules/caniuse-lite/data/features/css-namespaces.js b/node_modules/caniuse-lite/data/features/css-namespaces.js new file mode 100644 index 0000000..c9af3fd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-namespaces.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS namespaces"}; diff --git a/node_modules/caniuse-lite/data/features/css-nesting.js b/node_modules/caniuse-lite/data/features/css-nesting.js new file mode 100644 index 0000000..9da9dcb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-nesting.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u","194":"v w x"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u","194":"v w x"},E:{"1":"DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC"},F:{"1":"h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d UC VC WC XC tB EC YC uB","194":"e f g"},G:{"1":"DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Nesting"}; diff --git a/node_modules/caniuse-lite/data/features/css-not-sel-list.js b/node_modules/caniuse-lite/data/features/css-not-sel-list.js new file mode 100644 index 0000000..52ad06f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-not-sel-list.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O Q R S T U V W","16":"P"},C:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S IC JC"},D:{"1":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"selector list argument of :not()"}; diff --git a/node_modules/caniuse-lite/data/features/css-nth-child-of.js b/node_modules/caniuse-lite/data/features/css-nth-child-of.js new file mode 100644 index 0000000..863abc4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-nth-child-of.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w"},C:{"1":"D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y IC JC"},D:{"1":"x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes"}; diff --git a/node_modules/caniuse-lite/data/features/css-opacity.js b/node_modules/caniuse-lite/data/features/css-opacity.js new file mode 100644 index 0000000..0f462a7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-opacity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","4":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS3 Opacity"}; diff --git a/node_modules/caniuse-lite/data/features/css-optional-pseudo.js b/node_modules/caniuse-lite/data/features/css-optional-pseudo.js new file mode 100644 index 0000000..17b497a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-optional-pseudo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G UC","132":"B C VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"132":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l","132":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:":optional CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-overflow-anchor.js b/node_modules/caniuse-lite/data/features/css-overflow-anchor.js new file mode 100644 index 0000000..ee960e7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overflow-anchor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB IC JC"},D:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)"}; diff --git a/node_modules/caniuse-lite/data/features/css-overflow-overlay.js b/node_modules/caniuse-lite/data/features/css-overflow-overlay.js new file mode 100644 index 0000000..710d559 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overflow-overlay.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"I z J E F G A B MC NC OC PC 3B tB","16":"LC 2B","130":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC","16":"2B","130":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS overflow: overlay"}; diff --git a/node_modules/caniuse-lite/data/features/css-overflow.js b/node_modules/caniuse-lite/data/features/css-overflow.js new file mode 100644 index 0000000..b836c76 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overflow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"388":"J E F G A B GC"},B:{"1":"Z a b c d e f g h i m n o p q r s t u v w x y D","260":"P Q R S T U V W X Y","388":"C K L H M N O"},C:{"1":"R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","260":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q","388":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB IC JC"},D:{"1":"Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","260":"jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y","388":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB"},E:{"1":"vB 9B AC BC CC DC SC TC","260":"L H 4B QC RC 5B 6B 7B 8B","388":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB"},F:{"1":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","260":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB","388":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB UC VC WC XC tB EC YC uB"},G:{"1":"vB 9B AC BC CC DC","260":"pC qC rC sC 5B 6B 7B 8B","388":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC"},H:{"388":"tC"},I:{"1":"D","388":"wB I uC vC wC xC FC yC zC"},J:{"388":"E A"},K:{"1":"l","388":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"388":"A B"},O:{"388":"0C"},P:{"1":"j k AD vB BD CD DD","388":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C"},Q:{"388":"4B"},R:{"1":"ED"},S:{"1":"GD","388":"FD"}},B:5,C:"CSS overflow property"}; diff --git a/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js b/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js new file mode 100644 index 0000000..4ebf173 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N","516":"O"},C:{"1":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB IC JC"},D:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB","260":"eB fB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B","1090":"H QC RC 5B 6B 7B 8B"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB UC VC WC XC tB EC YC uB","260":"TB UB"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC","1090":"rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS overscroll-behavior"}; diff --git a/node_modules/caniuse-lite/data/features/css-page-break.js b/node_modules/caniuse-lite/data/features/css-page-break.js new file mode 100644 index 0000000..41fdf34 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-page-break.js @@ -0,0 +1 @@ +module.exports={A:{A:{"388":"A B","900":"J E F G GC"},B:{"388":"C K L H M N O","900":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"772":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","900":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB IC JC"},D:{"900":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"772":"A","900":"I z J E F G B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"16":"G UC","129":"B C VC WC XC tB EC YC uB","900":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"900":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"129":"tC"},I:{"900":"wB I D uC vC wC xC FC yC zC"},J:{"900":"E A"},K:{"129":"A B C tB EC uB","900":"l"},L:{"900":"D"},M:{"772":"D"},N:{"388":"A B"},O:{"900":"0C"},P:{"900":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"900":"4B"},R:{"900":"ED"},S:{"772":"GD","900":"FD"}},B:2,C:"CSS page-break properties"}; diff --git a/node_modules/caniuse-lite/data/features/css-paged-media.js b/node_modules/caniuse-lite/data/features/css-paged-media.js new file mode 100644 index 0000000..d824e7a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-paged-media.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","132":"F G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N O"},C:{"2":"HC wB I z J E F G A B C K L H M N O IC JC","132":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","132":"G B C UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"16":"tC"},I:{"16":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","16":"A B C tB EC uB"},L:{"1":"D"},M:{"132":"D"},N:{"258":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"132":"FD GD"}},B:5,C:"CSS Paged Media (@page)"}; diff --git a/node_modules/caniuse-lite/data/features/css-paint-api.js b/node_modules/caniuse-lite/data/features/css-paint-api.js new file mode 100644 index 0000000..fe2d946 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-paint-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB"},E:{"2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","194":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:4,C:"CSS Painting API"}; diff --git a/node_modules/caniuse-lite/data/features/css-placeholder-shown.js b/node_modules/caniuse-lite/data/features/css-placeholder-shown.js new file mode 100644 index 0000000..6b7ba63 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-placeholder-shown.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","292":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","164":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","164":"FD"}},B:5,C:":placeholder-shown CSS pseudo-class"}; diff --git a/node_modules/caniuse-lite/data/features/css-placeholder.js b/node_modules/caniuse-lite/data/features/css-placeholder.js new file mode 100644 index 0000000..669c2b1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-placeholder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","36":"C K L H M N O"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N O IC JC","33":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","36":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","36":"z J E F G A MC NC OC PC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","36":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC","36":"F FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","36":"wB I uC vC wC xC FC yC zC"},J:{"36":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","36":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:5,C:"::placeholder CSS pseudo-element"}; diff --git a/node_modules/caniuse-lite/data/features/css-print-color-adjust.js b/node_modules/caniuse-lite/data/features/css-print-color-adjust.js new file mode 100644 index 0000000..3953ba7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-print-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{D:{"2":"I z J E F G A B C K L H M","33":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},L:{"33":"D"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC","33":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},K:{"2":"A B C tB EC uB","33":"l"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC","2":"I z LC 2B MC TC","33":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},I:{"2":"wB I uC vC wC xC FC","33":"D yC zC"}},B:6,C:"print-color-adjust property"}; diff --git a/node_modules/caniuse-lite/data/features/css-read-only-write.js b/node_modules/caniuse-lite/data/features/css-read-only-write.js new file mode 100644 index 0000000..488e703 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-read-only-write.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC","33":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB IC JC"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B","132":"I z J E F MC NC OC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G B UC VC WC XC tB","132":"0 1 C H M N O j k EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC","132":"F FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","16":"uC vC","132":"wB I wC xC FC yC zC"},J:{"1":"A","132":"E"},K:{"1":"l","2":"A B tB","132":"C EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:1,C:"CSS :read-only and :read-write selectors"}; diff --git a/node_modules/caniuse-lite/data/features/css-rebeccapurple.js b/node_modules/caniuse-lite/data/features/css-rebeccapurple.js new file mode 100644 index 0000000..6a6ddea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-rebeccapurple.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC","16":"NC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Rebeccapurple color"}; diff --git a/node_modules/caniuse-lite/data/features/css-reflections.js b/node_modules/caniuse-lite/data/features/css-reflections.js new file mode 100644 index 0000000..bdf52a6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-reflections.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"LC 2B","33":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"33":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"33":"wB I D uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"2":"A B C tB EC uB","33":"l"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"0C"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"33":"4B"},R:{"33":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS Reflections"}; diff --git a/node_modules/caniuse-lite/data/features/css-regions.js b/node_modules/caniuse-lite/data/features/css-regions.js new file mode 100644 index 0000000..ff61c01 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-regions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","420":"A B"},B:{"2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","420":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"I z J E F G A B C K L EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","36":"H M N O","66":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB"},E:{"2":"I z J C K L H LC 2B MC tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"E F G A B NC OC PC 3B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC aC bC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"F cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"420":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Regions"}; diff --git a/node_modules/caniuse-lite/data/features/css-relative-colors.js b/node_modules/caniuse-lite/data/features/css-relative-colors.js new file mode 100644 index 0000000..826122f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-relative-colors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Relative colors"}; diff --git a/node_modules/caniuse-lite/data/features/css-repeating-gradients.js b/node_modules/caniuse-lite/data/features/css-repeating-gradients.js new file mode 100644 index 0000000..e1d417f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-repeating-gradients.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","33":"I z J E F G A B C K L H JC"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G","33":"0 1 2 3 4 A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B","33":"J MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC","33":"C YC","36":"tB EC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","33":"aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB uC vC wC","33":"I xC FC"},J:{"1":"A","2":"E"},K:{"1":"l uB","2":"A B","33":"C","36":"tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Repeating Gradients"}; diff --git a/node_modules/caniuse-lite/data/features/css-resize.js b/node_modules/caniuse-lite/data/features/css-resize.js new file mode 100644 index 0000000..2ebdb43 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-resize.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC","132":"uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:2,C:"CSS resize property"}; diff --git a/node_modules/caniuse-lite/data/features/css-revert-value.js b/node_modules/caniuse-lite/data/features/css-revert-value.js new file mode 100644 index 0000000..a8bdf28 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-revert-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S"},C:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB IC JC"},D:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC"},F:{"1":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB UC VC WC XC tB EC YC uB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"CSS revert value"}; diff --git a/node_modules/caniuse-lite/data/features/css-rrggbbaa.js b/node_modules/caniuse-lite/data/features/css-rrggbbaa.js new file mode 100644 index 0000000..215703d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-rrggbbaa.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","194":"VB WB XB YB ZB aB bB xB cB yB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB UC VC WC XC tB EC YC uB","194":"IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","194":"1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"#rrggbbaa hex color notation"}; diff --git a/node_modules/caniuse-lite/data/features/css-scroll-behavior.js b/node_modules/caniuse-lite/data/features/css-scroll-behavior.js new file mode 100644 index 0000000..7c01870 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-scroll-behavior.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","129":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB","129":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","450":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB 4B","578":"L H QC RC 5B"},F:{"2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB","129":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","450":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC","578":"rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"129":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"129":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"CSS Scroll-behavior"}; diff --git a/node_modules/caniuse-lite/data/features/css-scroll-timeline.js b/node_modules/caniuse-lite/data/features/css-scroll-timeline.js new file mode 100644 index 0000000..b53c310 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-scroll-timeline.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y","194":"Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T","194":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","322":"U V W"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB UC VC WC XC tB EC YC uB","194":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","322":"l oB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS @scroll-timeline"}; diff --git a/node_modules/caniuse-lite/data/features/css-scrollbar.js b/node_modules/caniuse-lite/data/features/css-scrollbar.js new file mode 100644 index 0000000..3eb5b07 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-scrollbar.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J E F G A B GC"},B:{"2":"C K L H M N O","292":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB IC JC","3074":"eB","4100":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"292":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"16":"I z LC 2B","292":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","292":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC bC","292":"cC","804":"F dC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"16":"uC vC","292":"wB I D wC xC FC yC zC"},J:{"292":"E A"},K:{"2":"A B C tB EC uB","292":"l"},L:{"292":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"292":"0C"},P:{"292":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"292":"4B"},R:{"292":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS scrollbar styling"}; diff --git a/node_modules/caniuse-lite/data/features/css-sel2.js b/node_modules/caniuse-lite/data/features/css-sel2.js new file mode 100644 index 0000000..c1c7438 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-sel2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F G A B","2":"GC","8":"J"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS 2.1 selectors"}; diff --git a/node_modules/caniuse-lite/data/features/css-sel3.js b/node_modules/caniuse-lite/data/features/css-sel3.js new file mode 100644 index 0000000..ea27d94 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-sel3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J","132":"E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS3 selectors"}; diff --git a/node_modules/caniuse-lite/data/features/css-selection.js b/node_modules/caniuse-lite/data/features/css-selection.js new file mode 100644 index 0000000..23e6f45 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-selection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"C l EC uB","16":"A B tB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:5,C:"::selection CSS pseudo-element"}; diff --git a/node_modules/caniuse-lite/data/features/css-shapes.js b/node_modules/caniuse-lite/data/features/css-shapes.js new file mode 100644 index 0000000..144b6cc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-shapes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB IC JC","322":"UB VB WB XB YB ZB aB bB xB cB yB"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB","194":"DB EB FB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC","33":"F G A OC PC"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","33":"F dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"CSS Shapes Level 1"}; diff --git a/node_modules/caniuse-lite/data/features/css-snappoints.js b/node_modules/caniuse-lite/data/features/css-snappoints.js new file mode 100644 index 0000000..37b56a2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-snappoints.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","6308":"A","6436":"B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","6436":"C K L H M N O"},C:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IC JC","2052":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB"},D:{"1":"kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB","8258":"hB iB jB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC","3108":"G A PC 3B"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB","8258":"XB YB ZB aB bB cB dB eB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC","3108":"eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2052":"FD"}},B:4,C:"CSS Scroll Snap"}; diff --git a/node_modules/caniuse-lite/data/features/css-sticky.js b/node_modules/caniuse-lite/data/features/css-sticky.js new file mode 100644 index 0000000..572fec9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-sticky.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H","1028":"P Q R S T U V W X Y Z","4100":"M N O"},C:{"1":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"5 6 7 8 9 AB","516":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},D:{"1":"a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 I z J E F G A B C K L H M N O j k GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","322":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB VB WB XB YB","1028":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC","33":"F G A B C OC PC 3B tB uB","2084":"E NC"},F:{"1":"sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB UC VC WC XC tB EC YC uB","322":"IB JB KB","1028":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"F dC eC fC gC hC iC jC kC lC","2084":"bC cC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1028":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1028":"4B"},R:{"1":"ED"},S:{"1":"GD","516":"FD"}},B:5,C:"CSS position:sticky"}; diff --git a/node_modules/caniuse-lite/data/features/css-subgrid.js b/node_modules/caniuse-lite/data/features/css-subgrid.js new file mode 100644 index 0000000..82cb0ad --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-subgrid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"CSS Subgrid"}; diff --git a/node_modules/caniuse-lite/data/features/css-supports-api.js b/node_modules/caniuse-lite/data/features/css-supports-api.js new file mode 100644 index 0000000..1e79e43 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-supports-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M N O"},C:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O IC JC","66":"j k","260":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k","260":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC","132":"uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"132":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC","132":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS.supports() API"}; diff --git a/node_modules/caniuse-lite/data/features/css-table.js b/node_modules/caniuse-lite/data/features/css-table.js new file mode 100644 index 0000000..ba59cd0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-table.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","2":"J E GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","132":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS Table display"}; diff --git a/node_modules/caniuse-lite/data/features/css-text-align-last.js b/node_modules/caniuse-lite/data/features/css-text-align-last.js new file mode 100644 index 0000000..131b29c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-align-last.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","4":"C K L H M N O"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B IC JC","33":"0 1 2 3 4 5 6 7 8 9 C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB","322":"EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 G B C H M N O j k UC VC WC XC tB EC YC uB","578":"1 2 3 4 5 6 7 8 9 AB BB CB"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:4,C:"CSS3 text-align-last"}; diff --git a/node_modules/caniuse-lite/data/features/css-text-box-trim.js b/node_modules/caniuse-lite/data/features/css-text-box-trim.js new file mode 100644 index 0000000..09a61df --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-box-trim.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","129":"TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS text-box-trim & text-box-edge"}; diff --git a/node_modules/caniuse-lite/data/features/css-text-indent.js b/node_modules/caniuse-lite/data/features/css-text-indent.js new file mode 100644 index 0000000..69e1b69 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-indent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J E F G A B GC"},B:{"132":"C K L H M N O","388":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"132":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"132":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB","388":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"vB 9B AC BC CC DC SC TC","132":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"132":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB","388":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"vB 9B AC BC CC DC","132":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"132":"tC"},I:{"132":"wB I uC vC wC xC FC yC zC","388":"D"},J:{"132":"E A"},K:{"132":"A B C tB EC uB","388":"l"},L:{"388":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"388":"0C"},P:{"132":"I","388":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"388":"4B"},R:{"388":"ED"},S:{"132":"FD GD"}},B:4,C:"CSS text-indent"}; diff --git a/node_modules/caniuse-lite/data/features/css-text-justify.js b/node_modules/caniuse-lite/data/features/css-text-justify.js new file mode 100644 index 0000000..8a98140 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-justify.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"J E GC","132":"F G A B"},B:{"132":"C K L H M N O","322":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB IC JC","1025":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","1602":"XB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB","322":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 G B C H M N O j k UC VC WC XC tB EC YC uB","322":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","322":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","322":"l"},L:{"322":"D"},M:{"1025":"D"},N:{"132":"A B"},O:{"322":"0C"},P:{"2":"I","322":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"322":"4B"},R:{"322":"ED"},S:{"2":"FD","1025":"GD"}},B:4,C:"CSS text-justify"}; diff --git a/node_modules/caniuse-lite/data/features/css-text-orientation.js b/node_modules/caniuse-lite/data/features/css-text-orientation.js new file mode 100644 index 0000000..2e88d73 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB IC JC","194":"HB IB JB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC","16":"A","33":"B C K 3B tB uB 4B"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS text-orientation"}; diff --git a/node_modules/caniuse-lite/data/features/css-text-spacing.js b/node_modules/caniuse-lite/data/features/css-text-spacing.js new file mode 100644 index 0000000..16a7a10 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-text-spacing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","161":"F G A B"},B:{"2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","161":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"16":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS Text 4 text-spacing"}; diff --git a/node_modules/caniuse-lite/data/features/css-textshadow.js b/node_modules/caniuse-lite/data/features/css-textshadow.js new file mode 100644 index 0000000..ce3b527 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-textshadow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","129":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","260":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"4":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"A","4":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 Text-shadow"}; diff --git a/node_modules/caniuse-lite/data/features/css-touch-action.js b/node_modules/caniuse-lite/data/features/css-touch-action.js new file mode 100644 index 0000000..5fe2cb5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-touch-action.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G GC","289":"A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","1025":"VB WB XB YB ZB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC","516":"fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","289":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","194":"FD"}},B:2,C:"CSS touch-action property"}; diff --git a/node_modules/caniuse-lite/data/features/css-transitions.js b/node_modules/caniuse-lite/data/features/css-transitions.js new file mode 100644 index 0000000..7825115 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-transitions.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"z J E F G A B C K L H","164":"I"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"J MC","164":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G UC VC","33":"C","164":"B WC XC tB EC YC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"bC","164":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"D yC zC","33":"wB I uC vC wC xC FC"},J:{"1":"A","33":"E"},K:{"1":"l uB","33":"C","164":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS3 Transitions"}; diff --git a/node_modules/caniuse-lite/data/features/css-unicode-bidi.js b/node_modules/caniuse-lite/data/features/css-unicode-bidi.js new file mode 100644 index 0000000..15c02d0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-unicode-bidi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N O"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","132":"HC wB I z J E F G IC JC","292":"A B C K L H M"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"I z J E F G A B C K L H M","548":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"132":"I z J E F LC 2B MC NC OC","548":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"132":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"132":"F 2B ZC FC aC bC cC dC","548":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"16":"tC"},I:{"1":"D","16":"wB I uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","16":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","16":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:4,C:"CSS unicode-bidi property"}; diff --git a/node_modules/caniuse-lite/data/features/css-unset-value.js b/node_modules/caniuse-lite/data/features/css-unset-value.js new file mode 100644 index 0000000..7997ea0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-unset-value.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS unset value"}; diff --git a/node_modules/caniuse-lite/data/features/css-variables.js b/node_modules/caniuse-lite/data/features/css-variables.js new file mode 100644 index 0000000..649eec8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-variables.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","260":"H"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","194":"RB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC","260":"PC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB","194":"EB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC","260":"fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Variables (Custom Properties)"}; diff --git a/node_modules/caniuse-lite/data/features/css-when-else.js b/node_modules/caniuse-lite/data/features/css-when-else.js new file mode 100644 index 0000000..154b72d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-when-else.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"CSS @when / @else conditional rules"}; diff --git a/node_modules/caniuse-lite/data/features/css-widows-orphans.js b/node_modules/caniuse-lite/data/features/css-widows-orphans.js new file mode 100644 index 0000000..425832f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-widows-orphans.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E GC","129":"F G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","129":"G B UC VC WC XC tB EC YC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:2,C:"CSS widows & orphans"}; diff --git a/node_modules/caniuse-lite/data/features/css-width-stretch.js b/node_modules/caniuse-lite/data/features/css-width-stretch.js new file mode 100644 index 0000000..bb327b6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-width-stretch.js @@ -0,0 +1 @@ +module.exports={A:{D:{"2":"0 I z J E F G A B C K L H M N O j k","33":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},L:{"33":"D"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"HC","33":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},M:{"33":"D"},A:{"2":"J E F G A B GC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},K:{"2":"A B C tB EC uB","33":"l"},E:{"2":"I z J LC 2B MC NC TC","33":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC"},G:{"2":"2B ZC FC aC bC","33":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},P:{"2":"I","33":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},I:{"2":"wB I uC vC wC xC FC","33":"D yC zC"}},B:6,C:"width: stretch property"}; diff --git a/node_modules/caniuse-lite/data/features/css-writing-mode.js b/node_modules/caniuse-lite/data/features/css-writing-mode.js new file mode 100644 index 0000000..874696f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-writing-mode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC","322":"FB GB HB IB JB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J","16":"E","33":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z","33":"J E F G A MC NC OC PC 3B"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC","33":"F aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"uC vC wC","33":"wB I xC FC yC zC"},J:{"33":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","33":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS writing-mode property"}; diff --git a/node_modules/caniuse-lite/data/features/css-zoom.js b/node_modules/caniuse-lite/data/features/css-zoom.js new file mode 100644 index 0000000..b938f13 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css-zoom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E GC","129":"F G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"129":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS zoom"}; diff --git a/node_modules/caniuse-lite/data/features/css3-attr.js b/node_modules/caniuse-lite/data/features/css3-attr.js new file mode 100644 index 0000000..70a282f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS3 attr() function for all properties"}; diff --git a/node_modules/caniuse-lite/data/features/css3-boxsizing.js b/node_modules/caniuse-lite/data/features/css3-boxsizing.js new file mode 100644 index 0000000..f65d901 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-boxsizing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","8":"J E GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"I z J E F G"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"2B ZC FC"},H:{"1":"tC"},I:{"1":"I D xC FC yC zC","33":"wB uC vC wC"},J:{"1":"A","33":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS3 Box-sizing"}; diff --git a/node_modules/caniuse-lite/data/features/css3-colors.js b/node_modules/caniuse-lite/data/features/css3-colors.js new file mode 100644 index 0000000..abab10e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-colors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","4":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","2":"G","4":"UC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS3 Colors"}; diff --git a/node_modules/caniuse-lite/data/features/css3-cursors-grab.js b/node_modules/caniuse-lite/data/features/css3-cursors-grab.js new file mode 100644 index 0000000..be7b072 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-cursors-grab.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"0 1 2 3 4 5 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"C YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:2,C:"CSS grab & grabbing cursors"}; diff --git a/node_modules/caniuse-lite/data/features/css3-cursors-newer.js b/node_modules/caniuse-lite/data/features/css3-cursors-newer.js new file mode 100644 index 0000000..b49b7da --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-cursors-newer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"0 1 2 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"I z J E F LC 2B MC NC OC"},F:{"1":"3 4 5 6 7 8 9 C AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC","33":"0 1 2 H M N O j k"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:2,C:"CSS3 Cursors: zoom-in & zoom-out"}; diff --git a/node_modules/caniuse-lite/data/features/css3-cursors.js b/node_modules/caniuse-lite/data/features/css3-cursors.js new file mode 100644 index 0000000..68ebcbf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-cursors.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"J E F GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","4":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"I"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","4":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","260":"G B C UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","16":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:2,C:"CSS3 Cursors (original values)"}; diff --git a/node_modules/caniuse-lite/data/features/css3-tabsize.js b/node_modules/caniuse-lite/data/features/css3-tabsize.js new file mode 100644 index 0000000..f146eee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/css3-tabsize.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z","164":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O j","132":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC","132":"E F G A B C K NC OC PC 3B tB uB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC VC WC","132":"0 1 2 3 4 5 6 7 H M N O j k","164":"B C XC tB EC YC uB"},G:{"1":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC","132":"F cC dC eC fC gC hC iC jC kC lC mC nC oC"},H:{"164":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","132":"yC zC"},J:{"132":"E A"},K:{"1":"l","2":"A","164":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"164":"FD GD"}},B:4,C:"CSS3 tab-size"}; diff --git a/node_modules/caniuse-lite/data/features/currentcolor.js b/node_modules/caniuse-lite/data/features/currentcolor.js new file mode 100644 index 0000000..303e892 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/currentcolor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS currentColor value"}; diff --git a/node_modules/caniuse-lite/data/features/custom-elements.js b/node_modules/caniuse-lite/data/features/custom-elements.js new file mode 100644 index 0000000..cf48b20 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/custom-elements.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","8":"A B"},B:{"1":"P","2":"Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K L H M N O"},C:{"2":"0 1 HC wB I z J E F G A B C K L H M N O j k xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","66":"2 3 4 5 6 7 8","72":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","2":"0 1 2 3 4 5 I z J E F G A B C K L H M N O j k Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","66":"6 7 8 9 AB BB"},E:{"2":"I z LC 2B MC","8":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","2":"G B C iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","66":"0 H M N O"},G:{"2":"2B ZC FC aC bC","8":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"zC","2":"wB I D uC vC wC xC FC yC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I 1C 2C 3C 4C 5C 3B 6C 7C","2":"j k 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"2":"GD","72":"FD"}},B:7,C:"Custom Elements (deprecated V0 spec)"}; diff --git a/node_modules/caniuse-lite/data/features/custom-elementsv1.js b/node_modules/caniuse-lite/data/features/custom-elementsv1.js new file mode 100644 index 0000000..a523a3c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/custom-elementsv1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","8":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K L H M N O"},C:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 HC wB I z J E F G A B C K L H M N O j k IC JC","8":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","456":"TB UB VB WB XB YB ZB aB bB","712":"xB cB yB dB"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","8":"VB WB","132":"XB YB ZB aB bB xB cB yB dB eB fB gB hB"},E:{"2":"I z J E LC 2B MC NC OC","8":"F G A PC","132":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB UC VC WC XC tB EC YC uB","132":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC","132":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","132":"1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","8":"FD"}},B:1,C:"Custom Elements (V1)"}; diff --git a/node_modules/caniuse-lite/data/features/customevent.js b/node_modules/caniuse-lite/data/features/customevent.js new file mode 100644 index 0000000..a93118f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/customevent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","132":"G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","132":"J E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I","16":"z J E F K L","388":"G A B C"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z J","388":"MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G UC VC WC XC","132":"B tB EC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"ZC","16":"2B FC","388":"aC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"uC vC wC","388":"wB I xC FC"},J:{"1":"A","388":"E"},K:{"1":"C l uB","2":"A","132":"B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"CustomEvent"}; diff --git a/node_modules/caniuse-lite/data/features/datalist.js b/node_modules/caniuse-lite/data/features/datalist.js new file mode 100644 index 0000000..1f421ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/datalist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F G","260":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H","1284":"M N O"},C:{"1":"w x y D 0B 1B","8":"HC wB IC JC","516":"o p q r s t u v","4612":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n"},D:{"1":"kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"0 I z J E F G A B C K L H M N O","132":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z J E F G A B C LC 2B MC NC OC PC 3B tB"},F:{"1":"G B C fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},G:{"8":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC","2049":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D zC","8":"wB I uC vC wC xC FC yC"},J:{"1":"A","8":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:1,C:"Datalist element"}; diff --git a/node_modules/caniuse-lite/data/features/dataset.js b/node_modules/caniuse-lite/data/features/dataset.js new file mode 100644 index 0000000..8571664 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dataset.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","4":"J E F G A GC"},B:{"1":"C K L H M","129":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","4":"HC wB I z IC JC","129":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"OB PB QB RB SB TB UB VB WB XB","4":"I z J","129":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"4":"I z LC 2B","129":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"C BB CB DB EB FB GB HB IB JB KB tB EC YC uB","4":"G B UC VC WC XC","129":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"4":"2B ZC FC","129":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"4":"tC"},I:{"4":"uC vC wC","129":"wB I D xC FC yC zC"},J:{"129":"E A"},K:{"1":"C tB EC uB","4":"A B","129":"l"},L:{"129":"D"},M:{"129":"D"},N:{"1":"B","4":"A"},O:{"129":"0C"},P:{"129":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"129":"4B"},R:{"129":"ED"},S:{"1":"FD","129":"GD"}},B:1,C:"dataset & data-* attributes"}; diff --git a/node_modules/caniuse-lite/data/features/datauri.js b/node_modules/caniuse-lite/data/features/datauri.js new file mode 100644 index 0000000..20c3057 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/datauri.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","132":"F","260":"G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K H M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Data URIs"}; diff --git a/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js b/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js new file mode 100644 index 0000000..18c2323 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"GC","132":"J E F G A B"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N"},C:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC","260":"VB WB XB YB","772":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},D:{"1":"lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 I z J E F G A B C K L H M N O j k","260":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB","772":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB"},E:{"1":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B","132":"J E F G A MC NC OC PC","260":"B 3B tB"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G B C UC VC WC XC tB EC YC","132":"uB","260":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","772":"0 1 2 3 H M N O j k"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC","132":"F bC cC dC eC fC gC"},H:{"132":"tC"},I:{"1":"D","16":"wB uC vC wC","132":"I xC FC","772":"yC zC"},J:{"132":"E A"},K:{"1":"l","16":"A B C tB EC","132":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","260":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","132":"FD"}},B:6,C:"Date.prototype.toLocaleDateString"}; diff --git a/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js b/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js new file mode 100644 index 0000000..1dbd4b9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T","66":"U V W X Y"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB UC VC WC XC tB EC YC uB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Declarative Shadow DOM"}; diff --git a/node_modules/caniuse-lite/data/features/decorators.js b/node_modules/caniuse-lite/data/features/decorators.js new file mode 100644 index 0000000..9c2e327 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/decorators.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Decorators"}; diff --git a/node_modules/caniuse-lite/data/features/details.js b/node_modules/caniuse-lite/data/features/details.js new file mode 100644 index 0000000..be5f17a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/details.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B GC","8":"J E F"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC","8":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC","194":"QB RB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"I z J E F G A B","257":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB","769":"C K L H M N O"},E:{"1":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z LC 2B MC","257":"J E F G A NC OC PC","1025":"B 3B tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"C tB EC YC uB","8":"G B UC VC WC XC"},G:{"1":"F bC cC dC eC fC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC aC","1025":"gC hC iC"},H:{"8":"tC"},I:{"1":"I D xC FC yC zC","8":"wB uC vC wC"},J:{"1":"A","8":"E"},K:{"1":"l","8":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Details & Summary elements"}; diff --git a/node_modules/caniuse-lite/data/features/deviceorientation.js b/node_modules/caniuse-lite/data/features/deviceorientation.js new file mode 100644 index 0000000..8bd6844 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/deviceorientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"C K L H M N O","4":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"HC wB IC","4":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"I z JC"},D:{"2":"I z J","4":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","4":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"2B ZC","4":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"uC vC wC","4":"wB I D xC FC yC zC"},J:{"2":"E","4":"A"},K:{"1":"C uB","2":"A B tB EC","4":"l"},L:{"4":"D"},M:{"4":"D"},N:{"1":"B","2":"A"},O:{"4":"0C"},P:{"4":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"4":"4B"},R:{"4":"ED"},S:{"4":"FD GD"}},B:4,C:"DeviceOrientation & DeviceMotion events"}; diff --git a/node_modules/caniuse-lite/data/features/devicepixelratio.js b/node_modules/caniuse-lite/data/features/devicepixelratio.js new file mode 100644 index 0000000..8b04d07 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/devicepixelratio.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Window.devicePixelRatio"}; diff --git a/node_modules/caniuse-lite/data/features/dialog.js b/node_modules/caniuse-lite/data/features/dialog.js new file mode 100644 index 0000000..f2f8b3a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dialog.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC","194":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","1218":"Q R zB S T U V W X Y Z a b c d e f g"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB","322":"BB CB DB EB FB"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H M N O UC VC WC XC tB EC YC uB","578":"0 1 2 j k"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:1,C:"Dialog element"}; diff --git a/node_modules/caniuse-lite/data/features/dispatchevent.js b/node_modules/caniuse-lite/data/features/dispatchevent.js new file mode 100644 index 0000000..6db078b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dispatchevent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","16":"GC","129":"G A","130":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","129":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"EventTarget.dispatchEvent"}; diff --git a/node_modules/caniuse-lite/data/features/dnssec.js b/node_modules/caniuse-lite/data/features/dnssec.js new file mode 100644 index 0000000..7599373 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dnssec.js @@ -0,0 +1 @@ +module.exports={A:{A:{"132":"J E F G A B GC"},B:{"132":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"132":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"132":"I z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","388":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k"},E:{"132":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"132":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"132":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"132":"tC"},I:{"132":"wB I D uC vC wC xC FC yC zC"},J:{"132":"E A"},K:{"132":"A B C l tB EC uB"},L:{"132":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"132":"0C"},P:{"132":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"132":"4B"},R:{"132":"ED"},S:{"132":"FD GD"}},B:6,C:"DNSSEC and DANE"}; diff --git a/node_modules/caniuse-lite/data/features/do-not-track.js b/node_modules/caniuse-lite/data/features/do-not-track.js new file mode 100644 index 0000000..45e7169 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/do-not-track.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","164":"G A","260":"B"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F IC JC","516":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 I z J E F G A B C K L H M N O j k"},E:{"1":"J A B C MC PC 3B tB","2":"I z K L H LC 2B uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","1028":"E F G NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC"},G:{"1":"eC fC gC hC iC jC kC","2":"2B ZC FC aC bC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","1028":"F cC dC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"16":"E","1028":"A"},K:{"1":"l uB","16":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"164":"A","260":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:7,C:"Do Not Track API"}; diff --git a/node_modules/caniuse-lite/data/features/document-currentscript.js b/node_modules/caniuse-lite/data/features/document-currentscript.js new file mode 100644 index 0000000..a6d33ce --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-currentscript.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k"},E:{"1":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"document.currentScript"}; diff --git a/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js b/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js new file mode 100644 index 0000000..41ab649 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","16":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:7,C:"document.evaluate & XPath"}; diff --git a/node_modules/caniuse-lite/data/features/document-execcommand.js b/node_modules/caniuse-lite/data/features/document-execcommand.js new file mode 100644 index 0000000..5cd5114 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-execcommand.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","16":"G UC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC","16":"FC aC bC"},H:{"2":"tC"},I:{"1":"D xC FC yC zC","2":"wB I uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:7,C:"Document.execCommand()"}; diff --git a/node_modules/caniuse-lite/data/features/document-policy.js b/node_modules/caniuse-lite/data/features/document-policy.js new file mode 100644 index 0000000..a8d9b95 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T","132":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T","132":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB UC VC WC XC tB EC YC uB","132":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","132":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","132":"l"},L:{"132":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"132":"ED"},S:{"2":"FD GD"}},B:7,C:"Document Policy"}; diff --git a/node_modules/caniuse-lite/data/features/document-scrollingelement.js b/node_modules/caniuse-lite/data/features/document-scrollingelement.js new file mode 100644 index 0000000..61c6b71 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/document-scrollingelement.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C K"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"document.scrollingElement"}; diff --git a/node_modules/caniuse-lite/data/features/documenthead.js b/node_modules/caniuse-lite/data/features/documenthead.js new file mode 100644 index 0000000..e74360d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/documenthead.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G UC VC WC XC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"document.head"}; diff --git a/node_modules/caniuse-lite/data/features/dom-manip-convenience.js b/node_modules/caniuse-lite/data/features/dom-manip-convenience.js new file mode 100644 index 0000000..7c832f8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dom-manip-convenience.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","194":"VB WB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB UC VC WC XC tB EC YC uB","194":"JB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"DOM manipulation convenience methods"}; diff --git a/node_modules/caniuse-lite/data/features/dom-range.js b/node_modules/caniuse-lite/data/features/dom-range.js new file mode 100644 index 0000000..e2e9a23 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dom-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Document Object Model Range"}; diff --git a/node_modules/caniuse-lite/data/features/domcontentloaded.js b/node_modules/caniuse-lite/data/features/domcontentloaded.js new file mode 100644 index 0000000..008fffa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/domcontentloaded.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"DOMContentLoaded"}; diff --git a/node_modules/caniuse-lite/data/features/dommatrix.js b/node_modules/caniuse-lite/data/features/dommatrix.js new file mode 100644 index 0000000..228a54d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dommatrix.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"132":"C K L H M N O","1028":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC","1028":"kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2564":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB","3076":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB"},D:{"16":"I z J E","132":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB","388":"F","1028":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"16":"I LC 2B","132":"z J E F G A MC NC OC PC 3B","1028":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","1028":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"16":"2B ZC FC","132":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"132":"I xC FC yC zC","292":"wB uC vC wC","1028":"D"},J:{"16":"E","132":"A"},K:{"2":"A B C tB EC uB","1028":"l"},L:{"1028":"D"},M:{"1028":"D"},N:{"132":"A B"},O:{"1028":"0C"},P:{"132":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1028":"4B"},R:{"1028":"ED"},S:{"1028":"GD","2564":"FD"}},B:4,C:"DOMMatrix"}; diff --git a/node_modules/caniuse-lite/data/features/download.js b/node_modules/caniuse-lite/data/features/download.js new file mode 100644 index 0000000..1c57f88 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/download.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Download attribute"}; diff --git a/node_modules/caniuse-lite/data/features/dragndrop.js b/node_modules/caniuse-lite/data/features/dragndrop.js new file mode 100644 index 0000000..d4a9cd6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/dragndrop.js @@ -0,0 +1 @@ +module.exports={A:{A:{"644":"J E F G GC","772":"A B"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","8":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","8":"G B UC VC WC XC tB EC YC"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","1025":"D"},J:{"2":"E A"},K:{"1":"uB","8":"A B C tB EC","1025":"l"},L:{"1025":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1025":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:1,C:"Drag and Drop"}; diff --git a/node_modules/caniuse-lite/data/features/element-closest.js b/node_modules/caniuse-lite/data/features/element-closest.js new file mode 100644 index 0000000..359d23d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/element-closest.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB IC JC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Element.closest()"}; diff --git a/node_modules/caniuse-lite/data/features/element-from-point.js b/node_modules/caniuse-lite/data/features/element-from-point.js new file mode 100644 index 0000000..d30e08a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/element-from-point.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","16":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","16":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","16":"G UC VC WC XC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"C l uB","16":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"document.elementFromPoint()"}; diff --git a/node_modules/caniuse-lite/data/features/element-scroll-methods.js b/node_modules/caniuse-lite/data/features/element-scroll-methods.js new file mode 100644 index 0000000..4548727 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/element-scroll-methods.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC","132":"A B C K 3B tB uB 4B"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB UC VC WC XC tB EC YC uB"},G:{"1":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC","132":"gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)"}; diff --git a/node_modules/caniuse-lite/data/features/eme.js b/node_modules/caniuse-lite/data/features/eme.js new file mode 100644 index 0000000..b3a8a73 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/eme.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","164":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB IC JC"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB","132":"EB FB GB HB IB JB KB"},E:{"1":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC","164":"E F G A B OC PC 3B tB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 G B C H M N O j k UC VC WC XC tB EC YC uB","132":"1 2 3 4 5 6 7"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Encrypted Media Extensions"}; diff --git a/node_modules/caniuse-lite/data/features/eot.js b/node_modules/caniuse-lite/data/features/eot.js new file mode 100644 index 0000000..24cb3d4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/eot.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","2":"GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"EOT - Embedded OpenType fonts"}; diff --git a/node_modules/caniuse-lite/data/features/es5.js b/node_modules/caniuse-lite/data/features/es5.js new file mode 100644 index 0000000..9d09b42 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es5.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E GC","260":"G","1026":"F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","4":"HC wB IC JC","132":"0 I z J E F G A B C K L H M N O j"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"I z J E F G A B C K L H M N O","132":"0 1 j k"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","4":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","4":"G B C UC VC WC XC tB EC YC","132":"uB"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","4":"2B ZC FC aC"},H:{"132":"tC"},I:{"1":"D yC zC","4":"wB uC vC wC","132":"xC FC","900":"I"},J:{"1":"A","4":"E"},K:{"1":"l","4":"A B C tB EC","132":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ECMAScript 5"}; diff --git a/node_modules/caniuse-lite/data/features/es6-class.js b/node_modules/caniuse-lite/data/features/es6-class.js new file mode 100644 index 0000000..0907d98 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-class.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB","132":"LB MB NB OB PB QB RB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 G B C H M N O j k UC VC WC XC tB EC YC uB","132":"8 9 AB BB CB DB EB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ES6 classes"}; diff --git a/node_modules/caniuse-lite/data/features/es6-generators.js b/node_modules/caniuse-lite/data/features/es6-generators.js new file mode 100644 index 0000000..bb975ad --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-generators.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ES6 Generators"}; diff --git a/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js b/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js new file mode 100644 index 0000000..500dd72 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB IC JC","194":"hB"},D:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"JavaScript modules: dynamic import()"}; diff --git a/node_modules/caniuse-lite/data/features/es6-module.js b/node_modules/caniuse-lite/data/features/es6-module.js new file mode 100644 index 0000000..c658c24 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-module.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","4097":"M N O","4290":"H"},C:{"1":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB IC JC","322":"XB YB ZB aB bB xB"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB","194":"cB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC","3076":"3B"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB UC VC WC XC tB EC YC uB","194":"QB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC","3076":"hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"JavaScript modules via script tag"}; diff --git a/node_modules/caniuse-lite/data/features/es6-number.js b/node_modules/caniuse-lite/data/features/es6-number.js new file mode 100644 index 0000000..37149d5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-number.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H IC JC","132":"0 1 2 3 M N O j k","260":"4 5 6 7 8 9","516":"AB"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N O","1028":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","1028":"0 H M N O j"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC","1028":"xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ES6 Number"}; diff --git a/node_modules/caniuse-lite/data/features/es6-string-includes.js b/node_modules/caniuse-lite/data/features/es6-string-includes.js new file mode 100644 index 0000000..a827389 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6-string-includes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB IC JC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"String.prototype.includes"}; diff --git a/node_modules/caniuse-lite/data/features/es6.js b/node_modules/caniuse-lite/data/features/es6.js new file mode 100644 index 0000000..78ce700 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/es6.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","388":"B"},B:{"257":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L","769":"H M N O"},C:{"2":"HC wB I z IC JC","4":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","257":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 I z J E F G A B C K L H M N O j","4":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","257":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC","4":"F G OC PC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","4":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB","257":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC","4":"F cC dC eC fC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","4":"yC zC","257":"D"},J:{"2":"E","4":"A"},K:{"2":"A B C tB EC uB","257":"l"},L:{"257":"D"},M:{"257":"D"},N:{"2":"A","388":"B"},O:{"257":"0C"},P:{"4":"I","257":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"257":"4B"},R:{"257":"ED"},S:{"4":"FD","257":"GD"}},B:6,C:"ECMAScript 2015 (ES6)"}; diff --git a/node_modules/caniuse-lite/data/features/eventsource.js b/node_modules/caniuse-lite/data/features/eventsource.js new file mode 100644 index 0000000..6900b84 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/eventsource.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","4":"G UC VC WC XC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"C l tB EC uB","4":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Server-sent events"}; diff --git a/node_modules/caniuse-lite/data/features/extended-system-fonts.js b/node_modules/caniuse-lite/data/features/extended-system-fonts.js new file mode 100644 index 0000000..af2e35e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/extended-system-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family"}; diff --git a/node_modules/caniuse-lite/data/features/feature-policy.js b/node_modules/caniuse-lite/data/features/feature-policy.js new file mode 100644 index 0000000..f869875 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/feature-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W","2":"C K L H M N O","1025":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l IC JC","260":"oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"oB pB qB rB sB P Q R S T U V W","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB","132":"cB yB dB eB fB gB hB iB jB kB lB mB nB l","1025":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B LC 2B MC NC OC PC 3B","772":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB UC VC WC XC tB EC YC uB","132":"QB RB SB TB UB VB WB XB YB ZB aB bB cB","1025":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC","772":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","1025":"l"},L:{"1025":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C","132":"4C 5C 3B"},Q:{"132":"4B"},R:{"1025":"ED"},S:{"2":"FD","260":"GD"}},B:7,C:"Feature Policy"}; diff --git a/node_modules/caniuse-lite/data/features/fetch.js b/node_modules/caniuse-lite/data/features/fetch.js new file mode 100644 index 0000000..ded60a2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB IC JC","1025":"IB","1218":"DB EB FB GB HB"},D:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB","260":"JB","772":"KB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 G B C H M N O j k UC VC WC XC tB EC YC uB","260":"6","772":"7"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Fetch"}; diff --git a/node_modules/caniuse-lite/data/features/fieldset-disabled.js b/node_modules/caniuse-lite/data/features/fieldset-disabled.js new file mode 100644 index 0000000..77083c3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fieldset-disabled.js @@ -0,0 +1 @@ +module.exports={A:{A:{"16":"GC","132":"F G","388":"J E A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H","16":"0 M N O"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","16":"G UC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"388":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A","260":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"disabled attribute of the fieldset element"}; diff --git a/node_modules/caniuse-lite/data/features/fileapi.js b/node_modules/caniuse-lite/data/features/fileapi.js new file mode 100644 index 0000000..0de059f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fileapi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","260":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","260":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k JC"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z","260":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB","388":"J E F G A B C"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B","260":"J E F G NC OC PC","388":"MC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B UC VC WC XC","260":"0 1 2 3 C H M N O j k tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","260":"F bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D zC","2":"uC vC wC","260":"yC","388":"wB I xC FC"},J:{"260":"A","388":"E"},K:{"1":"l","2":"A B","260":"C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","260":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"File API"}; diff --git a/node_modules/caniuse-lite/data/features/filereader.js b/node_modules/caniuse-lite/data/features/filereader.js new file mode 100644 index 0000000..f98fde6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/filereader.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G B UC VC WC XC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"C l tB EC uB","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"FileReader API"}; diff --git a/node_modules/caniuse-lite/data/features/filereadersync.js b/node_modules/caniuse-lite/data/features/filereadersync.js new file mode 100644 index 0000000..3bd7c94 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/filereadersync.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G UC VC","16":"B WC XC tB EC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"C l EC uB","2":"A","16":"B tB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"FileReaderSync"}; diff --git a/node_modules/caniuse-lite/data/features/filesystem.js b/node_modules/caniuse-lite/data/features/filesystem.js new file mode 100644 index 0000000..4ec6e6e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/filesystem.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"I z J E","33":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","36":"F G A B C"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E","33":"A"},K:{"2":"A B C tB EC uB","33":"l"},L:{"33":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"33":"0C"},P:{"2":"I","33":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"33":"ED"},S:{"2":"FD GD"}},B:7,C:"Filesystem & FileWriter API"}; diff --git a/node_modules/caniuse-lite/data/features/flac.js b/node_modules/caniuse-lite/data/features/flac.js new file mode 100644 index 0000000..3e73ad9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flac.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB IC JC"},D:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB","16":"NB OB PB","388":"QB RB SB TB UB VB WB XB YB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","516":"B C tB uB"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"uC vC wC","16":"wB I xC FC yC zC"},J:{"1":"A","2":"E"},K:{"1":"l uB","16":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","129":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"FLAC audio format"}; diff --git a/node_modules/caniuse-lite/data/features/flexbox-gap.js b/node_modules/caniuse-lite/data/features/flexbox-gap.js new file mode 100644 index 0000000..95a98b6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flexbox-gap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S"},C:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB IC JC"},D:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S"},E:{"1":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B"},F:{"1":"lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB UC VC WC XC tB EC YC uB"},G:{"1":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"gap property for Flexbox"}; diff --git a/node_modules/caniuse-lite/data/features/flexbox.js b/node_modules/caniuse-lite/data/features/flexbox.js new file mode 100644 index 0000000..6ec47b6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flexbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","1028":"B","1316":"A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","164":"0 HC wB I z J E F G A B C K L H M N O j k IC JC","516":"1 2 3 4 5 6"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"1 2 3 4 5 6 7 k","164":"0 I z J E F G A B C K L H M N O j"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"E F NC OC","164":"I z J LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B C UC VC WC XC tB EC YC","33":"H M"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"F cC dC","164":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"1":"D yC zC","164":"wB I uC vC wC xC FC"},J:{"1":"A","164":"E"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","292":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Flexible Box Layout Module"}; diff --git a/node_modules/caniuse-lite/data/features/flow-root.js b/node_modules/caniuse-lite/data/features/flow-root.js new file mode 100644 index 0000000..2f040e4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/flow-root.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC"},D:{"1":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB UC VC WC XC tB EC YC uB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"display: flow-root"}; diff --git a/node_modules/caniuse-lite/data/features/focusin-focusout-events.js b/node_modules/caniuse-lite/data/features/focusin-focusout-events.js new file mode 100644 index 0000000..adadd3f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/focusin-focusout-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","2":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G UC VC WC XC","16":"B tB EC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"I D xC FC yC zC","2":"uC vC wC","16":"wB"},J:{"1":"E A"},K:{"1":"C l uB","2":"A","16":"B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"focusin & focusout events"}; diff --git a/node_modules/caniuse-lite/data/features/font-family-system-ui.js b/node_modules/caniuse-lite/data/features/font-family-system-ui.js new file mode 100644 index 0000000..af37034 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-family-system-ui.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB IC JC","132":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a"},D:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","260":"WB XB YB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC","16":"G","132":"A PC 3B"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC","132":"eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"132":"FD GD"}},B:5,C:"system-ui value for font-family"}; diff --git a/node_modules/caniuse-lite/data/features/font-feature.js b/node_modules/caniuse-lite/data/features/font-feature.js new file mode 100644 index 0000000..aa2eea6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-feature.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB","164":"I z J E F G A B C K L"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H","33":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","292":"0 M N O j"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"E F G LC 2B NC OC","4":"I z J MC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F cC dC eC","4":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","33":"yC zC"},J:{"2":"E","33":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","33":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS font-feature-settings"}; diff --git a/node_modules/caniuse-lite/data/features/font-kerning.js b/node_modules/caniuse-lite/data/features/font-kerning.js new file mode 100644 index 0000000..a6cdc51 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-kerning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"3 4 5 6 7 8 9 AB BB CB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k","33":"8 9 AB BB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC","33":"E F G OC"},F:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H UC VC WC XC tB EC YC uB","33":"0 M N O"},G:{"1":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","33":"F dC eC fC gC hC iC jC"},H:{"2":"tC"},I:{"1":"D zC","2":"wB I uC vC wC xC FC","33":"yC"},J:{"2":"E","33":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 font-kerning"}; diff --git a/node_modules/caniuse-lite/data/features/font-loading.js b/node_modules/caniuse-lite/data/features/font-loading.js new file mode 100644 index 0000000..b92d665 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-loading.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB IC JC","194":"EB FB GB HB IB JB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS Font Loading"}; diff --git a/node_modules/caniuse-lite/data/features/font-size-adjust.js b/node_modules/caniuse-lite/data/features/font-size-adjust.js new file mode 100644 index 0000000..27598f8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-size-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","194":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB","194":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"2":"0 1 2 3 4 5 6 7 8 G B C H M N O j k UC VC WC XC tB EC YC uB","194":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"194":"4B"},R:{"2":"ED"},S:{"1":"GD","2":"FD"}},B:2,C:"CSS font-size-adjust"}; diff --git a/node_modules/caniuse-lite/data/features/font-smooth.js b/node_modules/caniuse-lite/data/features/font-smooth.js new file mode 100644 index 0000000..e2e0855 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-smooth.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","676":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC","804":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"LC 2B","676":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","676":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"804":"FD GD"}},B:7,C:"CSS font-smooth"}; diff --git a/node_modules/caniuse-lite/data/features/font-unicode-range.js b/node_modules/caniuse-lite/data/features/font-unicode-range.js new file mode 100644 index 0000000..447f440 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-unicode-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","4":"G A B"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","4":"C K L H M"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC","194":"FB GB HB IB JB KB LB MB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","4":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","4":"0 1 H M N O j k"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","4":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","4":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","4":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","4":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Font unicode-range subsetting"}; diff --git a/node_modules/caniuse-lite/data/features/font-variant-alternates.js b/node_modules/caniuse-lite/data/features/font-variant-alternates.js new file mode 100644 index 0000000..7f357eb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-variant-alternates.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","130":"A B"},B:{"1":"x y D","130":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","130":"0 1 2 I z J E F G A B C K L H M N O j k","322":"3 4 5 6 7 8 9 AB BB CB"},D:{"1":"x y D 0B 1B KC","2":"I z J E F G A B C K L H","130":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"E F G LC 2B NC OC","130":"I z J MC"},F:{"1":"h i","2":"G B C UC VC WC XC tB EC YC uB","130":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B cC dC eC","130":"ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","130":"yC zC"},J:{"2":"E","130":"A"},K:{"2":"A B C tB EC uB","130":"l"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"130":"0C"},P:{"130":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"130":"4B"},R:{"130":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS font-variant-alternates"}; diff --git a/node_modules/caniuse-lite/data/features/font-variant-numeric.js b/node_modules/caniuse-lite/data/features/font-variant-numeric.js new file mode 100644 index 0000000..f14c194 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/font-variant-numeric.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB IC JC"},D:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB UC VC WC XC tB EC YC uB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","16":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS font-variant-numeric"}; diff --git a/node_modules/caniuse-lite/data/features/fontface.js b/node_modules/caniuse-lite/data/features/fontface.js new file mode 100644 index 0000000..ee89477 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fontface.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","132":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","2":"G UC"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","260":"2B ZC"},H:{"2":"tC"},I:{"1":"I D xC FC yC zC","2":"uC","4":"wB vC wC"},J:{"1":"A","4":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"@font-face Web fonts"}; diff --git a/node_modules/caniuse-lite/data/features/form-attribute.js b/node_modules/caniuse-lite/data/features/form-attribute.js new file mode 100644 index 0000000..2982d80 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/form-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Form attribute"}; diff --git a/node_modules/caniuse-lite/data/features/form-submit-attributes.js b/node_modules/caniuse-lite/data/features/form-submit-attributes.js new file mode 100644 index 0000000..8d5c4b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/form-submit-attributes.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","2":"G UC","16":"VC WC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"I D xC FC yC zC","2":"uC vC wC","16":"wB"},J:{"1":"A","2":"E"},K:{"1":"B C l tB EC uB","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Attributes for form submission"}; diff --git a/node_modules/caniuse-lite/data/features/form-validation.js b/node_modules/caniuse-lite/data/features/form-validation.js new file mode 100644 index 0000000..6d7e530 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/form-validation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","132":"z J E F G A MC NC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","2":"G UC"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B","132":"F ZC FC aC bC cC dC eC fC gC"},H:{"516":"tC"},I:{"1":"D zC","2":"wB uC vC wC","132":"I xC FC yC"},J:{"1":"A","132":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","132":"FD"}},B:1,C:"Form validation"}; diff --git a/node_modules/caniuse-lite/data/features/forms.js b/node_modules/caniuse-lite/data/features/forms.js new file mode 100644 index 0000000..a9951ee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/forms.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","4":"A B","8":"J E F G"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","4":"C K L H"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"HC wB IC JC"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},E:{"4":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"LC 2B"},F:{"1":"G B C VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","4":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"2":"2B","4":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","4":"yC zC"},J:{"2":"E","4":"A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","4":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"4":"FD GD"}},B:1,C:"HTML5 form features"}; diff --git a/node_modules/caniuse-lite/data/features/fullscreen.js b/node_modules/caniuse-lite/data/features/fullscreen.js new file mode 100644 index 0000000..bcaf347 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/fullscreen.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","548":"B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","516":"C K L H M N O"},C:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G IC JC","676":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","1700":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB"},D:{"1":"mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L","676":"0 H M N O","804":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB"},E:{"1":"CC DC SC TC","2":"I z LC 2B","548":"6B 7B 8B vB 9B AC BC","676":"MC","804":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B C UC VC WC XC tB EC YC","804":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC","2052":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E","292":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","548":"B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","804":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Full Screen API"}; diff --git a/node_modules/caniuse-lite/data/features/gamepad.js b/node_modules/caniuse-lite/data/features/gamepad.js new file mode 100644 index 0000000..dc702c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/gamepad.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O j","33":"1 2 3 k"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"Gamepad API"}; diff --git a/node_modules/caniuse-lite/data/features/geolocation.js b/node_modules/caniuse-lite/data/features/geolocation.js new file mode 100644 index 0000000..cffe8e8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/geolocation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J E F"},B:{"1":"C K L H M N O","129":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB IC JC","8":"HC wB","129":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","4":"I","129":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I LC 2B","129":"A"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C M N O j k AB BB CB DB EB FB GB HB XC tB EC YC uB","2":"G H UC","8":"VC WC","129":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC","129":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I uC vC wC xC FC yC zC","129":"D"},J:{"1":"E A"},K:{"1":"B C tB EC uB","8":"A","129":"l"},L:{"129":"D"},M:{"129":"D"},N:{"1":"A B"},O:{"129":"0C"},P:{"1":"I","129":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"129":"4B"},R:{"129":"ED"},S:{"1":"FD","129":"GD"}},B:2,C:"Geolocation"}; diff --git a/node_modules/caniuse-lite/data/features/getboundingclientrect.js b/node_modules/caniuse-lite/data/features/getboundingclientrect.js new file mode 100644 index 0000000..3fc7c5e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getboundingclientrect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"644":"J E GC","2049":"G A B","2692":"F"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2049":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC","260":"I z J E F G A B","1156":"wB","1284":"IC","1796":"JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","16":"G UC","132":"VC WC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","132":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2049":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Element.getBoundingClientRect()"}; diff --git a/node_modules/caniuse-lite/data/features/getcomputedstyle.js b/node_modules/caniuse-lite/data/features/getcomputedstyle.js new file mode 100644 index 0000000..d31730d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getcomputedstyle.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC","132":"wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","260":"I z J E F G A"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","260":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","260":"G UC VC WC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","260":"2B ZC FC"},H:{"260":"tC"},I:{"1":"I D xC FC yC zC","260":"wB uC vC wC"},J:{"1":"A","260":"E"},K:{"1":"B C l tB EC uB","260":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"getComputedStyle"}; diff --git a/node_modules/caniuse-lite/data/features/getelementsbyclassname.js b/node_modules/caniuse-lite/data/features/getelementsbyclassname.js new file mode 100644 index 0000000..a5e94e9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getelementsbyclassname.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","8":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"getElementsByClassName"}; diff --git a/node_modules/caniuse-lite/data/features/getrandomvalues.js b/node_modules/caniuse-lite/data/features/getrandomvalues.js new file mode 100644 index 0000000..ce99509 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/getrandomvalues.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","33":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","33":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"crypto.getRandomValues()"}; diff --git a/node_modules/caniuse-lite/data/features/gyroscope.js b/node_modules/caniuse-lite/data/features/gyroscope.js new file mode 100644 index 0000000..f171ade --- /dev/null +++ b/node_modules/caniuse-lite/data/features/gyroscope.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","194":"bB xB cB yB dB eB fB gB hB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:4,C:"Gyroscope"}; diff --git a/node_modules/caniuse-lite/data/features/hardwareconcurrency.js b/node_modules/caniuse-lite/data/features/hardwareconcurrency.js new file mode 100644 index 0000000..3f491ab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hardwareconcurrency.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB"},E:{"2":"I z J E LC 2B MC NC OC","129":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","194":"F G A PC"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC aC bC cC","129":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","194":"F dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"navigator.hardwareConcurrency"}; diff --git a/node_modules/caniuse-lite/data/features/hashchange.js b/node_modules/caniuse-lite/data/features/hashchange.js new file mode 100644 index 0000000..b4b55f2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hashchange.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","8":"J E GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","8":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"I"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","8":"G UC VC WC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"2":"tC"},I:{"1":"wB I D vC wC xC FC yC zC","2":"uC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Hashchange event"}; diff --git a/node_modules/caniuse-lite/data/features/heif.js b/node_modules/caniuse-lite/data/features/heif.js new file mode 100644 index 0000000..93b23ca --- /dev/null +++ b/node_modules/caniuse-lite/data/features/heif.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A LC 2B MC NC OC PC 3B","130":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC","130":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"HEIF/ISO Base Media File Format"}; diff --git a/node_modules/caniuse-lite/data/features/hevc.js b/node_modules/caniuse-lite/data/features/hevc.js new file mode 100644 index 0000000..cf801ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hevc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"132":"C K L H M N O","1028":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s","2052":"t u v w x y D 0B 1B KC"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","516":"B C tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c UC VC WC XC tB EC YC uB","2052":"d e f g h i"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","2052":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","258":"l"},L:{"2052":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"k","2":"I","258":"j 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:6,C:"HEVC/H.265 video format"}; diff --git a/node_modules/caniuse-lite/data/features/hidden.js b/node_modules/caniuse-lite/data/features/hidden.js new file mode 100644 index 0000000..382f945 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/hidden.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G B UC VC WC XC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"I D xC FC yC zC","2":"wB uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"C l tB EC uB","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"hidden attribute"}; diff --git a/node_modules/caniuse-lite/data/features/high-resolution-time.js b/node_modules/caniuse-lite/data/features/high-resolution-time.js new file mode 100644 index 0000000..e882d5b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/high-resolution-time.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O","33":"1 2 j k"},E:{"1":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"High Resolution Time API"}; diff --git a/node_modules/caniuse-lite/data/features/history.js b/node_modules/caniuse-lite/data/features/history.js new file mode 100644 index 0000000..2de3317 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/history.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","4":"z MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i EC YC uB","2":"G B UC VC WC XC tB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC","4":"FC"},H:{"2":"tC"},I:{"1":"D vC wC FC yC zC","2":"wB I uC xC"},J:{"1":"E A"},K:{"1":"C l tB EC uB","2":"A B"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Session history management"}; diff --git a/node_modules/caniuse-lite/data/features/html-media-capture.js b/node_modules/caniuse-lite/data/features/html-media-capture.js new file mode 100644 index 0000000..0ece900 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/html-media-capture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC aC","129":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC","257":"vC wC"},J:{"1":"A","16":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"516":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"16":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:2,C:"HTML Media Capture"}; diff --git a/node_modules/caniuse-lite/data/features/html5semantic.js b/node_modules/caniuse-lite/data/features/html5semantic.js new file mode 100644 index 0000000..8de8d44 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/html5semantic.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F","260":"G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC","132":"wB IC JC","260":"0 I z J E F G A B C K L H M N O j"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"I z","260":"0 1 2 3 4 J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"I LC 2B","260":"z J MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","132":"G B UC VC WC XC","260":"C tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"2B","260":"ZC FC aC bC"},H:{"132":"tC"},I:{"1":"D yC zC","132":"uC","260":"wB I vC wC xC FC"},J:{"260":"E A"},K:{"1":"l","132":"A","260":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"HTML5 semantic elements"}; diff --git a/node_modules/caniuse-lite/data/features/http-live-streaming.js b/node_modules/caniuse-lite/data/features/http-live-streaming.js new file mode 100644 index 0000000..8101c85 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/http-live-streaming.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O","2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"HTTP Live Streaming (HLS)"}; diff --git a/node_modules/caniuse-lite/data/features/http2.js b/node_modules/caniuse-lite/data/features/http2.js new file mode 100644 index 0000000..f17ebfe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/http2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"C K L H M N O","513":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC","513":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"KB LB MB NB OB PB QB RB SB TB","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB","513":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC","260":"G A PC 3B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB","2":"0 1 2 3 4 5 6 G B C H M N O j k UC VC WC XC tB EC YC uB","513":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","513":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","513":"l"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"513":"0C"},P:{"1":"I","513":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"513":"4B"},R:{"513":"ED"},S:{"1":"FD","513":"GD"}},B:6,C:"HTTP/2 protocol"}; diff --git a/node_modules/caniuse-lite/data/features/http3.js b/node_modules/caniuse-lite/data/features/http3.js new file mode 100644 index 0000000..e3bfd8c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/http3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","322":"P Q R S T","578":"U V"},C:{"1":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB IC JC","194":"nB l oB pB qB rB sB P Q R zB S T U V W"},D:{"1":"W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB","322":"P Q R S T","578":"U V"},E:{"2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB 4B","2052":"CC DC SC TC","2116":"vB 9B AC BC","3140":"L H QC RC 5B 6B 7B 8B"},F:{"1":"oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB UC VC WC XC tB EC YC uB","578":"l"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC","2052":"CC DC","2116":"qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:6,C:"HTTP/3 protocol"}; diff --git a/node_modules/caniuse-lite/data/features/iframe-sandbox.js b/node_modules/caniuse-lite/data/features/iframe-sandbox.js new file mode 100644 index 0000000..7c2230b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/iframe-sandbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M IC JC","4":"0 1 2 3 4 5 6 N O j k"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC"},H:{"2":"tC"},I:{"1":"wB I D vC wC xC FC yC zC","2":"uC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"sandbox attribute for iframes"}; diff --git a/node_modules/caniuse-lite/data/features/iframe-seamless.js b/node_modules/caniuse-lite/data/features/iframe-seamless.js new file mode 100644 index 0000000..351d11a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/iframe-seamless.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 6 7 8 9 I z J E F G A B C K L H M N O AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","66":"1 2 3 4 5 j k"},E:{"2":"I z J F G A B C K L H LC 2B MC NC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","130":"E OC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","130":"cC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"seamless attribute for iframes"}; diff --git a/node_modules/caniuse-lite/data/features/iframe-srcdoc.js b/node_modules/caniuse-lite/data/features/iframe-srcdoc.js new file mode 100644 index 0000000..abf75c4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/iframe-srcdoc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K L H M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC","8":"0 1 2 3 wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K","8":"0 L H M N O"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B","8":"I z MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B UC VC WC XC","8":"C tB EC YC uB"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B","8":"ZC FC aC"},H:{"2":"tC"},I:{"1":"D yC zC","8":"wB I uC vC wC xC FC"},J:{"1":"A","8":"E"},K:{"1":"l","2":"A B","8":"C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"srcdoc attribute for iframes"}; diff --git a/node_modules/caniuse-lite/data/features/imagecapture.js b/node_modules/caniuse-lite/data/features/imagecapture.js new file mode 100644 index 0000000..4dc0870 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/imagecapture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB IC JC","194":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","322":"WB XB YB ZB aB bB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB UC VC WC XC tB EC YC uB","322":"JB KB LB MB NB OB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"194":"FD GD"}},B:5,C:"ImageCapture API"}; diff --git a/node_modules/caniuse-lite/data/features/ime.js b/node_modules/caniuse-lite/data/features/ime.js new file mode 100644 index 0000000..2f1be91 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ime.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","161":"B"},B:{"2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","161":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A","161":"B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Input Method Editor API"}; diff --git a/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js b/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js new file mode 100644 index 0000000..a9c3acc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"naturalWidth & naturalHeight image properties"}; diff --git a/node_modules/caniuse-lite/data/features/import-maps.js b/node_modules/caniuse-lite/data/features/import-maps.js new file mode 100644 index 0000000..4540b57 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/import-maps.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","194":"P Q R S T U V W X"},C:{"1":"u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n IC JC","322":"o p q r s t"},D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l","194":"oB pB qB rB sB P Q R S T U V W X"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB UC VC WC XC tB EC YC uB","194":"dB eB fB gB hB iB jB kB lB mB nB l oB pB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Import maps"}; diff --git a/node_modules/caniuse-lite/data/features/imports.js b/node_modules/caniuse-lite/data/features/imports.js new file mode 100644 index 0000000..fd5ec71 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/imports.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","8":"A B"},B:{"1":"P","2":"Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 HC wB I z J E F G A B C K L H M N O j k IC JC","8":"9 AB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","72":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","2":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","66":"9 AB BB CB DB","72":"EB"},E:{"2":"I z LC 2B MC","8":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","2":"G B C H M iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","66":"0 N O j k","72":"1"},G:{"2":"2B ZC FC aC bC","8":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"8":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I 1C 2C 3C 4C 5C 3B 6C 7C","2":"j k 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"1":"FD","8":"GD"}},B:5,C:"HTML Imports"}; diff --git a/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js b/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js new file mode 100644 index 0000000..f42bb9e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","16":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB","16":"IC"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"indeterminate checkbox"}; diff --git a/node_modules/caniuse-lite/data/features/indexeddb.js b/node_modules/caniuse-lite/data/features/indexeddb.js new file mode 100644 index 0000000..95a2991 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/indexeddb.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"A B C K L H","36":"I z J E F G"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"A","8":"I z J E F G","33":"2","36":"0 1 B C K L H M N O j k"},E:{"1":"A B C K L H 3B tB uB 4B RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z J E LC 2B MC NC","260":"F G OC PC","516":"QC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC VC","8":"B C WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC aC bC cC","260":"F dC eC fC","516":"rC"},H:{"2":"tC"},I:{"1":"D yC zC","8":"wB I uC vC wC xC FC"},J:{"1":"A","8":"E"},K:{"1":"l","2":"A","8":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"IndexedDB"}; diff --git a/node_modules/caniuse-lite/data/features/indexeddb2.js b/node_modules/caniuse-lite/data/features/indexeddb2.js new file mode 100644 index 0000000..784fcae --- /dev/null +++ b/node_modules/caniuse-lite/data/features/indexeddb2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB IC JC","132":"NB OB PB","260":"QB RB SB TB"},D:{"1":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","132":"RB SB TB UB","260":"VB WB XB YB ZB aB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB","132":"EB FB GB HB","260":"IB JB KB LB MB NB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC","16":"gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","260":"1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","260":"FD"}},B:2,C:"IndexedDB 2.0"}; diff --git a/node_modules/caniuse-lite/data/features/inline-block.js b/node_modules/caniuse-lite/data/features/inline-block.js new file mode 100644 index 0000000..635a9ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/inline-block.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","4":"GC","132":"J E"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","36":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS inline-block"}; diff --git a/node_modules/caniuse-lite/data/features/innertext.js b/node_modules/caniuse-lite/data/features/innertext.js new file mode 100644 index 0000000..2bc9f9c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/innertext.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","16":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"HTMLElement.innerText"}; diff --git a/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js b/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js new file mode 100644 index 0000000..d952cd2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A GC","132":"B"},B:{"132":"C K L H M N O","260":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 HC wB I z J E F G A B C K L H M N O j k IC JC","516":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 N O j k","2":"I z J E F G A B C K L H M","132":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB","260":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J MC NC","2":"I z LC 2B","2052":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC","1025":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1025":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2052":"A B"},O:{"1025":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"260":"4B"},R:{"1":"ED"},S:{"516":"FD GD"}},B:1,C:"autocomplete attribute: on & off values"}; diff --git a/node_modules/caniuse-lite/data/features/input-color.js b/node_modules/caniuse-lite/data/features/input-color.js new file mode 100644 index 0000000..5086502 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G H M UC VC WC XC"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC","129":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"Color input type"}; diff --git a/node_modules/caniuse-lite/data/features/input-datetime.js b/node_modules/caniuse-lite/data/features/input-datetime.js new file mode 100644 index 0000000..9de4447 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-datetime.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC","1090":"WB XB YB ZB","2052":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b","4100":"c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O","2052":"1 2 3 j k"},E:{"2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B","4100":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC","260":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB uC vC wC","514":"I xC FC"},J:{"1":"A","2":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"4100":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2052":"FD GD"}},B:1,C:"Date and time input types"}; diff --git a/node_modules/caniuse-lite/data/features/input-email-tel-url.js b/node_modules/caniuse-lite/data/features/input-email-tel-url.js new file mode 100644 index 0000000..9f4d934 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-email-tel-url.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","132":"uC vC wC"},J:{"1":"A","132":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Email, telephone & URL input types"}; diff --git a/node_modules/caniuse-lite/data/features/input-event.js b/node_modules/caniuse-lite/data/features/input-event.js new file mode 100644 index 0000000..f8e897a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-event.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","2561":"A B","2692":"G"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2561":"C K L H M N O"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC","1537":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB JC","1796":"wB IC"},D:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L","1025":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB","1537":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z J LC 2B","1025":"E F G A B C NC OC PC 3B tB","1537":"MC","4097":"K uB"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","16":"G B C UC VC WC XC tB EC","260":"YC","1025":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","1537":"0 H M N O j k"},G:{"1":"nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC","1025":"F dC eC fC gC hC iC jC kC","1537":"aC bC cC","4097":"lC mC"},H:{"2":"tC"},I:{"16":"uC vC","1025":"D zC","1537":"wB I wC xC FC yC"},J:{"1025":"A","1537":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2561":"A B"},O:{"1":"0C"},P:{"1025":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","1537":"FD"}},B:1,C:"input event"}; diff --git a/node_modules/caniuse-lite/data/features/input-file-accept.js b/node_modules/caniuse-lite/data/features/input-file-accept.js new file mode 100644 index 0000000..146df64 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-file-accept.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","132":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I","16":"1 2 3 4 z J E F k","132":"0 G A B C K L H M N O j"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","132":"J E F G A B NC OC PC 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"2":"bC cC","132":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","514":"2B ZC FC aC"},H:{"2":"tC"},I:{"2":"uC vC wC","260":"wB I xC FC","514":"D yC zC"},J:{"132":"A","260":"E"},K:{"2":"A B C tB EC uB","514":"l"},L:{"260":"D"},M:{"2":"D"},N:{"514":"A","1028":"B"},O:{"2":"0C"},P:{"260":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"260":"4B"},R:{"260":"ED"},S:{"1":"FD GD"}},B:1,C:"accept attribute for file input"}; diff --git a/node_modules/caniuse-lite/data/features/input-file-directory.js b/node_modules/caniuse-lite/data/features/input-file-directory.js new file mode 100644 index 0000000..a98ce63 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-file-directory.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB IC JC"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H M UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Directory selection from file input"}; diff --git a/node_modules/caniuse-lite/data/features/input-file-multiple.js b/node_modules/caniuse-lite/data/features/input-file-multiple.js new file mode 100644 index 0000000..94b4d6d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-file-multiple.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","2":"G UC VC WC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"130":"tC"},I:{"130":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"130":"A B C l tB EC uB"},L:{"132":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"130":"0C"},P:{"130":"I","132":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"132":"4B"},R:{"132":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"Multiple file selection"}; diff --git a/node_modules/caniuse-lite/data/features/input-inputmode.js b/node_modules/caniuse-lite/data/features/input-inputmode.js new file mode 100644 index 0000000..526e37c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-inputmode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M IC JC","4":"0 N O j","194":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d"},D:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB","66":"ZB aB bB xB cB yB dB eB fB gB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB UC VC WC XC tB EC YC uB","66":"MB NB OB PB QB RB SB TB UB VB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"194":"FD GD"}},B:1,C:"inputmode attribute"}; diff --git a/node_modules/caniuse-lite/data/features/input-minlength.js b/node_modules/caniuse-lite/data/features/input-minlength.js new file mode 100644 index 0000000..7f26fcb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-minlength.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB IC JC"},D:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"Minimum length attribute for input fields"}; diff --git a/node_modules/caniuse-lite/data/features/input-number.js b/node_modules/caniuse-lite/data/features/input-number.js new file mode 100644 index 0000000..e15aa7c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-number.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","129":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K","1025":"L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC","513":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"388":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB uC vC wC","388":"I D xC FC yC zC"},J:{"2":"E","388":"A"},K:{"1":"A B C tB EC uB","388":"l"},L:{"388":"D"},M:{"641":"D"},N:{"388":"A B"},O:{"388":"0C"},P:{"388":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"388":"4B"},R:{"388":"ED"},S:{"513":"FD GD"}},B:1,C:"Number input type"}; diff --git a/node_modules/caniuse-lite/data/features/input-pattern.js b/node_modules/caniuse-lite/data/features/input-pattern.js new file mode 100644 index 0000000..97d142f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-pattern.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z","388":"J E F G A MC NC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC","388":"F aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D zC","2":"wB I uC vC wC xC FC yC"},J:{"1":"A","2":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Pattern attribute for input fields"}; diff --git a/node_modules/caniuse-lite/data/features/input-placeholder.js b/node_modules/caniuse-lite/data/features/input-placeholder.js new file mode 100644 index 0000000..bad8085 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-placeholder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i EC YC uB","2":"G UC VC WC XC","132":"B tB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB D uC vC wC FC yC zC","4":"I xC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"input placeholder attribute"}; diff --git a/node_modules/caniuse-lite/data/features/input-range.js b/node_modules/caniuse-lite/data/features/input-range.js new file mode 100644 index 0000000..538ee6c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-range.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"D FC yC zC","4":"wB I uC vC wC xC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Range input type"}; diff --git a/node_modules/caniuse-lite/data/features/input-search.js b/node_modules/caniuse-lite/data/features/input-search.js new file mode 100644 index 0000000..7bd126f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-search.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","129":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K L H M N O"},C:{"2":"HC wB IC JC","129":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"1 2 3 4 I z J E F G A B C K L k","129":"0 H M N O j"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G UC VC WC XC","16":"B tB EC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"129":"tC"},I:{"1":"D yC zC","16":"uC vC","129":"wB I wC xC FC"},J:{"1":"E","129":"A"},K:{"1":"C l","2":"A","16":"B tB EC","129":"uB"},L:{"1":"D"},M:{"129":"D"},N:{"129":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"129":"FD GD"}},B:1,C:"Search input type"}; diff --git a/node_modules/caniuse-lite/data/features/input-selection.js b/node_modules/caniuse-lite/data/features/input-selection.js new file mode 100644 index 0000000..28aaa17 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/input-selection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","16":"G UC VC WC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Selection controls for input & textarea"}; diff --git a/node_modules/caniuse-lite/data/features/insert-adjacent.js b/node_modules/caniuse-lite/data/features/insert-adjacent.js new file mode 100644 index 0000000..2ef3501 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/insert-adjacent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","16":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()"}; diff --git a/node_modules/caniuse-lite/data/features/insertadjacenthtml.js b/node_modules/caniuse-lite/data/features/insertadjacenthtml.js new file mode 100644 index 0000000..d37f8c2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/insertadjacenthtml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","16":"GC","132":"J E F G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","16":"G UC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Element.insertAdjacentHTML()"}; diff --git a/node_modules/caniuse-lite/data/features/internationalization.js b/node_modules/caniuse-lite/data/features/internationalization.js new file mode 100644 index 0000000..366268b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/internationalization.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 I z J E F G A B C K L H M N O j k"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"Internationalization API"}; diff --git a/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js b/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js new file mode 100644 index 0000000..9c1609b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"IntersectionObserver V2"}; diff --git a/node_modules/caniuse-lite/data/features/intersectionobserver.js b/node_modules/caniuse-lite/data/features/intersectionobserver.js new file mode 100644 index 0000000..9830783 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intersectionobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O","2":"C K L","516":"H","1025":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC","194":"VB WB XB"},D:{"1":"bB xB cB yB dB eB fB","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","516":"UB VB WB XB YB ZB aB","1025":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB"},F:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB UC VC WC XC tB EC YC uB","516":"HB IB JB KB LB MB NB","1025":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","1025":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","1025":"l"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","516":"1C 2C"},Q:{"1025":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"IntersectionObserver"}; diff --git a/node_modules/caniuse-lite/data/features/intl-pluralrules.js b/node_modules/caniuse-lite/data/features/intl-pluralrules.js new file mode 100644 index 0000000..26c79e3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intl-pluralrules.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N","130":"O"},C:{"1":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB IC JC"},D:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB UC VC WC XC tB EC YC uB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"Intl.PluralRules API"}; diff --git a/node_modules/caniuse-lite/data/features/intrinsic-width.js b/node_modules/caniuse-lite/data/features/intrinsic-width.js new file mode 100644 index 0000000..c225e4e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/intrinsic-width.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","1025":"d e f g h i m n o p q r s t u v w x y D","1537":"P Q R S T U V W X Y Z a b c"},C:{"2":"HC","932":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB IC JC","2308":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 I z J E F G A B C K L H M N O j k","545":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","1025":"d e f g h i m n o p q r s t u v w x y D 0B 1B KC","1537":"PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC","516":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B","548":"G A PC 3B","676":"E F NC OC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","513":"DB","545":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB","1025":"e f g h i","1537":"CB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d"},G:{"1":"vB 9B AC BC CC DC","2":"2B ZC FC aC bC","516":"qC rC sC 5B 6B 7B 8B","548":"eC fC gC hC iC jC kC lC mC nC oC pC","676":"F cC dC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","545":"yC zC","1025":"D"},J:{"2":"E","545":"A"},K:{"2":"A B C tB EC uB","1025":"l"},L:{"1025":"D"},M:{"2308":"D"},N:{"2":"A B"},O:{"1537":"0C"},P:{"545":"I","1025":"j k BD CD DD","1537":"1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB"},Q:{"1537":"4B"},R:{"1537":"ED"},S:{"932":"FD","2308":"GD"}},B:5,C:"Intrinsic & Extrinsic Sizing"}; diff --git a/node_modules/caniuse-lite/data/features/jpeg2000.js b/node_modules/caniuse-lite/data/features/jpeg2000.js new file mode 100644 index 0000000..4ca2beb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/jpeg2000.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","129":"z MC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"JPEG 2000 image format"}; diff --git a/node_modules/caniuse-lite/data/features/jpegxl.js b/node_modules/caniuse-lite/data/features/jpegxl.js new file mode 100644 index 0000000..7d25a5b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/jpegxl.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z w x y D","578":"a b c d e f g h i m n o p q r s t u v"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y IC JC","322":"Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z w x y D 0B 1B KC","194":"a b c d e f g h i m n o p q r s t u v"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB UC VC WC XC tB EC YC uB","194":"rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"JPEG XL image format"}; diff --git a/node_modules/caniuse-lite/data/features/jpegxr.js b/node_modules/caniuse-lite/data/features/jpegxr.js new file mode 100644 index 0000000..9138b18 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/jpegxr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O","2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"JPEG XR image format"}; diff --git a/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js b/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js new file mode 100644 index 0000000..696154f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB IC JC"},D:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB UC VC WC XC tB EC YC uB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"Lookbehind in JS regular expressions"}; diff --git a/node_modules/caniuse-lite/data/features/json.js b/node_modules/caniuse-lite/data/features/json.js new file mode 100644 index 0000000..abf1924 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/json.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E GC","129":"F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"JSON parsing"}; diff --git a/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js b/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js new file mode 100644 index 0000000..0ed3149 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H","132":"M N O"},C:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC"},D:{"1":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","132":"aB bB xB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC","132":"3B"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB","132":"NB OB PB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC","132":"hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C","132":"3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","132":"FD"}},B:5,C:"CSS justify-content: space-evenly"}; diff --git a/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js b/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js new file mode 100644 index 0000000..e59d925 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"uC vC wC","132":"wB I xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:7,C:"High-quality kerning pairs & ligatures"}; diff --git a/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js b/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js new file mode 100644 index 0000000..b5c373e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","16":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC","16":"C"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l uB","2":"A B tB EC","16":"C"},L:{"1":"D"},M:{"130":"D"},N:{"130":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:7,C:"KeyboardEvent.charCode"}; diff --git a/node_modules/caniuse-lite/data/features/keyboardevent-code.js b/node_modules/caniuse-lite/data/features/keyboardevent-code.js new file mode 100644 index 0000000..fae13c8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-code.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB IC JC"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB","194":"LB MB NB OB PB QB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 G B C H M N O j k UC VC WC XC tB EC YC uB","194":"8 9 AB BB CB DB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"194":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I","194":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"194":"ED"},S:{"1":"FD GD"}},B:5,C:"KeyboardEvent.code"}; diff --git a/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js b/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js new file mode 100644 index 0000000..a9c3460 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B H M UC VC WC XC tB EC YC","16":"C"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l uB","2":"A B tB EC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"KeyboardEvent.getModifierState()"}; diff --git a/node_modules/caniuse-lite/data/features/keyboardevent-key.js b/node_modules/caniuse-lite/data/features/keyboardevent-key.js new file mode 100644 index 0000000..d1098cc --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-key.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","260":"G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 HC wB I z J E F G A B C K L H M N O j k IC JC","132":"2 3 4 5 6 7"},D:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"0 1 2 3 4 5 6 7 8 9 G B H M N O j k AB BB CB DB EB FB GB UC VC WC XC tB EC YC","16":"C"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"1":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l uB","2":"A B tB EC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"KeyboardEvent.key"}; diff --git a/node_modules/caniuse-lite/data/features/keyboardevent-location.js b/node_modules/caniuse-lite/data/features/keyboardevent-location.js new file mode 100644 index 0000000..4e3d804 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-location.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"J LC 2B","132":"I z MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC","16":"C","132":"H M"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC","132":"aC bC cC"},H:{"2":"tC"},I:{"1":"D yC zC","16":"uC vC","132":"wB I wC xC FC"},J:{"132":"E A"},K:{"1":"l uB","2":"A B tB EC","16":"C"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"KeyboardEvent.location"}; diff --git a/node_modules/caniuse-lite/data/features/keyboardevent-which.js b/node_modules/caniuse-lite/data/features/keyboardevent-which.js new file mode 100644 index 0000000..2c9f842 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/keyboardevent-which.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","16":"z"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","16":"G UC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC","16":"uC vC","132":"yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"132":"D"},M:{"132":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"2":"I","132":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"132":"ED"},S:{"1":"FD GD"}},B:7,C:"KeyboardEvent.which"}; diff --git a/node_modules/caniuse-lite/data/features/lazyload.js b/node_modules/caniuse-lite/data/features/lazyload.js new file mode 100644 index 0000000..8ccbfd4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/lazyload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O","2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Resource Hints: Lazyload"}; diff --git a/node_modules/caniuse-lite/data/features/let.js b/node_modules/caniuse-lite/data/features/let.js new file mode 100644 index 0000000..acd5e60 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/let.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","2052":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","194":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N O","322":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB","516":"KB LB MB NB OB PB QB RB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC","1028":"A 3B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","322":"0 1 2 3 4 5 6 H M N O j k","516":"7 8 9 AB BB CB DB EB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC","1028":"gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","516":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"let"}; diff --git a/node_modules/caniuse-lite/data/features/link-icon-png.js b/node_modules/caniuse-lite/data/features/link-icon-png.js new file mode 100644 index 0000000..08463bb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-icon-png.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","130":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC"},H:{"130":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E","130":"A"},K:{"1":"l","130":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"130":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"PNG favicons"}; diff --git a/node_modules/caniuse-lite/data/features/link-icon-svg.js b/node_modules/caniuse-lite/data/features/link-icon-svg.js new file mode 100644 index 0000000..a755ee0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-icon-svg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P","1537":"Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"HC wB IC JC","260":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB","513":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","1537":"Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB XB YB ZB aB bB cB dB eB fB gB hB UC VC WC XC tB EC YC uB","1537":"iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","130":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC"},H:{"130":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E","130":"A"},K:{"130":"A B C tB EC uB","1537":"l"},L:{"1537":"D"},M:{"2":"D"},N:{"130":"A B"},O:{"2":"0C"},P:{"2":"I 1C 2C 3C 4C 5C 3B 6C 7C","1537":"j k 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"1537":"ED"},S:{"513":"FD GD"}},B:1,C:"SVG favicons"}; diff --git a/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js b/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js new file mode 100644 index 0000000..17ba70f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F GC","132":"G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"HC wB","260":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"16":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"16":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","16":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","16":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Resource Hints: dns-prefetch"}; diff --git a/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js b/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js new file mode 100644 index 0000000..86c85c3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B IC JC"},D:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB"},E:{"1":"TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC"},F:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:1,C:"Resource Hints: modulepreload"}; diff --git a/node_modules/caniuse-lite/data/features/link-rel-preconnect.js b/node_modules/caniuse-lite/data/features/link-rel-preconnect.js new file mode 100644 index 0000000..11090df --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-preconnect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","260":"H M N O"},C:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","129":"IB"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"16":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Resource Hints: preconnect"}; diff --git a/node_modules/caniuse-lite/data/features/link-rel-prefetch.js b/node_modules/caniuse-lite/data/features/link-rel-prefetch.js new file mode 100644 index 0000000..980673b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-prefetch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E"},E:{"2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB","194":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC","194":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"I D yC zC","2":"wB uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Resource Hints: prefetch"}; diff --git a/node_modules/caniuse-lite/data/features/link-rel-preload.js b/node_modules/caniuse-lite/data/features/link-rel-preload.js new file mode 100644 index 0000000..6eeabf3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-preload.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M","1028":"N O"},C:{"1":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB IC JC","132":"ZB","578":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T"},D:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","322":"B"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC","322":"iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:4,C:"Resource Hints: preload"}; diff --git a/node_modules/caniuse-lite/data/features/link-rel-prerender.js b/node_modules/caniuse-lite/data/features/link-rel-prerender.js new file mode 100644 index 0000000..f6daf24 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/link-rel-prerender.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"Resource Hints: prerender"}; diff --git a/node_modules/caniuse-lite/data/features/loading-lazy-attr.js b/node_modules/caniuse-lite/data/features/loading-lazy-attr.js new file mode 100644 index 0000000..344afde --- /dev/null +++ b/node_modules/caniuse-lite/data/features/loading-lazy-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB IC JC","132":"pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB","66":"pB qB"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB","322":"L H 4B QC RC 5B","580":"6B 7B 8B vB 9B AC BC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB UC VC WC XC tB EC YC uB","66":"dB eB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC","322":"pC qC rC sC 5B","580":"6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"132":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD","132":"GD"}},B:1,C:"Lazy loading via attribute for images & iframes"}; diff --git a/node_modules/caniuse-lite/data/features/localecompare.js b/node_modules/caniuse-lite/data/features/localecompare.js new file mode 100644 index 0000000..e8540e0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/localecompare.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","16":"GC","132":"J E F G A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 I z J E F G A B C K L H M N O j k"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G B C UC VC WC XC tB EC YC","132":"uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"F 2B ZC FC aC bC cC dC eC fC"},H:{"132":"tC"},I:{"1":"D yC zC","132":"wB I uC vC wC xC FC"},J:{"132":"E A"},K:{"1":"l","16":"A B C tB EC","132":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","132":"A"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","132":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","4":"FD"}},B:6,C:"localeCompare()"}; diff --git a/node_modules/caniuse-lite/data/features/magnetometer.js b/node_modules/caniuse-lite/data/features/magnetometer.js new file mode 100644 index 0000000..cd5a633 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/magnetometer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","194":"bB xB cB yB dB eB fB gB hB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"194":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"Magnetometer"}; diff --git a/node_modules/caniuse-lite/data/features/matchesselector.js b/node_modules/caniuse-lite/data/features/matchesselector.js new file mode 100644 index 0000000..7960404 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/matchesselector.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","36":"G A B"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","36":"C K L"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC","36":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB JC"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","36":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","36":"z J E MC NC"},F:{"1":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B UC VC WC XC tB","36":"0 C H M N O j EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B","36":"ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D","2":"uC","36":"wB I vC wC xC FC yC zC"},J:{"36":"E A"},K:{"1":"l","2":"A B","36":"C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"36":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","36":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"matches() DOM method"}; diff --git a/node_modules/caniuse-lite/data/features/matchmedia.js b/node_modules/caniuse-lite/data/features/matchmedia.js new file mode 100644 index 0000000..5f64918 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/matchmedia.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B C UC VC WC XC tB EC YC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"matchMedia"}; diff --git a/node_modules/caniuse-lite/data/features/mathml.js b/node_modules/caniuse-lite/data/features/mathml.js new file mode 100644 index 0000000..3cf7bab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mathml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B GC","8":"J E F"},B:{"2":"C K L H M N O","8":"P Q R S T U V W X Y Z a b c d e f","584":"g h i m n o p q r s t u","1025":"v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","129":"HC wB IC JC"},D:{"1":"3","8":"0 1 2 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f","584":"g h i m n o p q r s t u","1025":"v w x y D 0B 1B KC"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","260":"I z J E F G LC 2B MC NC OC PC"},F:{"2":"G","8":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB","584":"S T U V W X Y Z a b c d","1025":"e f g h i","2052":"B C UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC"},H:{"8":"tC"},I:{"8":"wB I uC vC wC xC FC yC zC","1025":"D"},J:{"1":"A","8":"E"},K:{"8":"A B C l tB EC uB"},L:{"1025":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"8":"0C"},P:{"1":"k","8":"I j 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"8":"4B"},R:{"8":"ED"},S:{"1":"FD GD"}},B:2,C:"MathML"}; diff --git a/node_modules/caniuse-lite/data/features/maxlength.js b/node_modules/caniuse-lite/data/features/maxlength.js new file mode 100644 index 0000000..348819c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/maxlength.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","16":"GC","900":"J E F G"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","1025":"C K L H M N O"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","900":"HC wB IC JC","1025":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"z LC","900":"I 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G","132":"B C UC VC WC XC tB EC YC uB"},G:{"1":"ZC FC aC bC cC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B","2052":"F dC"},H:{"132":"tC"},I:{"1":"wB I wC xC FC yC zC","16":"uC vC","4097":"D"},J:{"1":"E A"},K:{"132":"A B C tB EC uB","4097":"l"},L:{"4097":"D"},M:{"4097":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"4097":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1025":"FD GD"}},B:1,C:"maxlength attribute for input and textarea elements"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js new file mode 100644 index 0000000..2c20795 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M IC JC","33":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"I z J LC 2B MC NC TC","33":"E F G A OC PC 3B"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC","33":"F cC dC eC fC gC hC"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"isolate-override from unicode-bidi"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js new file mode 100644 index 0000000..a43af1e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H","33":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G IC JC","33":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"I z LC 2B MC TC","33":"J E F G A NC OC PC 3B"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"F bC cC dC eC fC gC hC"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"isolate from unicode-bidi"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js new file mode 100644 index 0000000..9d8955e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G IC JC","33":"0 1 2 3 4 5 6 7 8 9 A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"I z LC 2B MC TC","33":"J E F G A NC OC PC 3B"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"F bC cC dC eC fC gC hC"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"plaintext from unicode-bidi"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js b/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js new file mode 100644 index 0000000..4f5e0c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","33":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"I z J E LC 2B MC NC OC TC","33":"F G A B C PC 3B tB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","33":"F dC eC fC gC hC iC jC kC"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"text-decoration-color property"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js b/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js new file mode 100644 index 0000000..26d2432 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","33":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"I z J E LC 2B MC NC OC TC","33":"F G A B C PC 3B tB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","33":"F dC eC fC gC hC iC jC kC"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"text-decoration-line property"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js b/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js new file mode 100644 index 0000000..f7b3daa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"2":"I z J E LC 2B MC NC OC TC","33":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC"},G:{"2":"2B ZC FC aC bC cC","33":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"text-decoration shorthand property"}; diff --git a/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js b/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js new file mode 100644 index 0000000..6d002db --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js @@ -0,0 +1 @@ +module.exports={A:{D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},L:{"1":"D"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","33":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB"},M:{"1":"D"},A:{"2":"J E F G A B GC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB"},K:{"1":"l","2":"A B C tB EC uB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC","2":"I z J E LC 2B MC NC OC TC","33":"F G A B C PC 3B tB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","33":"F dC eC fC gC hC iC jC kC"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"}},B:6,C:"text-decoration-style property"}; diff --git a/node_modules/caniuse-lite/data/features/media-fragments.js b/node_modules/caniuse-lite/data/features/media-fragments.js new file mode 100644 index 0000000..c6b5954 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/media-fragments.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","132":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB IC JC","132":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"I z J E F G A B C K L H M N","132":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z LC 2B MC","132":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"2B ZC FC aC bC cC","132":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","132":"D yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","132":"l"},L:{"132":"D"},M:{"132":"D"},N:{"132":"A B"},O:{"132":"0C"},P:{"2":"I 1C","132":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"132":"4B"},R:{"132":"ED"},S:{"132":"FD GD"}},B:2,C:"Media Fragments"}; diff --git a/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js b/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js new file mode 100644 index 0000000..4d2db51 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB IC JC","260":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","324":"UB VB WB XB YB ZB aB bB xB cB yB"},E:{"2":"I z J E F G A LC 2B MC NC OC PC 3B","132":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB","324":"FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"260":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","132":"1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"260":"FD GD"}},B:5,C:"Media Capture from DOM Elements API"}; diff --git a/node_modules/caniuse-lite/data/features/mediarecorder.js b/node_modules/caniuse-lite/data/features/mediarecorder.js new file mode 100644 index 0000000..4804ca6 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mediarecorder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB RB"},E:{"1":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","322":"K L uB 4B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB UC VC WC XC tB EC YC uB","194":"DB EB"},G:{"1":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC","578":"kC lC mC nC oC pC qC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"MediaRecorder API"}; diff --git a/node_modules/caniuse-lite/data/features/mediasource.js b/node_modules/caniuse-lite/data/features/mediasource.js new file mode 100644 index 0000000..cfb4364 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mediasource.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC","66":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M","33":"2 3 4 5 6 7 8 9","66":"0 1 N O j k"},E:{"1":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC","260":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D zC","2":"wB I uC vC wC xC FC yC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Media Source Extensions"}; diff --git a/node_modules/caniuse-lite/data/features/menu.js b/node_modules/caniuse-lite/data/features/menu.js new file mode 100644 index 0000000..5e92c99 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/menu.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"HC wB I z J E IC JC","132":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T","450":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","66":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","66":"EB FB GB HB IB JB KB LB MB NB OB PB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"450":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Context menu item (menuitem element)"}; diff --git a/node_modules/caniuse-lite/data/features/meta-theme-color.js b/node_modules/caniuse-lite/data/features/meta-theme-color.js new file mode 100644 index 0000000..62cc86b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/meta-theme-color.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB","132":"l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","258":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B QC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"513":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","16":"1C"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:1,C:"theme-color Meta Tag"}; diff --git a/node_modules/caniuse-lite/data/features/meter.js b/node_modules/caniuse-lite/data/features/meter.js new file mode 100644 index 0000000..0d6b214 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/meter.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G UC VC WC XC"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"meter element"}; diff --git a/node_modules/caniuse-lite/data/features/midi.js b/node_modules/caniuse-lite/data/features/midi.js new file mode 100644 index 0000000..3eb3af0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/midi.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t IC JC"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"Web MIDI API"}; diff --git a/node_modules/caniuse-lite/data/features/minmaxwh.js b/node_modules/caniuse-lite/data/features/minmaxwh.js new file mode 100644 index 0000000..690c78a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/minmaxwh.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","8":"J GC","129":"E","257":"F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS min/max-width/height"}; diff --git a/node_modules/caniuse-lite/data/features/mp3.js b/node_modules/caniuse-lite/data/features/mp3.js new file mode 100644 index 0000000..3e6b2b2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mp3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","132":"0 I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","2":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"MP3 audio format"}; diff --git a/node_modules/caniuse-lite/data/features/mpeg-dash.js b/node_modules/caniuse-lite/data/features/mpeg-dash.js new file mode 100644 index 0000000..a99c508 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mpeg-dash.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O","2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","386":"1 k"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)"}; diff --git a/node_modules/caniuse-lite/data/features/mpeg4.js b/node_modules/caniuse-lite/data/features/mpeg4.js new file mode 100644 index 0000000..2633041 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mpeg4.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j IC JC","4":"1 2 3 4 5 6 7 8 9 k AB BB CB DB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D yC zC","4":"wB I uC vC xC FC","132":"wC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"260":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"MPEG-4/H.264 video format"}; diff --git a/node_modules/caniuse-lite/data/features/multibackgrounds.js b/node_modules/caniuse-lite/data/features/multibackgrounds.js new file mode 100644 index 0000000..af1f5e1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/multibackgrounds.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 Multiple backgrounds"}; diff --git a/node_modules/caniuse-lite/data/features/multicolumn.js b/node_modules/caniuse-lite/data/features/multicolumn.js new file mode 100644 index 0000000..ab602fe --- /dev/null +++ b/node_modules/caniuse-lite/data/features/multicolumn.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O","516":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"132":"VB WB XB YB ZB aB bB xB cB yB dB eB fB","164":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC","516":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a","1028":"b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"420":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","516":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"G PC","164":"E F OC","420":"I z J LC 2B MC NC"},F:{"1":"C tB EC YC uB","2":"G B UC VC WC XC","420":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB","516":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"eC fC","164":"F cC dC","420":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"420":"wB I uC vC wC xC FC yC zC","516":"D"},J:{"420":"E A"},K:{"1":"C tB EC uB","2":"A B","516":"l"},L:{"516":"D"},M:{"1028":"D"},N:{"1":"A B"},O:{"516":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","420":"I"},Q:{"516":"4B"},R:{"516":"ED"},S:{"164":"FD GD"}},B:4,C:"CSS3 Multiple column layout"}; diff --git a/node_modules/caniuse-lite/data/features/mutation-events.js b/node_modules/caniuse-lite/data/features/mutation-events.js new file mode 100644 index 0000000..7f09443 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mutation-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","260":"G A B"},B:{"132":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M N O"},C:{"2":"HC wB I z IC JC","260":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"16":"I z J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"16":"LC 2B","132":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"C YC uB","2":"G UC VC WC XC","16":"B tB EC","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"16":"2B ZC","132":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"16":"uC vC","132":"wB I D wC xC FC yC zC"},J:{"132":"E A"},K:{"1":"C uB","2":"A","16":"B tB EC","132":"l"},L:{"132":"D"},M:{"260":"D"},N:{"260":"A B"},O:{"132":"0C"},P:{"132":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"132":"4B"},R:{"132":"ED"},S:{"260":"FD GD"}},B:5,C:"Mutation events"}; diff --git a/node_modules/caniuse-lite/data/features/mutationobserver.js b/node_modules/caniuse-lite/data/features/mutationobserver.js new file mode 100644 index 0000000..91c92ca --- /dev/null +++ b/node_modules/caniuse-lite/data/features/mutationobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F GC","8":"G A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K IC JC"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N","33":"0 1 2 3 4 5 O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB uC vC wC","8":"I xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","8":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Mutation Observer"}; diff --git a/node_modules/caniuse-lite/data/features/namevalue-storage.js b/node_modules/caniuse-lite/data/features/namevalue-storage.js new file mode 100644 index 0000000..77fe468 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/namevalue-storage.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","2":"GC","8":"J E"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","4":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Web Storage - name/value pairs"}; diff --git a/node_modules/caniuse-lite/data/features/native-filesystem-api.js b/node_modules/caniuse-lite/data/features/native-filesystem-api.js new file mode 100644 index 0000000..ebad30b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/native-filesystem-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","194":"P Q R S T U","260":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w IC JC","516":"x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l","194":"oB pB qB rB sB P Q R S T U","260":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC","516":"5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB UC VC WC XC tB EC YC uB","194":"dB eB fB gB hB iB jB kB lB mB","260":"nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC","516":"5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","516":"D"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"516":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"File System Access API"}; diff --git a/node_modules/caniuse-lite/data/features/nav-timing.js b/node_modules/caniuse-lite/data/features/nav-timing.js new file mode 100644 index 0000000..d4b9d8c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/nav-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z","33":"J E F G A B C"},E:{"1":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"I D xC FC yC zC","2":"wB uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Navigation Timing API"}; diff --git a/node_modules/caniuse-lite/data/features/netinfo.js b/node_modules/caniuse-lite/data/features/netinfo.js new file mode 100644 index 0000000..9d7bbae --- /dev/null +++ b/node_modules/caniuse-lite/data/features/netinfo.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","1028":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB","1028":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB UC VC WC XC tB EC YC uB","1028":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"uC yC zC","132":"wB I vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","132":"I","516":"1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"GD","260":"FD"}},B:7,C:"Network Information API"}; diff --git a/node_modules/caniuse-lite/data/features/notifications.js b/node_modules/caniuse-lite/data/features/notifications.js new file mode 100644 index 0000000..5017156 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/notifications.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I","36":"0 z J E F G A B C K L H M N O j k"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC","1028":"CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","36":"D yC zC"},J:{"1":"A","2":"E"},K:{"2":"A B C tB EC uB","36":"l"},L:{"513":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"36":"I","258":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"258":"ED"},S:{"1":"FD GD"}},B:1,C:"Web Notifications"}; diff --git a/node_modules/caniuse-lite/data/features/object-entries.js b/node_modules/caniuse-lite/data/features/object-entries.js new file mode 100644 index 0000000..7030946 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-entries.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC"},D:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","16":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Object.entries"}; diff --git a/node_modules/caniuse-lite/data/features/object-fit.js b/node_modules/caniuse-lite/data/features/object-fit.js new file mode 100644 index 0000000..0acb50b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-fit.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H","260":"M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC","132":"F G OC PC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G H M N O UC VC WC","33":"B C XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","132":"F dC eC fC"},H:{"33":"tC"},I:{"1":"D zC","2":"wB I uC vC wC xC FC yC"},J:{"2":"E A"},K:{"1":"l","2":"A","33":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 object-fit/object-position"}; diff --git a/node_modules/caniuse-lite/data/features/object-observe.js b/node_modules/caniuse-lite/data/features/object-observe.js new file mode 100644 index 0000000..041856b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-observe.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB","2":"0 1 G B C H M N O j k GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"I","2":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Object.observe data binding"}; diff --git a/node_modules/caniuse-lite/data/features/object-values.js b/node_modules/caniuse-lite/data/features/object-values.js new file mode 100644 index 0000000..ed91d5c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/object-values.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC"},D:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","8":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"8":"tC"},I:{"1":"D","8":"wB I uC vC wC xC FC yC zC"},J:{"8":"E A"},K:{"1":"l","8":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","8":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Object.values method"}; diff --git a/node_modules/caniuse-lite/data/features/objectrtc.js b/node_modules/caniuse-lite/data/features/objectrtc.js new file mode 100644 index 0000000..0c3dda8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/objectrtc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O","2":"C P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E","130":"A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"Object RTC (ORTC) API for WebRTC"}; diff --git a/node_modules/caniuse-lite/data/features/offline-apps.js b/node_modules/caniuse-lite/data/features/offline-apps.js new file mode 100644 index 0000000..841e9e7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/offline-apps.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"G GC","8":"J E F"},B:{"1":"C K L H M N O P Q R S T","2":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S IC JC","2":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","4":"wB","8":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T","2":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB XC tB EC YC uB","2":"G l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC","8":"VC WC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I uC vC wC xC FC yC zC","2":"D"},J:{"1":"E A"},K:{"1":"B C tB EC uB","2":"A l"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"1":"FD","2":"GD"}},B:7,C:"Offline web applications"}; diff --git a/node_modules/caniuse-lite/data/features/offscreencanvas.js b/node_modules/caniuse-lite/data/features/offscreencanvas.js new file mode 100644 index 0000000..66af97f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/offscreencanvas.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB IC JC","194":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q"},D:{"1":"kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","322":"bB xB cB yB dB eB fB gB hB iB jB"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB UC VC WC XC tB EC YC uB","322":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"194":"FD GD"}},B:1,C:"OffscreenCanvas"}; diff --git a/node_modules/caniuse-lite/data/features/ogg-vorbis.js b/node_modules/caniuse-lite/data/features/ogg-vorbis.js new file mode 100644 index 0000000..14e74d3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ogg-vorbis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B","132":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"A","2":"E"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Ogg Vorbis audio format"}; diff --git a/node_modules/caniuse-lite/data/features/ogv.js b/node_modules/caniuse-lite/data/features/ogv.js new file mode 100644 index 0000000..1c8ab28 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ogv.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","8":"G A B"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"1":"FD GD"}},B:6,C:"Ogg/Theora video format"}; diff --git a/node_modules/caniuse-lite/data/features/ol-reversed.js b/node_modules/caniuse-lite/data/features/ol-reversed.js new file mode 100644 index 0000000..f685e60 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ol-reversed.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N IC JC"},D:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H","16":"0 M N O"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC","16":"C"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Reversed attribute of ordered lists"}; diff --git a/node_modules/caniuse-lite/data/features/once-event-listener.js b/node_modules/caniuse-lite/data/features/once-event-listener.js new file mode 100644 index 0000000..510828b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/once-event-listener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H"},C:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB IC JC"},D:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"\"once\" event listener option"}; diff --git a/node_modules/caniuse-lite/data/features/online-status.js b/node_modules/caniuse-lite/data/features/online-status.js new file mode 100644 index 0000000..af578f9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/online-status.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E GC","260":"F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB","516":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC","4":"uB"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"A","132":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Online/offline status"}; diff --git a/node_modules/caniuse-lite/data/features/opus.js b/node_modules/caniuse-lite/data/features/opus.js new file mode 100644 index 0000000..35b0253 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/opus.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB"},E:{"2":"I z J E F G A LC 2B MC NC OC PC 3B","132":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 G B C H M N O UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC","132":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Opus audio format"}; diff --git a/node_modules/caniuse-lite/data/features/orientation-sensor.js b/node_modules/caniuse-lite/data/features/orientation-sensor.js new file mode 100644 index 0000000..06ce48a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/orientation-sensor.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB","194":"bB xB cB yB dB eB fB gB hB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:4,C:"Orientation Sensor"}; diff --git a/node_modules/caniuse-lite/data/features/outline.js b/node_modules/caniuse-lite/data/features/outline.js new file mode 100644 index 0000000..bf3fee5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/outline.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","260":"F","388":"G A B"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC","129":"uB","260":"G B UC VC WC XC tB EC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"C l uB","260":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"388":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS outline properties"}; diff --git a/node_modules/caniuse-lite/data/features/pad-start-end.js b/node_modules/caniuse-lite/data/features/pad-start-end.js new file mode 100644 index 0000000..011498b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pad-start-end.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC"},D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()"}; diff --git a/node_modules/caniuse-lite/data/features/page-transition-events.js b/node_modules/caniuse-lite/data/features/page-transition-events.js new file mode 100644 index 0000000..b9fea93 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/page-transition-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"PageTransitionEvent"}; diff --git a/node_modules/caniuse-lite/data/features/pagevisibility.js b/node_modules/caniuse-lite/data/features/pagevisibility.js new file mode 100644 index 0000000..ede1aab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pagevisibility.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G IC JC","33":"A B C K L H M N"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K","33":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC"},F:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B C UC VC WC XC tB EC YC","33":"0 H M N O"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","33":"yC zC"},J:{"1":"A","2":"E"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","33":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Page Visibility"}; diff --git a/node_modules/caniuse-lite/data/features/passive-event-listener.js b/node_modules/caniuse-lite/data/features/passive-event-listener.js new file mode 100644 index 0000000..c7e10cb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/passive-event-listener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"Passive event listeners"}; diff --git a/node_modules/caniuse-lite/data/features/passwordrules.js b/node_modules/caniuse-lite/data/features/passwordrules.js new file mode 100644 index 0000000..8c1a1ed --- /dev/null +++ b/node_modules/caniuse-lite/data/features/passwordrules.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","16":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D IC JC","16":"0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"0B 1B KC"},E:{"1":"C K uB","2":"I z J E F G A B LC 2B MC NC OC PC 3B tB","16":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB UC VC WC XC tB EC YC uB","16":"WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"16":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","16":"D"},J:{"2":"E","16":"A"},K:{"2":"A B C tB EC uB","16":"l"},L:{"16":"D"},M:{"16":"D"},N:{"2":"A","16":"B"},O:{"16":"0C"},P:{"2":"I 1C 2C","16":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"16":"4B"},R:{"16":"ED"},S:{"2":"FD GD"}},B:1,C:"Password Rules"}; diff --git a/node_modules/caniuse-lite/data/features/path2d.js b/node_modules/caniuse-lite/data/features/path2d.js new file mode 100644 index 0000000..fdf6679 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/path2d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K","132":"L H M N O"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k IC JC","132":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB","132":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC","132":"F G OC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 G B C H M N O j k UC VC WC XC tB EC YC uB","132":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","16":"F","132":"dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","132":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Path2D"}; diff --git a/node_modules/caniuse-lite/data/features/payment-request.js b/node_modules/caniuse-lite/data/features/payment-request.js new file mode 100644 index 0000000..dc1eb61 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/payment-request.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K","322":"L","8196":"H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB IC JC","4162":"YB ZB aB bB xB cB yB dB eB fB gB","16452":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB","194":"WB XB YB ZB aB bB","1090":"xB cB","8196":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC","514":"A B 3B","8196":"C tB"},F:{"1":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB UC VC WC XC tB EC YC uB","194":"JB KB LB MB NB OB PB QB","8196":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC","514":"gC hC iC","8196":"jC kC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"2049":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 7C 8C 9C AD vB BD CD DD","2":"I","8196":"1C 2C 3C 4C 5C 3B 6C"},Q:{"8196":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:2,C:"Payment Request API"}; diff --git a/node_modules/caniuse-lite/data/features/pdf-viewer.js b/node_modules/caniuse-lite/data/features/pdf-viewer.js new file mode 100644 index 0000000..3240d54 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pdf-viewer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N O IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"16":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"Built-in PDF viewer"}; diff --git a/node_modules/caniuse-lite/data/features/permissions-api.js b/node_modules/caniuse-lite/data/features/permissions-api.js new file mode 100644 index 0000000..73b0191 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/permissions-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB IC JC"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Permissions API"}; diff --git a/node_modules/caniuse-lite/data/features/permissions-policy.js b/node_modules/caniuse-lite/data/features/permissions-policy.js new file mode 100644 index 0000000..ce11fbd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/permissions-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","258":"P Q R S T U","322":"V W","388":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l IC JC","258":"oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB","258":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U","322":"V W","388":"X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B LC 2B MC NC OC PC 3B","258":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB UC VC WC XC tB EC YC uB","258":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB","322":"nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d","388":"e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC","258":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","258":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","388":"l"},L:{"388":"D"},M:{"258":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I 1C 2C 3C","258":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"258":"4B"},R:{"388":"ED"},S:{"2":"FD","258":"GD"}},B:5,C:"Permissions Policy"}; diff --git a/node_modules/caniuse-lite/data/features/picture-in-picture.js b/node_modules/caniuse-lite/data/features/picture-in-picture.js new file mode 100644 index 0000000..68f2a3a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/picture-in-picture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB IC JC","132":"nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","1090":"iB","1412":"mB","1668":"jB kB lB"},D:{"1":"lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB","2114":"kB"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC","4100":"A B C K 3B tB uB"},F:{"1":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB UC VC WC XC tB EC YC uB","8196":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC","4100":"eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"16388":"D"},M:{"16388":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"Picture-in-Picture"}; diff --git a/node_modules/caniuse-lite/data/features/picture.js b/node_modules/caniuse-lite/data/features/picture.js new file mode 100644 index 0000000..0d0eddb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/picture.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB IC JC","578":"DB EB FB GB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB","194":"GB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB","322":"3"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Picture element"}; diff --git a/node_modules/caniuse-lite/data/features/ping.js b/node_modules/caniuse-lite/data/features/ping.js new file mode 100644 index 0000000..0da6af4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ping.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"2":"HC","194":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"194":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"194":"FD GD"}},B:1,C:"Ping attribute"}; diff --git a/node_modules/caniuse-lite/data/features/png-alpha.js b/node_modules/caniuse-lite/data/features/png-alpha.js new file mode 100644 index 0000000..6866ef9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/png-alpha.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F G A B","2":"GC","8":"J"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"PNG alpha transparency"}; diff --git a/node_modules/caniuse-lite/data/features/pointer-events.js b/node_modules/caniuse-lite/data/features/pointer-events.js new file mode 100644 index 0000000..5f1793a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pointer-events.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:7,C:"CSS pointer-events (for HTML)"}; diff --git a/node_modules/caniuse-lite/data/features/pointer.js b/node_modules/caniuse-lite/data/features/pointer.js new file mode 100644 index 0000000..b437ce2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pointer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G GC","164":"A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC","8":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB","328":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB"},D:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O j k","8":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","584":"VB WB XB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC","8":"E F G A B C NC OC PC 3B tB","1096":"uB"},F:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","8":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB","584":"IB JB KB"},G:{"1":"nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC","6148":"mC"},H:{"2":"tC"},I:{"1":"D","8":"wB I uC vC wC xC FC yC zC"},J:{"8":"E A"},K:{"1":"l","2":"A","8":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","36":"A"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"1C","8":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","328":"FD"}},B:2,C:"Pointer events"}; diff --git a/node_modules/caniuse-lite/data/features/pointerlock.js b/node_modules/caniuse-lite/data/features/pointerlock.js new file mode 100644 index 0000000..7dd7e2f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/pointerlock.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C"},C:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K IC JC","33":"0 1 2 3 4 5 6 7 8 9 L H M N O j k AB BB CB DB EB FB GB HB IB JB"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H","33":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB","66":"0 M N O j k"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 H M N O j k"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Pointer Lock API"}; diff --git a/node_modules/caniuse-lite/data/features/portals.js b/node_modules/caniuse-lite/data/features/portals.js new file mode 100644 index 0000000..f6c6852 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/portals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T","322":"Z a b c d e f g h i m n o p q r s t u v w x y D","450":"U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB","194":"pB qB rB sB P Q R S T","322":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","450":"U"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB UC VC WC XC tB EC YC uB","194":"dB eB fB gB hB iB jB kB lB mB nB","322":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"450":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Portals"}; diff --git a/node_modules/caniuse-lite/data/features/prefers-color-scheme.js b/node_modules/caniuse-lite/data/features/prefers-color-scheme.js new file mode 100644 index 0000000..783b893 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/prefers-color-scheme.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB IC JC"},D:{"1":"qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB"},E:{"1":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB"},F:{"1":"dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB UC VC WC XC tB EC YC uB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"prefers-color-scheme media query"}; diff --git a/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js b/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js new file mode 100644 index 0000000..38174bf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB IC JC"},D:{"1":"oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"prefers-reduced-motion media query"}; diff --git a/node_modules/caniuse-lite/data/features/progress.js b/node_modules/caniuse-lite/data/features/progress.js new file mode 100644 index 0000000..36fd070 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/progress.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G UC VC WC XC"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC","132":"cC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"progress element"}; diff --git a/node_modules/caniuse-lite/data/features/promise-finally.js b/node_modules/caniuse-lite/data/features/promise-finally.js new file mode 100644 index 0000000..db23981 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/promise-finally.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N"},C:{"1":"bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB IC JC"},D:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"Promise.prototype.finally"}; diff --git a/node_modules/caniuse-lite/data/features/promises.js b/node_modules/caniuse-lite/data/features/promises.js new file mode 100644 index 0000000..67f544f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/promises.js @@ -0,0 +1 @@ +module.exports={A:{A:{"8":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","4":"6 7","8":"0 1 2 3 4 5 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"BB","8":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z J E LC 2B MC NC"},F:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","4":"0","8":"G B C H M N O UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC aC bC cC"},H:{"8":"tC"},I:{"1":"D zC","8":"wB I uC vC wC xC FC yC"},J:{"8":"E A"},K:{"1":"l","8":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Promises"}; diff --git a/node_modules/caniuse-lite/data/features/proximity.js b/node_modules/caniuse-lite/data/features/proximity.js new file mode 100644 index 0000000..b33aa11 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/proximity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"FD GD"}},B:4,C:"Proximity API"}; diff --git a/node_modules/caniuse-lite/data/features/proxy.js b/node_modules/caniuse-lite/data/features/proxy.js new file mode 100644 index 0000000..08de021 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/proxy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N O HB IB JB KB LB MB NB OB PB QB RB","66":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"4 5 6 7 8 9 G B C AB BB CB DB EB UC VC WC XC tB EC YC uB","66":"0 1 2 3 H M N O j k"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Proxy object"}; diff --git a/node_modules/caniuse-lite/data/features/publickeypinning.js b/node_modules/caniuse-lite/data/features/publickeypinning.js new file mode 100644 index 0000000..d7ccdba --- /dev/null +++ b/node_modules/caniuse-lite/data/features/publickeypinning.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB","2":"0 G B C H M N O hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","4":"2","16":"1 3 j k"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"I 1C 2C 3C 4C 5C 3B","2":"j k 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"FD","2":"GD"}},B:6,C:"HTTP Public Key Pinning"}; diff --git a/node_modules/caniuse-lite/data/features/push-api.js b/node_modules/caniuse-lite/data/features/push-api.js new file mode 100644 index 0000000..4d3ed0f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/push-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O","2":"C K L H M","257":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB IC JC","257":"NB PB QB RB SB TB UB WB XB YB ZB aB bB xB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","1281":"OB VB cB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB","257":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","388":"NB OB PB QB RB SB"},E:{"2":"I z J LC 2B MC NC","514":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB","4612":"9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB UC VC WC XC tB EC YC uB","16":"GB HB IB JB KB","257":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC","8196":"CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"2":"ED"},S:{"257":"FD GD"}},B:5,C:"Push API"}; diff --git a/node_modules/caniuse-lite/data/features/queryselector.js b/node_modules/caniuse-lite/data/features/queryselector.js new file mode 100644 index 0000000..807af31 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/queryselector.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"GC","8":"J E","132":"F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","8":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","8":"G UC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"querySelector/querySelectorAll"}; diff --git a/node_modules/caniuse-lite/data/features/readonly-attr.js b/node_modules/caniuse-lite/data/features/readonly-attr.js new file mode 100644 index 0000000..2e5dfc8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/readonly-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","16":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC wB IC JC"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"0 1 2 3 4 I z J E F G A B C K L H M N O j k"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G UC","132":"B C VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC bC"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l","132":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"257":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"readonly attribute of input and textarea elements"}; diff --git a/node_modules/caniuse-lite/data/features/referrer-policy.js b/node_modules/caniuse-lite/data/features/referrer-policy.js new file mode 100644 index 0000000..012c642 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/referrer-policy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"P Q R S","132":"C K L H M N O","513":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC","513":"W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T","2":"0 I z J E F G A B C K L H M N O j","260":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB","513":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"C tB uB","2":"I z J E LC 2B MC NC","132":"F G A B OC PC 3B","1025":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","2":"G B C UC VC WC XC tB EC YC uB","513":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"kC lC mC nC","2":"2B ZC FC aC bC cC","132":"F dC eC fC gC hC iC jC","1025":"oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","513":"l"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"513":"ED"},S:{"1":"FD GD"}},B:4,C:"Referrer Policy"}; diff --git a/node_modules/caniuse-lite/data/features/registerprotocolhandler.js b/node_modules/caniuse-lite/data/features/registerprotocolhandler.js new file mode 100644 index 0000000..8519eb9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/registerprotocolhandler.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","129":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC"},D:{"2":"I z J E F G A B C","129":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B UC VC WC XC tB EC","129":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E","129":"A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:1,C:"Custom protocol handling"}; diff --git a/node_modules/caniuse-lite/data/features/rel-noopener.js b/node_modules/caniuse-lite/data/features/rel-noopener.js new file mode 100644 index 0000000..378bf5c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rel-noopener.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"rel=noopener"}; diff --git a/node_modules/caniuse-lite/data/features/rel-noreferrer.js b/node_modules/caniuse-lite/data/features/rel-noreferrer.js new file mode 100644 index 0000000..ecf8bec --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rel-noreferrer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","132":"B"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L H"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Link type \"noreferrer\""}; diff --git a/node_modules/caniuse-lite/data/features/rellist.js b/node_modules/caniuse-lite/data/features/rellist.js new file mode 100644 index 0000000..655c951 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rellist.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M","132":"N"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB","132":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F LC 2B MC NC OC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB UC VC WC XC tB EC YC uB","132":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","132":"1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"relList (DOMTokenList)"}; diff --git a/node_modules/caniuse-lite/data/features/rem.js b/node_modules/caniuse-lite/data/features/rem.js new file mode 100644 index 0000000..7137617 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rem.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F GC","132":"G A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC"},G:{"1":"F ZC FC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B","260":"aC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"rem (root em) units"}; diff --git a/node_modules/caniuse-lite/data/features/requestanimationframe.js b/node_modules/caniuse-lite/data/features/requestanimationframe.js new file mode 100644 index 0000000..c79dc09 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/requestanimationframe.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","33":"0 1 B C K L H M N O j k","164":"I z J E F G A"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G","33":"1 2","164":"0 O j k","420":"A B C K L H M N"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","33":"bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"requestAnimationFrame"}; diff --git a/node_modules/caniuse-lite/data/features/requestidlecallback.js b/node_modules/caniuse-lite/data/features/requestidlecallback.js new file mode 100644 index 0000000..998452e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/requestidlecallback.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC","194":"WB XB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB","322":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC","322":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"requestIdleCallback"}; diff --git a/node_modules/caniuse-lite/data/features/resizeobserver.js b/node_modules/caniuse-lite/data/features/resizeobserver.js new file mode 100644 index 0000000..e290b6a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/resizeobserver.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB IC JC"},D:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","194":"XB YB ZB aB bB xB cB yB dB eB"},E:{"1":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB","66":"K"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB UC VC WC XC tB EC YC uB","194":"KB LB MB NB OB PB QB RB SB TB UB"},G:{"1":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"Resize Observer"}; diff --git a/node_modules/caniuse-lite/data/features/resource-timing.js b/node_modules/caniuse-lite/data/features/resource-timing.js new file mode 100644 index 0000000..25b7fa8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/resource-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"AB BB CB DB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 I z J E F G A B C K L H M N O j k"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Resource Timing"}; diff --git a/node_modules/caniuse-lite/data/features/rest-parameters.js b/node_modules/caniuse-lite/data/features/rest-parameters.js new file mode 100644 index 0000000..475a419 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rest-parameters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB OB PB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k UC VC WC XC tB EC YC uB","194":"AB BB CB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Rest parameters"}; diff --git a/node_modules/caniuse-lite/data/features/rtcpeerconnection.js b/node_modules/caniuse-lite/data/features/rtcpeerconnection.js new file mode 100644 index 0000000..cc3d5c2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/rtcpeerconnection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","516":"H M N O"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC","33":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 I z J E F G A B C K L H M N O j k","33":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H M N UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","130":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"WebRTC Peer-to-peer connections"}; diff --git a/node_modules/caniuse-lite/data/features/ruby.js b/node_modules/caniuse-lite/data/features/ruby.js new file mode 100644 index 0000000..78f04cd --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ruby.js @@ -0,0 +1 @@ +module.exports={A:{A:{"4":"J E F G A B GC"},B:{"4":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB IC JC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"I"},E:{"4":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I LC 2B"},F:{"4":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","8":"G B C UC VC WC XC tB EC YC uB"},G:{"4":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC"},H:{"8":"tC"},I:{"4":"wB I D xC FC yC zC","8":"uC vC wC"},J:{"4":"A","8":"E"},K:{"4":"l","8":"A B C tB EC uB"},L:{"4":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"4":"0C"},P:{"4":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"4":"4B"},R:{"4":"ED"},S:{"1":"FD GD"}},B:1,C:"Ruby annotation"}; diff --git a/node_modules/caniuse-lite/data/features/run-in.js b/node_modules/caniuse-lite/data/features/run-in.js new file mode 100644 index 0000000..56fc5de --- /dev/null +++ b/node_modules/caniuse-lite/data/features/run-in.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","2":"J E GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB","2":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J MC","2":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"NC","129":"I LC 2B"},F:{"1":"G B C H M N O UC VC WC XC tB EC YC uB","2":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"ZC FC aC bC cC","2":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","129":"2B"},H:{"1":"tC"},I:{"1":"wB I uC vC wC xC FC yC","2":"D zC"},J:{"1":"E A"},K:{"1":"A B C tB EC uB","2":"l"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"display: run-in"}; diff --git a/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js b/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js new file mode 100644 index 0000000..14a9890 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","388":"B"},B:{"1":"O P Q R S T U","2":"C K L H","129":"M N","513":"V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB IC JC"},D:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","513":"Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B tB","2052":"L QC","3076":"C K uB 4B"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB UC VC WC XC tB EC YC uB","513":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC","2052":"kC lC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","513":"l"},L:{"513":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"16":"4B"},R:{"513":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"'SameSite' cookie attribute"}; diff --git a/node_modules/caniuse-lite/data/features/screen-orientation.js b/node_modules/caniuse-lite/data/features/screen-orientation.js new file mode 100644 index 0000000..23fb253 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/screen-orientation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","164":"B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","36":"C K L H M N O"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N IC JC","36":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A","36":"B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","16":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"Screen Orientation"}; diff --git a/node_modules/caniuse-lite/data/features/script-async.js b/node_modules/caniuse-lite/data/features/script-async.js new file mode 100644 index 0000000..791294c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/script-async.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","132":"z"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"async attribute for external scripts"}; diff --git a/node_modules/caniuse-lite/data/features/script-defer.js b/node_modules/caniuse-lite/data/features/script-defer.js new file mode 100644 index 0000000..847b6c0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/script-defer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","132":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","257":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"defer attribute for external scripts"}; diff --git a/node_modules/caniuse-lite/data/features/scrollintoview.js b/node_modules/caniuse-lite/data/features/scrollintoview.js new file mode 100644 index 0000000..9731895 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/scrollintoview.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","132":"F G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","132":"C K L H M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB IC JC"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z LC 2B","132":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC VC WC XC","16":"B tB EC","132":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB YC uB"},G:{"1":"vB 9B AC BC CC DC","16":"2B ZC FC","132":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"1":"D","16":"uC vC","132":"wB I wC xC FC yC zC"},J:{"132":"E A"},K:{"1":"l","132":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"132":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"scrollIntoView"}; diff --git a/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js b/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js new file mode 100644 index 0000000..4cf3a16 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Element.scrollIntoViewIfNeeded()"}; diff --git a/node_modules/caniuse-lite/data/features/sdch.js b/node_modules/caniuse-lite/data/features/sdch.js new file mode 100644 index 0000000..0023314 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sdch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","2":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB","2":"G B C l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding"}; diff --git a/node_modules/caniuse-lite/data/features/selection-api.js b/node_modules/caniuse-lite/data/features/selection-api.js new file mode 100644 index 0000000..5a811eb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/selection-api.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","16":"GC","260":"J E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB IC JC","2180":"MB NB OB PB QB RB SB TB UB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","132":"G B C UC VC WC XC tB EC YC uB"},G:{"16":"FC","132":"2B ZC","516":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D yC zC","16":"wB I uC vC wC xC","1025":"FC"},J:{"1":"A","16":"E"},K:{"1":"l","16":"A B C tB EC","132":"uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","16":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2180":"FD"}},B:5,C:"Selection API"}; diff --git a/node_modules/caniuse-lite/data/features/server-timing.js b/node_modules/caniuse-lite/data/features/server-timing.js new file mode 100644 index 0000000..6130554 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/server-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB IC JC"},D:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB","196":"cB yB dB eB","324":"fB"},E:{"2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","516":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"Server Timing"}; diff --git a/node_modules/caniuse-lite/data/features/serviceworkers.js b/node_modules/caniuse-lite/data/features/serviceworkers.js new file mode 100644 index 0000000..2bc76cf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/serviceworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","322":"H M"},C:{"1":"NB PB QB RB SB TB UB WB XB YB ZB aB bB xB yB dB eB fB gB hB iB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC","194":"CB DB EB FB GB HB IB JB KB LB MB","513":"OB VB cB jB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB","4":"JB KB LB MB NB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B LC 2B MC NC OC PC 3B"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 G B C H M N O j k UC VC WC XC tB EC YC uB","4":"6 7 8 9 AB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","4":"D"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"Service Workers"}; diff --git a/node_modules/caniuse-lite/data/features/setimmediate.js b/node_modules/caniuse-lite/data/features/setimmediate.js new file mode 100644 index 0000000..8aeb3c7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/setimmediate.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O","2":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"1":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Efficient Script Yielding: setImmediate()"}; diff --git a/node_modules/caniuse-lite/data/features/shadowdom.js b/node_modules/caniuse-lite/data/features/shadowdom.js new file mode 100644 index 0000000..8c8a3d9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/shadowdom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P","2":"C K L H M N O Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","66":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","2":"0 1 2 3 I z J E F G A B C K L H M N O j k Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"4 5 6 7 8 9 AB BB CB DB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","2":"G B C iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","33":"0 H M N O j k"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC","33":"yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"1C 2C 3C 4C 5C 3B 6C 7C","2":"j k 8C 9C AD vB BD CD DD","33":"I"},Q:{"1":"4B"},R:{"2":"ED"},S:{"1":"FD","2":"GD"}},B:7,C:"Shadow DOM (deprecated V0 spec)"}; diff --git a/node_modules/caniuse-lite/data/features/shadowdomv1.js b/node_modules/caniuse-lite/data/features/shadowdomv1.js new file mode 100644 index 0000000..f095180 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/shadowdomv1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB IC JC","322":"bB","578":"xB cB yB dB"},D:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"A B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC","132":"gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","4":"1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"Shadow DOM (V1)"}; diff --git a/node_modules/caniuse-lite/data/features/sharedarraybuffer.js b/node_modules/caniuse-lite/data/features/sharedarraybuffer.js new file mode 100644 index 0000000..9b59055 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sharedarraybuffer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z","2":"C K L H","194":"M N O","513":"a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB IC JC","194":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l","450":"oB pB qB rB sB","513":"P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB","194":"cB yB dB eB fB gB hB iB","513":"a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A LC 2B MC NC OC PC","194":"B C K L H 3B tB uB 4B QC RC","513":"5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB UC VC WC XC tB EC YC uB","194":"QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","513":"sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC","194":"hC iC jC kC lC mC nC oC pC qC rC sC","513":"5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","513":"l"},L:{"513":"D"},M:{"513":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C","513":"j k AD vB BD CD DD"},Q:{"2":"4B"},R:{"513":"ED"},S:{"2":"FD","513":"GD"}},B:6,C:"Shared Array Buffer"}; diff --git a/node_modules/caniuse-lite/data/features/sharedworkers.js b/node_modules/caniuse-lite/data/features/sharedworkers.js new file mode 100644 index 0000000..8395667 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sharedworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"z J MC vB 9B AC BC CC DC SC TC","2":"I E F G A B C K L H LC 2B NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","2":"G UC VC WC"},G:{"1":"aC bC vB 9B AC BC CC DC","2":"F 2B ZC FC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"B C tB EC uB","2":"l","16":"A"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"I","2":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"FD GD"}},B:1,C:"Shared Web Workers"}; diff --git a/node_modules/caniuse-lite/data/features/sni.js b/node_modules/caniuse-lite/data/features/sni.js new file mode 100644 index 0000000..de432cb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sni.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J GC","132":"E F"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B"},H:{"1":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Server Name Indication"}; diff --git a/node_modules/caniuse-lite/data/features/spdy.js b/node_modules/caniuse-lite/data/features/spdy.js new file mode 100644 index 0000000..e329823 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/spdy.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G A GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","2":"HC wB I z J E F G A B C UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","2":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"F G A B C PC 3B tB","2":"I z J E LC 2B MC NC OC","129":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB LB NB uB","2":"G B C JB KB MB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC"},G:{"1":"F dC eC fC gC hC iC jC kC","2":"2B ZC FC aC bC cC","257":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I xC FC yC zC","2":"D uC vC wC"},J:{"2":"E A"},K:{"1":"uB","2":"A B C l tB EC"},L:{"2":"D"},M:{"2":"D"},N:{"1":"B","2":"A"},O:{"2":"0C"},P:{"1":"I","2":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"FD","2":"GD"}},B:7,C:"SPDY protocol"}; diff --git a/node_modules/caniuse-lite/data/features/speech-recognition.js b/node_modules/caniuse-lite/data/features/speech-recognition.js new file mode 100644 index 0000000..63e6e0c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/speech-recognition.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","1026":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC","322":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 I z J E F G A B C K L H M N O j k","164":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L LC 2B MC NC OC PC 3B tB uB 4B","2084":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 G B C H M N O j k UC VC WC XC tB EC YC uB","1026":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC","2084":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","164":"l"},L:{"164":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"164":"0C"},P:{"164":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"164":"4B"},R:{"164":"ED"},S:{"322":"FD GD"}},B:7,C:"Speech Recognition API"}; diff --git a/node_modules/caniuse-lite/data/features/speech-synthesis.js b/node_modules/caniuse-lite/data/features/speech-synthesis.js new file mode 100644 index 0000000..809050f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/speech-synthesis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O","2":"C K","257":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB","257":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","2":"0 1 2 3 4 5 G B C H M N O j k UC VC WC XC tB EC YC uB","257":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"2":"ED"},S:{"1":"FD GD"}},B:7,C:"Speech Synthesis API"}; diff --git a/node_modules/caniuse-lite/data/features/spellcheck-attribute.js b/node_modules/caniuse-lite/data/features/spellcheck-attribute.js new file mode 100644 index 0000000..b473c8c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/spellcheck-attribute.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"4":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"4":"tC"},I:{"4":"wB I D uC vC wC xC FC yC zC"},J:{"1":"A","4":"E"},K:{"4":"A B C l tB EC uB"},L:{"4":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"4":"0C"},P:{"4":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"4":"ED"},S:{"2":"FD GD"}},B:1,C:"Spellcheck attribute"}; diff --git a/node_modules/caniuse-lite/data/features/sql-storage.js b/node_modules/caniuse-lite/data/features/sql-storage.js new file mode 100644 index 0000000..b12e913 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sql-storage.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q","2":"C K L H M N O","129":"r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q","129":"r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB","2":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z WC XC tB EC YC uB","2":"G UC VC","129":"a b c d e f g h i"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC","2":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I uC vC wC xC FC yC zC","129":"D"},J:{"1":"E A"},K:{"1":"B C tB EC uB","2":"A","129":"l"},L:{"129":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Web SQL Database"}; diff --git a/node_modules/caniuse-lite/data/features/srcset.js b/node_modules/caniuse-lite/data/features/srcset.js new file mode 100644 index 0000000..60f34c1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/srcset.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C","514":"K L H"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB IC JC","194":"BB CB DB EB FB GB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB","260":"DB EB FB GB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC NC","260":"F OC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 G B C H M N O j UC VC WC XC tB EC YC uB","260":"1 2 3 k"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","260":"F dC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Srcset and sizes attributes"}; diff --git a/node_modules/caniuse-lite/data/features/stream.js b/node_modules/caniuse-lite/data/features/stream.js new file mode 100644 index 0000000..013f31e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/stream.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M IC JC","129":"FB GB HB IB JB KB","420":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB"},D:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O j","420":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B H M N UC VC WC XC tB EC YC","420":"0 1 2 3 4 5 6 7 8 9 C O j k AB BB CB DB EB FB GB HB IB uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC","513":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","1537":"iC jC kC lC mC nC oC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","420":"A"},K:{"1":"l","2":"A B tB EC","420":"C uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","420":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:4,C:"getUserMedia/Stream API"}; diff --git a/node_modules/caniuse-lite/data/features/streams.js b/node_modules/caniuse-lite/data/features/streams.js new file mode 100644 index 0000000..0f8dbd7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/streams.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","130":"B"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C K","260":"L H","1028":"P Q R S T U V W X","5124":"M N O"},C:{"1":"o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB IC JC","5124":"m n","7172":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","7746":"aB bB xB cB yB dB eB fB"},D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB","260":"VB WB XB YB ZB aB bB","1028":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X"},E:{"2":"I z J E F G LC 2B MC NC OC PC","1028":"H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","3076":"A B C K L 3B tB uB 4B"},F:{"1":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB UC VC WC XC tB EC YC uB","260":"IB JB KB LB MB NB OB","1028":"PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC","16":"gC","1028":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1028":"0C"},P:{"1":"j k AD vB BD CD DD","2":"I 1C 2C","1028":"3C 4C 5C 3B 6C 7C 8C 9C"},Q:{"1028":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:1,C:"Streams"}; diff --git a/node_modules/caniuse-lite/data/features/stricttransportsecurity.js b/node_modules/caniuse-lite/data/features/stricttransportsecurity.js new file mode 100644 index 0000000..9746eb7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/stricttransportsecurity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A GC","129":"B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Strict Transport Security"}; diff --git a/node_modules/caniuse-lite/data/features/style-scoped.js b/node_modules/caniuse-lite/data/features/style-scoped.js new file mode 100644 index 0000000..9cd4cf9 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/style-scoped.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","2":"0 HC wB I z J E F G A B C K L H M N O j yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","322":"YB ZB aB bB xB cB"},D:{"2":"0 I z J E F G A B C K L H M N O GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","194":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"FD","2":"GD"}},B:7,C:"Scoped CSS"}; diff --git a/node_modules/caniuse-lite/data/features/subresource-bundling.js b/node_modules/caniuse-lite/data/features/subresource-bundling.js new file mode 100644 index 0000000..569421d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/subresource-bundling.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Subresource Loading with Web Bundles"}; diff --git a/node_modules/caniuse-lite/data/features/subresource-integrity.js b/node_modules/caniuse-lite/data/features/subresource-integrity.js new file mode 100644 index 0000000..0b1809b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/subresource-integrity.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB IC JC"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC","194":"iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Subresource Integrity"}; diff --git a/node_modules/caniuse-lite/data/features/svg-css.js b/node_modules/caniuse-lite/data/features/svg-css.js new file mode 100644 index 0000000..89ca52e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-css.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","516":"C K L H"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","260":"0 1 2 I z J E F G A B C K L H M N O j k"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"I"},E:{"1":"z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC","132":"I 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"2B ZC"},H:{"260":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"l","260":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"SVG in CSS backgrounds"}; diff --git a/node_modules/caniuse-lite/data/features/svg-filters.js b/node_modules/caniuse-lite/data/features/svg-filters.js new file mode 100644 index 0000000..da25cdb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-filters.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I","4":"z J E"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"SVG filters"}; diff --git a/node_modules/caniuse-lite/data/features/svg-fonts.js b/node_modules/caniuse-lite/data/features/svg-fonts.js new file mode 100644 index 0000000..584e775 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B GC","8":"J E F"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB","2":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","130":"HB IB JB KB LB MB NB OB PB QB RB SB TB"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC"},F:{"1":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB","2":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","130":"4 5 6 7 8 9 AB BB CB DB EB FB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"258":"tC"},I:{"1":"wB I xC FC yC zC","2":"D uC vC wC"},J:{"1":"E A"},K:{"1":"A B C tB EC uB","2":"l"},L:{"130":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"I","130":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"130":"ED"},S:{"2":"FD GD"}},B:2,C:"SVG fonts"}; diff --git a/node_modules/caniuse-lite/data/features/svg-fragment.js b/node_modules/caniuse-lite/data/features/svg-fragment.js new file mode 100644 index 0000000..dfd4625 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-fragment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","260":"G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB","132":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB"},E:{"1":"C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E G A B LC 2B MC NC PC 3B","132":"F OC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"0 1 H M N O j k","4":"B C VC WC XC tB EC YC","16":"G UC","132":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC eC fC gC hC iC","132":"F dC"},H:{"1":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E","132":"A"},K:{"1":"l uB","4":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","132":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"SVG fragment identifiers"}; diff --git a/node_modules/caniuse-lite/data/features/svg-html.js b/node_modules/caniuse-lite/data/features/svg-html.js new file mode 100644 index 0000000..225d62c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-html.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","388":"G A B"},B:{"4":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC","4":"wB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"LC 2B","4":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"4":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC","4":"D yC zC"},J:{"1":"A","2":"E"},K:{"4":"A B C l tB EC uB"},L:{"4":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"4":"0C"},P:{"4":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"4":"4B"},R:{"4":"ED"},S:{"1":"FD GD"}},B:2,C:"SVG effects for HTML"}; diff --git a/node_modules/caniuse-lite/data/features/svg-html5.js b/node_modules/caniuse-lite/data/features/svg-html5.js new file mode 100644 index 0000000..fac982a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-html5.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F","129":"G A B"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","8":"I z J"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"I z LC 2B","129":"J E F MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"B XC tB EC","8":"G UC VC WC"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","8":"2B ZC FC","129":"F aC bC cC dC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"uC vC wC","129":"wB I xC FC"},J:{"1":"A","129":"E"},K:{"1":"C l uB","8":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"129":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Inline SVG in HTML5"}; diff --git a/node_modules/caniuse-lite/data/features/svg-img.js b/node_modules/caniuse-lite/data/features/svg-img.js new file mode 100644 index 0000000..91100a0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-img.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC","4":"2B","132":"I z J E F MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"F 2B ZC FC aC bC cC dC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"uC vC wC","132":"wB I xC FC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"SVG in HTML img element"}; diff --git a/node_modules/caniuse-lite/data/features/svg-smil.js b/node_modules/caniuse-lite/data/features/svg-smil.js new file mode 100644 index 0000000..0366ba2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg-smil.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"I"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"LC 2B","132":"I z MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"2B ZC FC aC"},H:{"2":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"SVG SMIL animation"}; diff --git a/node_modules/caniuse-lite/data/features/svg.js b/node_modules/caniuse-lite/data/features/svg.js new file mode 100644 index 0000000..e6da632 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/svg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F","772":"G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","513":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","4":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","4":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"D yC zC","2":"uC vC wC","132":"wB I xC FC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"257":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"SVG (basic support)"}; diff --git a/node_modules/caniuse-lite/data/features/sxg.js b/node_modules/caniuse-lite/data/features/sxg.js new file mode 100644 index 0000000..42fa7f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/sxg.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB","132":"mB nB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:6,C:"Signed HTTP Exchanges (SXG)"}; diff --git a/node_modules/caniuse-lite/data/features/tabindex-attr.js b/node_modules/caniuse-lite/data/features/tabindex-attr.js new file mode 100644 index 0000000..833ba5e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tabindex-attr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"E F G A B","16":"J GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"16":"HC wB IC JC","129":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"16":"I z LC 2B","257":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"769":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"16":"tC"},I:{"16":"wB I D uC vC wC xC FC yC zC"},J:{"16":"E A"},K:{"1":"l","16":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"16":"A B"},O:{"1":"0C"},P:{"16":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"129":"FD GD"}},B:1,C:"tabindex global attribute"}; diff --git a/node_modules/caniuse-lite/data/features/template-literals.js b/node_modules/caniuse-lite/data/features/template-literals.js new file mode 100644 index 0000000..348bf34 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/template-literals.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","16":"C"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB IC JC"},D:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC","129":"C"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"eC fC gC hC iC jC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC","129":"kC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ES6 Template Literals (Template Strings)"}; diff --git a/node_modules/caniuse-lite/data/features/template.js b/node_modules/caniuse-lite/data/features/template.js new file mode 100644 index 0000000..b9ee364 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/template.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C","388":"K L"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 I z J E F G A B C K L H M N O j k","132":"5 6 7 8 9 AB BB CB DB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E LC 2B MC","388":"F OC","514":"NC"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","132":"0 H M N O j k"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC","388":"F dC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"HTML templates"}; diff --git a/node_modules/caniuse-lite/data/features/temporal.js b/node_modules/caniuse-lite/data/features/temporal.js new file mode 100644 index 0000000..1e20fbf --- /dev/null +++ b/node_modules/caniuse-lite/data/features/temporal.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:6,C:"Temporal"}; diff --git a/node_modules/caniuse-lite/data/features/testfeat.js b/node_modules/caniuse-lite/data/features/testfeat.js new file mode 100644 index 0000000..72e5495 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/testfeat.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F A B GC","16":"G"},B:{"2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","16":"I z"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"B C"},E:{"2":"I J LC 2B MC","16":"z E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC EC YC uB","16":"tB"},G:{"2":"2B ZC FC aC bC","16":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC xC FC yC zC","16":"wC"},J:{"2":"A","16":"E"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Test feature - updated"}; diff --git a/node_modules/caniuse-lite/data/features/text-decoration.js b/node_modules/caniuse-lite/data/features/text-decoration.js new file mode 100644 index 0000000..1ae2881 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-decoration.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","2052":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"HC wB I z IC JC","1028":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","1060":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L H M N O j k AB BB CB DB EB"},D:{"2":"0 1 2 3 4 I z J E F G A B C K L H M N O j k","226":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","2052":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E LC 2B MC NC","772":"K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","804":"F G A B C PC 3B tB","1316":"OC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB UC VC WC XC tB EC YC uB","226":"EB FB GB HB IB JB KB LB MB","2052":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"2B ZC FC aC bC cC","292":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","2052":"l"},L:{"2052":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"2052":"0C"},P:{"2":"I 1C 2C","2052":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2052":"4B"},R:{"2052":"ED"},S:{"1028":"FD GD"}},B:4,C:"text-decoration styling"}; diff --git a/node_modules/caniuse-lite/data/features/text-emphasis.js b/node_modules/caniuse-lite/data/features/text-emphasis.js new file mode 100644 index 0000000..2513b1f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-emphasis.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"i m n o p q r s t u v w x y D","2":"C K L H M N O","164":"P Q R S T U V W X Y Z a b c d e f g h"},C:{"1":"PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB IC JC","322":"OB"},D:{"1":"i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 I z J E F G A B C K L H M N O j k","164":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC","164":"E NC"},F:{"1":"V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","164":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC","164":"yC zC"},J:{"2":"E","164":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"164":"0C"},P:{"1":"j k CD DD","164":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD"},Q:{"164":"4B"},R:{"164":"ED"},S:{"1":"FD GD"}},B:4,C:"text-emphasis styling"}; diff --git a/node_modules/caniuse-lite/data/features/text-overflow.js b/node_modules/caniuse-lite/data/features/text-overflow.js new file mode 100644 index 0000000..c7c5917 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-overflow.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B","2":"GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","8":"HC wB I z J IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","33":"G UC VC WC XC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"l uB","33":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"CSS3 Text-overflow"}; diff --git a/node_modules/caniuse-lite/data/features/text-size-adjust.js b/node_modules/caniuse-lite/data/features/text-size-adjust.js new file mode 100644 index 0000000..8e24435 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-size-adjust.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","33":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","258":"5"},E:{"2":"I z J E F G A B C K L H LC 2B NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","258":"MC"},F:{"1":"MB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB NB UC VC WC XC tB EC YC uB"},G:{"2":"2B ZC FC","33":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"33":"D"},N:{"161":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS text-size-adjust"}; diff --git a/node_modules/caniuse-lite/data/features/text-stroke.js b/node_modules/caniuse-lite/data/features/text-stroke.js new file mode 100644 index 0000000..a25bbc1 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/text-stroke.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L","33":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","161":"H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB IC JC","161":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","450":"RB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"33":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"33":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","36":"2B"},H:{"2":"tC"},I:{"2":"wB","33":"I D uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"2":"A B C tB EC uB","33":"l"},L:{"33":"D"},M:{"161":"D"},N:{"2":"A B"},O:{"33":"0C"},P:{"33":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"33":"4B"},R:{"33":"ED"},S:{"161":"FD GD"}},B:7,C:"CSS text-stroke and text-fill"}; diff --git a/node_modules/caniuse-lite/data/features/textcontent.js b/node_modules/caniuse-lite/data/features/textcontent.js new file mode 100644 index 0000000..728a6f0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/textcontent.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"1":"F ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Node.textContent"}; diff --git a/node_modules/caniuse-lite/data/features/textencoder.js b/node_modules/caniuse-lite/data/features/textencoder.js new file mode 100644 index 0000000..79c3aeb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/textencoder.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N O IC JC","132":"0"},D:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"TextEncoder & TextDecoder"}; diff --git a/node_modules/caniuse-lite/data/features/tls1-1.js b/node_modules/caniuse-lite/data/features/tls1-1.js new file mode 100644 index 0000000..bd4f578 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tls1-1.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E GC","66":"F G A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB","2":"0 1 HC wB I z J E F G A B C K L H M N O j k IC JC","66":"2","129":"jB kB lB mB nB l oB pB qB rB","388":"sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T","2":"0 I z J E F G A B C K L H M N O j k","1540":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"E F G A B C K OC PC 3B tB uB","2":"I z J LC 2B MC NC","513":"L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB uB","2":"G B C UC VC WC XC tB EC YC","1540":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"1":"A","2":"E"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"129":"D"},N:{"1":"B","66":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"TLS 1.1"}; diff --git a/node_modules/caniuse-lite/data/features/tls1-2.js b/node_modules/caniuse-lite/data/features/tls1-2.js new file mode 100644 index 0000000..7cc29b4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tls1-2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E GC","66":"F G A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 HC wB I z J E F G A B C K L H M N O j k IC JC","66":"3 4 5"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G H UC","66":"B C VC WC XC tB EC YC uB"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"1":"A","2":"E"},K:{"1":"l uB","2":"A B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","66":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"TLS 1.2"}; diff --git a/node_modules/caniuse-lite/data/features/tls1-3.js b/node_modules/caniuse-lite/data/features/tls1-3.js new file mode 100644 index 0000000..e8b7339 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/tls1-3.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB IC JC","132":"cB yB dB","450":"UB VB WB XB YB ZB aB bB xB"},D:{"1":"lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","706":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","1028":"K uB 4B"},F:{"1":"aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB","706":"XB YB ZB"},G:{"1":"lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:6,C:"TLS 1.3"}; diff --git a/node_modules/caniuse-lite/data/features/touch.js b/node_modules/caniuse-lite/data/features/touch.js new file mode 100644 index 0000000..7136fb2 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/touch.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","8":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","578":"C K L H M N O"},C:{"1":"0 1 2 3 O j k VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","4":"I z J E F G A B C K L H M N","194":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O j k"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","260":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:2,C:"Touch events"}; diff --git a/node_modules/caniuse-lite/data/features/transforms2d.js b/node_modules/caniuse-lite/data/features/transforms2d.js new file mode 100644 index 0000000..0f5d25a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/transforms2d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F","129":"A B","161":"G"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K L H M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","33":"I z J E F G A B C K L H IC JC"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","33":"I z J E F LC 2B MC NC OC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G UC VC","33":"0 1 B C H M N O j k WC XC tB EC YC"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","33":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","33":"wB I uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 2D Transforms"}; diff --git a/node_modules/caniuse-lite/data/features/transforms3d.js b/node_modules/caniuse-lite/data/features/transforms3d.js new file mode 100644 index 0000000..2db51f3 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/transforms3d.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G IC JC","33":"A B C K L H"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B","33":"0 1 2 3 4 5 6 7 8 9 C K L H M N O j k AB BB CB DB EB"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B","33":"I z J E F MC NC OC","257":"G A B C K L H PC 3B tB uB 4B QC RC 5B"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 H M N O j k"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","33":"F 2B ZC FC aC bC cC dC","257":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"uC vC wC","33":"wB I xC FC yC zC"},J:{"33":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:5,C:"CSS3 3D Transforms"}; diff --git a/node_modules/caniuse-lite/data/features/trusted-types.js b/node_modules/caniuse-lite/data/features/trusted-types.js new file mode 100644 index 0000000..ce479ea --- /dev/null +++ b/node_modules/caniuse-lite/data/features/trusted-types.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Trusted Types for DOM manipulation"}; diff --git a/node_modules/caniuse-lite/data/features/ttf.js b/node_modules/caniuse-lite/data/features/ttf.js new file mode 100644 index 0000000..37be790 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/ttf.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","132":"G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i VC WC XC tB EC YC uB","2":"G UC"},G:{"1":"F FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC"},H:{"2":"tC"},I:{"1":"wB I D vC wC xC FC yC zC","2":"uC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"TTF/OTF - TrueType and OpenType font support"}; diff --git a/node_modules/caniuse-lite/data/features/typedarrays.js b/node_modules/caniuse-lite/data/features/typedarrays.js new file mode 100644 index 0000000..572355a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/typedarrays.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"B","2":"J E F G GC","132":"A"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B","260":"MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC","260":"FC"},H:{"1":"tC"},I:{"1":"I D xC FC yC zC","2":"wB uC vC wC"},J:{"1":"A","2":"E"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Typed Arrays"}; diff --git a/node_modules/caniuse-lite/data/features/u2f.js b/node_modules/caniuse-lite/data/features/u2f.js new file mode 100644 index 0000000..9f21009 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/u2f.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O s t u v w x y D","513":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r"},C:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB 0B 1B IC JC","322":"QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB y D"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB s t u v w x y D 0B 1B KC","130":"HB IB JB","513":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g","578":"h i m n o p q r"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB KB UC VC WC XC tB EC YC uB","513":"JB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"1":"GD","322":"FD"}},B:7,C:"FIDO U2F API"}; diff --git a/node_modules/caniuse-lite/data/features/unhandledrejection.js b/node_modules/caniuse-lite/data/features/unhandledrejection.js new file mode 100644 index 0000000..6a87138 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/unhandledrejection.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB IC JC"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB"},G:{"1":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC","16":"iC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:1,C:"unhandledrejection/rejectionhandled events"}; diff --git a/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js b/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js new file mode 100644 index 0000000..a1743d5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"1":"LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB IC JC"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Upgrade Insecure Requests"}; diff --git a/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js b/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js new file mode 100644 index 0000000..a7e0713 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","66":"P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l","66":"oB pB qB rB sB P Q"},E:{"1":"9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB"},F:{"1":"jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB UC VC WC XC tB EC YC uB","66":"hB iB"},G:{"1":"9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"URL Scroll-To-Text Fragment"}; diff --git a/node_modules/caniuse-lite/data/features/url.js b/node_modules/caniuse-lite/data/features/url.js new file mode 100644 index 0000000..f6357ce --- /dev/null +++ b/node_modules/caniuse-lite/data/features/url.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 HC wB I z J E F G A B C K L H M N O j k IC JC"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 I z J E F G A B C K L H M N O j k","130":"2 3 4 5 6 7 8 9 AB"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC NC","130":"E"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","130":"H M N O"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC","130":"cC"},H:{"2":"tC"},I:{"1":"D zC","2":"wB I uC vC wC xC FC","130":"yC"},J:{"2":"E","130":"A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"URL API"}; diff --git a/node_modules/caniuse-lite/data/features/urlsearchparams.js b/node_modules/caniuse-lite/data/features/urlsearchparams.js new file mode 100644 index 0000000..5a21adb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/urlsearchparams.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC","132":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB"},E:{"1":"B C K L H 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB"},G:{"1":"hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"URLSearchParams"}; diff --git a/node_modules/caniuse-lite/data/features/use-strict.js b/node_modules/caniuse-lite/data/features/use-strict.js new file mode 100644 index 0000000..826948a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/use-strict.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","132":"z MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"1":"tC"},I:{"1":"wB I D xC FC yC zC","2":"uC vC wC"},J:{"1":"E A"},K:{"1":"C l EC uB","2":"A B tB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"ECMAScript 5 Strict Mode"}; diff --git a/node_modules/caniuse-lite/data/features/user-select-none.js b/node_modules/caniuse-lite/data/features/user-select-none.js new file mode 100644 index 0000000..2aae6ee --- /dev/null +++ b/node_modules/caniuse-lite/data/features/user-select-none.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","33":"A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","33":"C K L H M N O"},C:{"1":"kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","33":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB IC JC"},D:{"1":"XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","33":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"TC","33":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","33":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB"},G:{"33":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","33":"wB I uC vC wC xC FC yC zC"},J:{"33":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"33":"A B"},O:{"1":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","33":"I 1C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","33":"FD"}},B:5,C:"CSS user-select: none"}; diff --git a/node_modules/caniuse-lite/data/features/user-timing.js b/node_modules/caniuse-lite/data/features/user-timing.js new file mode 100644 index 0000000..4ad21f8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/user-timing.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB IC JC"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 I z J E F G A B C K L H M N O j k"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"User Timing API"}; diff --git a/node_modules/caniuse-lite/data/features/variable-fonts.js b/node_modules/caniuse-lite/data/features/variable-fonts.js new file mode 100644 index 0000000..1fca43d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/variable-fonts.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB IC JC","4609":"dB eB fB gB hB iB jB kB lB","4674":"yB","5698":"cB","7490":"WB XB YB ZB aB","7746":"bB xB","8705":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB","4097":"hB","4290":"xB cB yB","6148":"dB eB fB gB"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","4609":"B C tB uB","8193":"K L 4B QC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB UC VC WC XC tB EC YC uB","4097":"WB","6148":"SB TB UB VB"},G:{"1":"mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC","4097":"iC jC kC lC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"4097":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"2":"I 1C 2C 3C","4097":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:5,C:"Variable fonts"}; diff --git a/node_modules/caniuse-lite/data/features/vector-effect.js b/node_modules/caniuse-lite/data/features/vector-effect.js new file mode 100644 index 0000000..942ebed --- /dev/null +++ b/node_modules/caniuse-lite/data/features/vector-effect.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J E F G A B C K L"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","2":"G B UC VC WC XC tB EC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"1":"tC"},I:{"1":"D yC zC","16":"wB I uC vC wC xC FC"},J:{"16":"E A"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"SVG vector-effect: non-scaling-stroke"}; diff --git a/node_modules/caniuse-lite/data/features/vibration.js b/node_modules/caniuse-lite/data/features/vibration.js new file mode 100644 index 0000000..3efd470 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/vibration.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A IC JC","33":"B C K L H"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 I z J E F G A B C K L H M N O j k"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C H M UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"Vibration API"}; diff --git a/node_modules/caniuse-lite/data/features/video.js b/node_modules/caniuse-lite/data/features/video.js new file mode 100644 index 0000000..a69ea63 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/video.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","260":"0 I z J E F G A B C K L H M N O IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A MC NC OC PC 3B","2":"LC 2B","513":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC","513":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","132":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Video element"}; diff --git a/node_modules/caniuse-lite/data/features/videotracks.js b/node_modules/caniuse-lite/data/features/videotracks.js new file mode 100644 index 0000000..913d78c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/videotracks.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O","322":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC","194":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB","322":"OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J LC 2B MC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB UC VC WC XC tB EC YC uB","322":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","322":"l"},L:{"322":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"322":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"322":"4B"},R:{"322":"ED"},S:{"194":"FD GD"}},B:1,C:"Video Tracks"}; diff --git a/node_modules/caniuse-lite/data/features/viewport-unit-variants.js b/node_modules/caniuse-lite/data/features/viewport-unit-variants.js new file mode 100644 index 0000000..38e083c --- /dev/null +++ b/node_modules/caniuse-lite/data/features/viewport-unit-variants.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q","194":"r s t"},C:{"1":"n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m IC JC"},D:{"1":"u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i","194":"m n o p q r s t"},E:{"1":"6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B"},F:{"1":"d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z UC VC WC XC tB EC YC uB","194":"a b c"},G:{"1":"6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"k","2":"I j 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:5,C:"Small, Large, and Dynamic viewport units"}; diff --git a/node_modules/caniuse-lite/data/features/viewport-units.js b/node_modules/caniuse-lite/data/features/viewport-units.js new file mode 100644 index 0000000..b8f609a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/viewport-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","132":"G","260":"A B"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","260":"C K L H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L H M N O IC JC"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 I z J E F G A B C K L H M N O","260":"1 2 3 4 j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC","260":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC","516":"cC","772":"bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"260":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"Viewport units: vw, vh, vmin, vmax"}; diff --git a/node_modules/caniuse-lite/data/features/wai-aria.js b/node_modules/caniuse-lite/data/features/wai-aria.js new file mode 100644 index 0000000..a5cbd66 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wai-aria.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","4":"F G A B"},B:{"4":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"4":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"LC 2B","4":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G","4":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"4":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"4":"tC"},I:{"2":"wB I uC vC wC xC FC","4":"D yC zC"},J:{"2":"E A"},K:{"4":"A B C l tB EC uB"},L:{"4":"D"},M:{"4":"D"},N:{"4":"A B"},O:{"4":"0C"},P:{"4":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"4":"4B"},R:{"4":"ED"},S:{"4":"FD GD"}},B:2,C:"WAI-ARIA Accessibility features"}; diff --git a/node_modules/caniuse-lite/data/features/wake-lock.js b/node_modules/caniuse-lite/data/features/wake-lock.js new file mode 100644 index 0000000..0730a0f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wake-lock.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","194":"P Q R S T U V W X Y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB","194":"mB nB l oB pB qB rB sB P Q R S T"},E:{"1":"CC DC SC TC","2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC"},F:{"1":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB UC VC WC XC tB EC YC uB","194":"bB cB dB eB fB gB hB iB jB kB lB mB nB"},G:{"1":"CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 9C AD vB BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:4,C:"Screen Wake Lock API"}; diff --git a/node_modules/caniuse-lite/data/features/wasm.js b/node_modules/caniuse-lite/data/features/wasm.js new file mode 100644 index 0000000..0e88a43 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wasm.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L","578":"H"},C:{"1":"WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB IC JC","194":"QB RB SB TB UB","1025":"VB"},D:{"1":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","322":"UB VB WB XB YB ZB"},E:{"1":"B C K L H tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB UC VC WC XC tB EC YC uB","322":"HB IB JB KB LB MB"},G:{"1":"iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","194":"FD"}},B:6,C:"WebAssembly"}; diff --git a/node_modules/caniuse-lite/data/features/wav.js b/node_modules/caniuse-lite/data/features/wav.js new file mode 100644 index 0000000..cc76794 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wav.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i WC XC tB EC YC uB","2":"G UC VC"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","16":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"Wav audio format"}; diff --git a/node_modules/caniuse-lite/data/features/wbr-element.js b/node_modules/caniuse-lite/data/features/wbr-element.js new file mode 100644 index 0000000..e59bcc8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wbr-element.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E GC","2":"F G A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"LC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","16":"G"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC"},H:{"1":"tC"},I:{"1":"wB I D wC xC FC yC zC","16":"uC vC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"wbr (word break opportunity) element"}; diff --git a/node_modules/caniuse-lite/data/features/web-animation.js b/node_modules/caniuse-lite/data/features/web-animation.js new file mode 100644 index 0000000..dd53ddb --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","260":"P Q R S"},C:{"1":"R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB IC JC","260":"xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB","516":"QB RB SB TB UB VB WB XB YB ZB aB bB","580":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB","2049":"pB qB rB sB P Q"},D:{"1":"T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB","132":"FB GB HB","260":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC 3B","1090":"B C K tB uB","2049":"L 4B QC"},F:{"1":"mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 G B C H M N O j k UC VC WC XC tB EC YC uB","132":"2 3 4","260":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC","1090":"iC jC kC lC mC nC oC","2049":"pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"260":"0C"},P:{"260":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"260":"4B"},R:{"1":"ED"},S:{"1":"GD","516":"FD"}},B:5,C:"Web Animations API"}; diff --git a/node_modules/caniuse-lite/data/features/web-app-manifest.js b/node_modules/caniuse-lite/data/features/web-app-manifest.js new file mode 100644 index 0000000..f255e85 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-app-manifest.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","578":"qB rB sB P Q R zB S T U"},D:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC","4":"CC DC","260":"jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"Add to home screen (A2HS)"}; diff --git a/node_modules/caniuse-lite/data/features/web-bluetooth.js b/node_modules/caniuse-lite/data/features/web-bluetooth.js new file mode 100644 index 0000000..48b8a1a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-bluetooth.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","1025":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB","194":"OB PB QB RB SB TB UB VB","706":"WB XB YB","1025":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB UC VC WC XC tB EC YC uB","450":"FB GB HB IB","706":"JB KB LB","1025":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC zC","1025":"D"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","1025":"l"},L:{"1025":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1025":"0C"},P:{"1":"j k 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C"},Q:{"2":"4B"},R:{"1025":"ED"},S:{"2":"FD GD"}},B:7,C:"Web Bluetooth"}; diff --git a/node_modules/caniuse-lite/data/features/web-serial.js b/node_modules/caniuse-lite/data/features/web-serial.js new file mode 100644 index 0000000..503e18d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-serial.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","66":"P Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB","66":"sB P Q R S T U V W X"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB UC VC WC XC tB EC YC uB","66":"gB hB iB jB kB lB mB nB l oB pB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"Web Serial API"}; diff --git a/node_modules/caniuse-lite/data/features/web-share.js b/node_modules/caniuse-lite/data/features/web-share.js new file mode 100644 index 0000000..317c203 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/web-share.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q","516":"R S T U V W X Y Z a b c d"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"4 5 6 7 8 9 I z J E F G A B C K L H M N AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X","130":"0 1 2 3 O j k","1028":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"L H QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","2049":"K uB 4B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC","2049":"lC mC nC oC pC"},H:{"2":"tC"},I:{"2":"wB I uC vC wC xC FC yC","258":"D zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I","258":"1C 2C 3C"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:4,C:"Web Share API"}; diff --git a/node_modules/caniuse-lite/data/features/webauthn.js b/node_modules/caniuse-lite/data/features/webauthn.js new file mode 100644 index 0000000..d3efde4 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webauthn.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C","226":"K L H M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB IC JC","5124":"cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB"},E:{"1":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB","322":"uB"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB UC VC WC XC tB EC YC uB"},G:{"1":"rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC","578":"nC","2052":"qC","3076":"oC pC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1028":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2":"FD"}},B:2,C:"Web Authentication API"}; diff --git a/node_modules/caniuse-lite/data/features/webcodecs.js b/node_modules/caniuse-lite/data/features/webcodecs.js new file mode 100644 index 0000000..772db73 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webcodecs.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC","260":"CC DC SC TC"},F:{"1":"Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC","260":"CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k BD CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"WebCodecs API"}; diff --git a/node_modules/caniuse-lite/data/features/webgl.js b/node_modules/caniuse-lite/data/features/webgl.js new file mode 100644 index 0000000..fd05a31 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webgl.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"GC","8":"J E F G A","129":"B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","129":"C K L H M N O"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","129":"0 1 2 I z J E F G A B C K L H M N O j k"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E","129":"0 1 2 3 4 5 6 7 8 9 F G A B C K L H M N O j k AB BB"},E:{"1":"F G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B","129":"J E MC NC OC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B UC VC WC XC tB EC YC","129":"C H M N O uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC cC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"1":"A","2":"E"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A","129":"B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","129":"FD"}},B:6,C:"WebGL - 3D Canvas graphics"}; diff --git a/node_modules/caniuse-lite/data/features/webgl2.js b/node_modules/caniuse-lite/data/features/webgl2.js new file mode 100644 index 0000000..cd85de8 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webgl2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"LB MB NB","450":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB","2242":"OB PB QB RB SB TB"},D:{"1":"ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB","578":"MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"H RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G A LC 2B MC NC OC PC","1090":"B C K L 3B tB uB 4B QC"},F:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB UC VC WC XC tB EC YC uB"},G:{"1":"sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC","1090":"kC lC mC nC oC pC qC rC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","2242":"FD"}},B:6,C:"WebGL 2.0"}; diff --git a/node_modules/caniuse-lite/data/features/webgpu.js b/node_modules/caniuse-lite/data/features/webgpu.js new file mode 100644 index 0000000..147830e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webgpu.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"D","2":"C K L H M N O P","578":"Q R S T U V W X Y Z a b c","1602":"d e f g h i m n o p q r s t u v w x y"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB IC JC","194":"eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P","578":"Q R S T U V W X Y Z a b c","1602":"d e f g h i m n o p q r s t u v w x y","2049":"D 0B 1B KC"},E:{"2":"I z J E F G A B H LC 2B MC NC OC PC 3B RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","322":"C K L tB uB 4B QC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB UC VC WC XC tB EC YC uB","578":"l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"194":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD","194":"GD"}},B:5,C:"WebGPU"}; diff --git a/node_modules/caniuse-lite/data/features/webhid.js b/node_modules/caniuse-lite/data/features/webhid.js new file mode 100644 index 0000000..dd94329 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webhid.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O","66":"P Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB","66":"sB P Q R S T U V W X"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB UC VC WC XC tB EC YC uB","66":"hB iB jB kB lB mB nB l oB pB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"WebHID API"}; diff --git a/node_modules/caniuse-lite/data/features/webkit-user-drag.js b/node_modules/caniuse-lite/data/features/webkit-user-drag.js new file mode 100644 index 0000000..48415aa --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webkit-user-drag.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","132":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"16":"I z J E F G A B C K L H","132":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"G B C UC VC WC XC tB EC YC uB","132":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"CSS -webkit-user-drag property"}; diff --git a/node_modules/caniuse-lite/data/features/webm.js b/node_modules/caniuse-lite/data/features/webm.js new file mode 100644 index 0000000..5ab961b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webm.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F GC","520":"G A B"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","8":"C K","388":"L H M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","132":"0 1 2 3 4 5 6 I z J E F G A B C K L H M N O j k"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z","132":"0 1 2 3 J E F G A B C K L H M N O j k"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"LC","8":"I z 2B MC","520":"J E F G A B C NC OC PC 3B tB","1028":"K uB 4B","7172":"L","8196":"H QC RC 5B 6B 7B 8B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC VC WC","132":"B C H XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC","1028":"lC mC nC oC pC","3076":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"uC vC","132":"wB I wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"8":"A B"},O:{"1":"0C"},P:{"1":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","132":"I"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:6,C:"WebM video format"}; diff --git a/node_modules/caniuse-lite/data/features/webnfc.js b/node_modules/caniuse-lite/data/features/webnfc.js new file mode 100644 index 0000000..09ad0c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webnfc.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O P Y Z a b c d e f g h i m n o p q r s t u v w x y D","450":"Q R S T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","450":"Q R S T U V W X"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","450":"iB jB kB lB mB nB l oB pB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"257":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"Web NFC"}; diff --git a/node_modules/caniuse-lite/data/features/webp.js b/node_modules/caniuse-lite/data/features/webp.js new file mode 100644 index 0000000..0f5b094 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webp.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N"},C:{"1":"gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","8":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z","8":"J E F","132":"0 1 G A B C K L H M N O j k","260":"2 3 4 5 6 7 8 9 AB"},E:{"1":"vB 9B AC BC CC DC SC TC","2":"I z J E F G A B C K LC 2B MC NC OC PC 3B tB uB 4B","516":"L H QC RC 5B 6B 7B 8B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G UC VC WC","8":"B XC","132":"tB EC YC","260":"C H M N O uB"},G:{"1":"qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC"},H:{"1":"tC"},I:{"1":"D FC yC zC","2":"wB uC vC wC","132":"I xC"},J:{"2":"E A"},K:{"1":"C l tB EC uB","2":"A","132":"B"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","8":"FD"}},B:6,C:"WebP image format"}; diff --git a/node_modules/caniuse-lite/data/features/websockets.js b/node_modules/caniuse-lite/data/features/websockets.js new file mode 100644 index 0000000..edfbd9e --- /dev/null +++ b/node_modules/caniuse-lite/data/features/websockets.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB IC JC","132":"I z","292":"J E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"I z J E F G A B C K L","260":"H"},E:{"1":"E F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","132":"z MC","260":"J NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G UC VC WC XC","132":"B C tB EC YC"},G:{"1":"F bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC","132":"FC aC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","129":"E"},K:{"1":"l uB","2":"A","132":"B C tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Web Sockets"}; diff --git a/node_modules/caniuse-lite/data/features/webtransport.js b/node_modules/caniuse-lite/data/features/webtransport.js new file mode 100644 index 0000000..b0a9743 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webtransport.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"h i m n o p q r s t u v w x y D","2":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g"},C:{"1":"0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D IC JC"},D:{"1":"g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z e f","66":"a b c d"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB UC VC WC XC tB EC YC uB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"1":"j k CD DD","2":"I 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:5,C:"WebTransport"}; diff --git a/node_modules/caniuse-lite/data/features/webusb.js b/node_modules/caniuse-lite/data/features/webusb.js new file mode 100644 index 0000000..50383f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webusb.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB","66":"XB YB ZB aB bB xB cB"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB UC VC WC XC tB EC YC uB","66":"KB LB MB NB OB PB QB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"j k 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD","2":"I 1C 2C 3C"},Q:{"2":"4B"},R:{"1":"ED"},S:{"2":"FD GD"}},B:7,C:"WebUSB"}; diff --git a/node_modules/caniuse-lite/data/features/webvr.js b/node_modules/caniuse-lite/data/features/webvr.js new file mode 100644 index 0000000..867b0a0 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webvr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","66":"P","257":"H M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB IC JC","129":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","194":"XB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","66":"aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P"},E:{"2":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","66":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C l tB EC uB"},L:{"2":"D"},M:{"2":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"513":"I","516":"j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD GD"}},B:7,C:"WebVR API"}; diff --git a/node_modules/caniuse-lite/data/features/webvtt.js b/node_modules/caniuse-lite/data/features/webvtt.js new file mode 100644 index 0000000..d7d9001 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webvtt.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 HC wB I z J E F G A B C K L H M N O j k IC JC","66":"3 4 5 6 7 8 9","129":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB","257":"YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I z J E F G A B C K L H M N"},E:{"1":"J E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB I uC vC wC xC FC"},J:{"1":"A","2":"E"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"B","2":"A"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"129":"FD GD"}},B:4,C:"WebVTT - Web Video Text Tracks"}; diff --git a/node_modules/caniuse-lite/data/features/webworkers.js b/node_modules/caniuse-lite/data/features/webworkers.js new file mode 100644 index 0000000..1b62094 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webworkers.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","2":"GC","8":"J E F G"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","8":"HC wB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","8":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i XC tB EC YC uB","2":"G UC","8":"VC WC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"D uC yC zC","2":"wB I vC wC xC FC"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","8":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Web Workers"}; diff --git a/node_modules/caniuse-lite/data/features/webxr.js b/node_modules/caniuse-lite/data/features/webxr.js new file mode 100644 index 0000000..d2edd2b --- /dev/null +++ b/node_modules/caniuse-lite/data/features/webxr.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"2":"C K L H M N O","132":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB IC JC","322":"rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB","66":"gB hB iB jB kB lB mB nB l oB pB qB rB sB","132":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"2":"I z J E F G A B C LC 2B MC NC OC PC 3B tB uB","578":"K L H 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB UC VC WC XC tB EC YC uB","66":"VB WB XB YB ZB aB bB cB dB eB fB gB","132":"hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i"},G:{"2":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"2":"tC"},I:{"2":"wB I D uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"2":"A B C tB EC uB","132":"l"},L:{"132":"D"},M:{"322":"D"},N:{"2":"A B"},O:{"2":"0C"},P:{"2":"I 1C 2C 3C 4C 5C 3B 6C","132":"j k 7C 8C 9C AD vB BD CD DD"},Q:{"2":"4B"},R:{"2":"ED"},S:{"2":"FD","322":"GD"}},B:4,C:"WebXR Device API"}; diff --git a/node_modules/caniuse-lite/data/features/will-change.js b/node_modules/caniuse-lite/data/features/will-change.js new file mode 100644 index 0000000..5748649 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/will-change.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K L H M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 HC wB I z J E F G A B C K L H M N O j k IC JC","194":"8 9 AB BB CB DB EB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB"},E:{"1":"A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 2 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS will-change property"}; diff --git a/node_modules/caniuse-lite/data/features/woff.js b/node_modules/caniuse-lite/data/features/woff.js new file mode 100644 index 0000000..cab74ab --- /dev/null +++ b/node_modules/caniuse-lite/data/features/woff.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B JC","2":"HC wB IC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"I"},E:{"1":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i tB EC YC uB","2":"G B UC VC WC XC"},G:{"1":"F aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC"},H:{"2":"tC"},I:{"1":"D yC zC","2":"wB uC vC wC xC FC","130":"I"},J:{"1":"E A"},K:{"1":"B C l tB EC uB","2":"A"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"WOFF - Web Open Font Format"}; diff --git a/node_modules/caniuse-lite/data/features/woff2.js b/node_modules/caniuse-lite/data/features/woff2.js new file mode 100644 index 0000000..f12fc1a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/woff2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G A B GC"},B:{"1":"L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","2":"C K"},C:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IC JC"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","2":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB"},E:{"1":"C K L H uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I z J E F G LC 2B MC NC OC PC","132":"A B 3B tB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"0 1 G B C H M N O j k UC VC WC XC tB EC YC uB"},G:{"1":"gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"F 2B ZC FC aC bC cC dC eC fC"},H:{"2":"tC"},I:{"1":"D","2":"wB I uC vC wC xC FC yC zC"},J:{"2":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"2":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:2,C:"WOFF 2.0 - Web Open Font Format"}; diff --git a/node_modules/caniuse-lite/data/features/word-break.js b/node_modules/caniuse-lite/data/features/word-break.js new file mode 100644 index 0000000..8fd2429 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/word-break.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"J E F G A B GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB I z J E F G A B C K L IC JC"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"G A B C K L H PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","4":"I z J E F LC 2B MC NC OC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","2":"G B C UC VC WC XC tB EC YC uB","4":"0 1 2 3 4 5 6 7 8 9 H M N O j k"},G:{"1":"eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","4":"F 2B ZC FC aC bC cC dC"},H:{"2":"tC"},I:{"1":"D","4":"wB I uC vC wC xC FC yC zC"},J:{"4":"E A"},K:{"1":"l","2":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS3 word-break"}; diff --git a/node_modules/caniuse-lite/data/features/wordwrap.js b/node_modules/caniuse-lite/data/features/wordwrap.js new file mode 100644 index 0000000..653c53d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/wordwrap.js @@ -0,0 +1 @@ +module.exports={A:{A:{"4":"J E F G A B GC"},B:{"1":"O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D","4":"C K L H M N"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","4":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB IC JC"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","4":"0 1 I z J E F G A B C K L H M N O j k"},E:{"1":"E F G A B C K L H NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","4":"I z J LC 2B MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G UC VC","4":"B C WC XC tB EC YC"},G:{"1":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","4":"2B ZC FC aC bC"},H:{"4":"tC"},I:{"1":"D yC zC","4":"wB I uC vC wC xC FC"},J:{"1":"A","4":"E"},K:{"1":"l","4":"A B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"GD","4":"FD"}},B:4,C:"CSS3 Overflow-wrap"}; diff --git a/node_modules/caniuse-lite/data/features/x-doc-messaging.js b/node_modules/caniuse-lite/data/features/x-doc-messaging.js new file mode 100644 index 0000000..9d5325d --- /dev/null +++ b/node_modules/caniuse-lite/data/features/x-doc-messaging.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E GC","132":"F G","260":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC","2":"HC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"LC 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB","2":"G"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"4":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"Cross-document messaging"}; diff --git a/node_modules/caniuse-lite/data/features/x-frame-options.js b/node_modules/caniuse-lite/data/features/x-frame-options.js new file mode 100644 index 0000000..654b50f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/x-frame-options.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"F G A B","2":"J E GC"},B:{"1":"C K L H M N O","4":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB","4":"I z J E F G A B C K L H M N lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","16":"HC wB IC JC"},D:{"4":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"0 1 2 3 4 I z J E F G A B C K L H M N O j k"},E:{"4":"J E F G A B C K L H MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","16":"I z LC 2B"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i YC uB","16":"G B UC VC WC XC tB EC"},G:{"4":"F cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","16":"2B ZC FC aC bC"},H:{"2":"tC"},I:{"4":"I D xC FC yC zC","16":"wB uC vC wC"},J:{"4":"E A"},K:{"4":"l uB","16":"A B C tB EC"},L:{"4":"D"},M:{"4":"D"},N:{"1":"A B"},O:{"4":"0C"},P:{"4":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"4":"4B"},R:{"4":"ED"},S:{"1":"FD","4":"GD"}},B:6,C:"X-Frame-Options HTTP header"}; diff --git a/node_modules/caniuse-lite/data/features/xhr2.js b/node_modules/caniuse-lite/data/features/xhr2.js new file mode 100644 index 0000000..a785d9a --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xhr2.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J E F G GC","132":"A B"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","2":"HC wB","260":"A B","388":"J E F G","900":"I z IC JC"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","16":"I z J","132":"8 9","388":"0 1 2 3 4 5 6 7 E F G A B C K L H M N O j k"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","2":"I LC 2B","132":"E NC","388":"z J MC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i uB","2":"G B UC VC WC XC tB EC YC","132":"H M N"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","2":"2B ZC FC","132":"cC","388":"aC bC"},H:{"2":"tC"},I:{"1":"D zC","2":"uC vC wC","388":"yC","900":"wB I xC FC"},J:{"132":"A","388":"E"},K:{"1":"C l uB","2":"A B tB EC"},L:{"1":"D"},M:{"1":"D"},N:{"132":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"XMLHttpRequest advanced features"}; diff --git a/node_modules/caniuse-lite/data/features/xhtml.js b/node_modules/caniuse-lite/data/features/xhtml.js new file mode 100644 index 0000000..eca22be --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xhtml.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"G A B","2":"J E F GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"1":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"1":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"1":"tC"},I:{"1":"wB I D uC vC wC xC FC yC zC"},J:{"1":"E A"},K:{"1":"A B C l tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:1,C:"XHTML served as application/xhtml+xml"}; diff --git a/node_modules/caniuse-lite/data/features/xhtmlsmil.js b/node_modules/caniuse-lite/data/features/xhtmlsmil.js new file mode 100644 index 0000000..e9a277f --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xhtmlsmil.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"G A B GC","4":"J E F"},B:{"2":"C K L H M N O","8":"P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"8":"0 1 2 3 4 5 6 7 8 9 HC wB I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B IC JC"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC"},E:{"8":"I z J E F G A B C K L H LC 2B MC NC OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC"},F:{"8":"0 1 2 3 4 5 6 7 8 9 G B C H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i UC VC WC XC tB EC YC uB"},G:{"8":"F 2B ZC FC aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC"},H:{"8":"tC"},I:{"8":"wB I D uC vC wC xC FC yC zC"},J:{"8":"E A"},K:{"8":"A B C l tB EC uB"},L:{"8":"D"},M:{"8":"D"},N:{"2":"A B"},O:{"8":"0C"},P:{"8":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"8":"4B"},R:{"8":"ED"},S:{"8":"FD GD"}},B:7,C:"XHTML+SMIL animation"}; diff --git a/node_modules/caniuse-lite/data/features/xml-serializer.js b/node_modules/caniuse-lite/data/features/xml-serializer.js new file mode 100644 index 0000000..f1a2d24 --- /dev/null +++ b/node_modules/caniuse-lite/data/features/xml-serializer.js @@ -0,0 +1 @@ +module.exports={A:{A:{"1":"A B","260":"J E F G GC"},B:{"1":"C K L H M N O P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L H M N O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B","132":"B","260":"HC wB I z J E IC JC","516":"F G A"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB xB cB yB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R S T U V W X Y Z a b c d e f g h i m n o p q r s t u v w x y D 0B 1B KC","132":"0 1 2 3 4 5 6 7 8 9 I z J E F G A B C K L H M N O j k"},E:{"1":"F G A B C K L H OC PC 3B tB uB 4B QC RC 5B 6B 7B 8B vB 9B AC BC CC DC SC TC","132":"I z J E LC 2B MC NC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O j k AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB l oB pB qB rB sB P Q R zB S T U V W X Y Z a b c d e f g h i","16":"G UC","132":"B C H M N VC WC XC tB EC YC uB"},G:{"1":"F dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC 5B 6B 7B 8B vB 9B AC BC CC DC","132":"2B ZC FC aC bC cC"},H:{"132":"tC"},I:{"1":"D yC zC","132":"wB I uC vC wC xC FC"},J:{"132":"E A"},K:{"1":"l","16":"A","132":"B C tB EC uB"},L:{"1":"D"},M:{"1":"D"},N:{"1":"A B"},O:{"1":"0C"},P:{"1":"I j k 1C 2C 3C 4C 5C 3B 6C 7C 8C 9C AD vB BD CD DD"},Q:{"1":"4B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"DOM Parsing and Serialization"}; diff --git a/node_modules/caniuse-lite/data/regions/AD.js b/node_modules/caniuse-lite/data/regions/AD.js new file mode 100644 index 0000000..38b4c2d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00394,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00394,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00394,"103":0.00394,"104":0.00394,"105":0.00394,"106":0,"107":0.00394,"108":0,"109":0.00787,"110":0.01181,"111":0.34646,"112":0.35433,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.00394,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01575,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.02756,"68":0,"69":0,"70":0.00394,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00394,"78":0,"79":0.04331,"80":0,"81":0,"83":0,"84":0.00394,"85":0,"86":0,"87":0.01181,"88":0,"89":0,"90":0.00787,"91":0.00394,"92":0,"93":0,"94":0,"95":0.00787,"96":0.00394,"97":0.00394,"98":0,"99":0.00394,"100":0.0315,"101":0,"102":0.00394,"103":0.05512,"104":0.00394,"105":0.10236,"106":0.00787,"107":0.00394,"108":0.02362,"109":0.49606,"110":0.3189,"111":2.17716,"112":2.52362,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00394,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00394,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00394,"96":0.08661,"97":0.22441,"98":0.00787,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00394,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00394,"108":0,"109":0.02362,"110":0.01181,"111":0.32283,"112":1,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.02756,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00394,"13.1":0.05512,"14.1":0.08268,"15.1":0.04331,"15.2-15.3":0.08661,"15.4":0.13386,"15.5":0.18504,"15.6":0.73228,"16.0":0.17323,"16.1":0.32677,"16.2":0.44882,"16.3":2.12598,"16.4":1.27165,"16.5":0.02362},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00652,"8.1-8.4":0.02607,"9.0-9.2":0,"9.3":0.05865,"10.0-10.2":0,"10.3":0.05865,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.19551,"13.0-13.1":0,"13.2":0,"13.3":0.01303,"13.4-13.7":0.05214,"14.0-14.4":0.20203,"14.5-14.8":0.46271,"15.0-15.1":0.21506,"15.2-15.3":1.28387,"15.4":0.58002,"15.5":1.2578,"15.6":3.05,"16.0":4.92041,"16.1":9.43024,"16.2":4.50983,"16.3":23.09008,"16.4":11.71774,"16.5":0.20855},P:{"4":0.03154,"20":1.06176,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0.04205,"10.1":0,"11.1-11.2":0.01051,"12.0":0,"13.0":0.09461,"14.0":0,"15.0":0,"16.0":0,"17.0":0.04205,"18.0":0.01051,"19.0":0.01051},I:{"0":0,"3":0.00521,"4":0.02259,"2.1":0.00348,"2.2":0.00869,"2.3":0.01217,"4.1":0.01912,"4.2-4.3":0.0365,"4.4":0,"4.4.3-4.4.4":0.10949},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.00807,"8":0.06856,"9":0.01613,"10":0.0121,"11":0.05243,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.01213},N:{"10":0.01617,"11":0.03234},R:{_:"0"},M:{"0":0.21827},Q:{"13.1":0},O:{"0":0.07276},H:{"0":0.21238},L:{"0":21.1556}}; diff --git a/node_modules/caniuse-lite/data/regions/AE.js b/node_modules/caniuse-lite/data/regions/AE.js new file mode 100644 index 0000000..f7d373a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.00353,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00353,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00353,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01058,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00353,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00353,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00353,"109":0.00353,"110":0.00705,"111":0.1692,"112":0.1128,"113":0.00353,"114":0.00353,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00353,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00353,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.16215,"36":0,"37":0,"38":0.00705,"39":0,"40":0.00353,"41":0,"42":0,"43":0.00353,"44":0.00353,"45":0.00705,"46":0,"47":0.00353,"48":0,"49":0.00353,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00353,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00353,"66":0,"67":0,"68":0.00353,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00353,"75":0.00353,"76":0.01058,"77":0,"78":0.00353,"79":0.01763,"80":0.00353,"81":0.00353,"83":0.00705,"84":0.00705,"85":0.01058,"86":0.00705,"87":0.01058,"88":0.00353,"89":0.00353,"90":0.00353,"91":0.0141,"92":0.00353,"93":0.03525,"94":0.07403,"95":0.00353,"96":0.00353,"97":0.00353,"98":0.00705,"99":0.0141,"100":0.00705,"101":0.00705,"102":0.00705,"103":0.08813,"104":0.01058,"105":0.01058,"106":0.0141,"107":0.0141,"108":0.03173,"109":0.66623,"110":0.12338,"111":2.9469,"112":3.42983,"113":0.00705,"114":0.00353,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00705,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00353,"37":0.00353,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00353,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00353,"69":0.02115,"70":0,"71":0,"72":0,"73":0,"74":0.01058,"75":0.01058,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00353,"95":0.01058,"96":0.07755,"97":0.17273,"98":0.00705,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00353,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00353,"108":0.00353,"109":0.0141,"110":0.0141,"111":0.25028,"112":0.5499,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00705,"14":0.02115,"15":0.00353,_:"0","3.1":0,"3.2":0,"5.1":0.00353,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00705,"13.1":0.01763,"14.1":0.07403,"15.1":0.01058,"15.2-15.3":0.00705,"15.4":0.02468,"15.5":0.04935,"15.6":0.17625,"16.0":0.02115,"16.1":0.07755,"16.2":0.08108,"16.3":0.3384,"16.4":0.1551,"16.5":0.00353},G:{"8":0.00454,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00454,"6.0-6.1":0,"7.0-7.1":0.03179,"8.1-8.4":0.04087,"9.0-9.2":0.00227,"9.3":0.13623,"10.0-10.2":0,"10.3":0.07038,"11.0-11.2":0.00908,"11.3-11.4":0.00908,"12.0-12.1":0.00908,"12.2-12.5":0.35419,"13.0-13.1":0.00681,"13.2":0.00908,"13.3":0.01362,"13.4-13.7":0.07493,"14.0-14.4":0.19072,"14.5-14.8":0.41323,"15.0-15.1":0.15439,"15.2-15.3":0.14758,"15.4":0.18391,"15.5":0.37236,"15.6":1.00128,"16.0":1.60749,"16.1":2.37718,"16.2":1.58933,"16.3":8.13509,"16.4":4.32297,"16.5":0.12261},P:{"4":0.14306,"20":1.76786,"5.0-5.4":0.01022,"6.2-6.4":0,"7.2-7.4":0.03066,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01022,"12.0":0,"13.0":0.01022,"14.0":0.01022,"15.0":0.01022,"16.0":0.03066,"17.0":0.02044,"18.0":0.03066,"19.0":0.07153},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.08468},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00405,"9":0,"10":0,"11":0.07702,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.1295},Q:{"13.1":0},O:{"0":3.7555},H:{"0":0.76013},L:{"0":58.59505}}; diff --git a/node_modules/caniuse-lite/data/regions/AF.js b/node_modules/caniuse-lite/data/regions/AF.js new file mode 100644 index 0000000..6380a07 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00221,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00221,"48":0.00221,"49":0,"50":0.00221,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00221,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00221,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00221,"95":0,"96":0,"97":0,"98":0,"99":0.00221,"100":0,"101":0,"102":0.00221,"103":0.00441,"104":0,"105":0,"106":0,"107":0.00221,"108":0.00221,"109":0.00221,"110":0.00662,"111":0.11918,"112":0.07062,"113":0.01104,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0.00221,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0.00221,"42":0,"43":0.00221,"44":0,"45":0,"46":0,"47":0.00221,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.00221,"55":0,"56":0,"57":0.00221,"58":0,"59":0,"60":0,"61":0,"62":0.00441,"63":0.00221,"64":0.00221,"65":0.00221,"66":0.00221,"67":0.00221,"68":0,"69":0.01104,"70":0.00221,"71":0.00883,"72":0.00221,"73":0.00441,"74":0.00221,"75":0.00221,"76":0,"77":0.00221,"78":0.01324,"79":0.00441,"80":0.00662,"81":0.00441,"83":0.00441,"84":0.00221,"85":0.00883,"86":0.01545,"87":0.00883,"88":0.00441,"89":0.00441,"90":0.00221,"91":0.00662,"92":0.00441,"93":0.00221,"94":0.00662,"95":0.00221,"96":0.00441,"97":0.00221,"98":0.00441,"99":0.00883,"100":0.00221,"101":0.00221,"102":0.00662,"103":0.01104,"104":0.00441,"105":0.00662,"106":0.01104,"107":0.01545,"108":0.02869,"109":0.57823,"110":0.03973,"111":0.74817,"112":0.72831,"113":0,"114":0.00221,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00221,"60":0.00221,"62":0,"63":0,"64":0,"65":0.00221,"66":0,"67":0.00221,"68":0.00662,"69":0.01986,"70":0.00221,"71":0,"72":0,"73":0,"74":0.00441,"75":0,"76":0,"77":0,"78":0,"79":0.00221,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.08387,"96":0.00662,"97":0.07283,"98":0.00441,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00441,"13":0.00221,"14":0.00221,"15":0.00221,"16":0.00883,"17":0.00221,"18":0.01986,"79":0,"80":0,"81":0.00221,"83":0,"84":0.00441,"85":0,"86":0,"87":0,"88":0,"89":0.00662,"90":0.00662,"91":0,"92":0.02207,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00221,"101":0,"102":0,"103":0.00221,"104":0,"105":0.00221,"106":0.00221,"107":0.00221,"108":0.00441,"109":0.01766,"110":0.00883,"111":0.12359,"112":0.16111,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00662,"14":0,"15":0.00221,_:"0","3.1":0,"3.2":0,"5.1":0.00662,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00441,"14.1":0.00441,"15.1":0.01766,"15.2-15.3":0.00883,"15.4":0.03531,"15.5":0.01986,"15.6":0.07945,"16.0":0.00883,"16.1":0.04414,"16.2":0.05297,"16.3":0.18539,"16.4":0.17877,"16.5":0.00441},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00263,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07619,"10.0-10.2":0,"10.3":0.02627,"11.0-11.2":0.00525,"11.3-11.4":0.00525,"12.0-12.1":0.01314,"12.2-12.5":0.57797,"13.0-13.1":0.12085,"13.2":0.00788,"13.3":0.06831,"13.4-13.7":0.07619,"14.0-14.4":0.37042,"14.5-14.8":0.26797,"15.0-15.1":0.24169,"15.2-15.3":0.39932,"15.4":0.40195,"15.5":0.61212,"15.6":0.99568,"16.0":1.90203,"16.1":2.49051,"16.2":2.45898,"16.3":7.14838,"16.4":4.85491,"16.5":0.14712},P:{"4":0.36781,"20":1.15452,"5.0-5.4":0.11239,"6.2-6.4":0.09195,"7.2-7.4":0.35759,"8.2":0.02043,"9.2":0.18391,"10.1":0.01022,"11.1-11.2":0.1226,"12.0":0.02043,"13.0":0.07152,"14.0":0.08174,"15.0":0.04087,"16.0":0.22477,"17.0":0.10217,"18.0":0.15325,"19.0":0.39846},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00653,"4.4":0,"4.4.3-4.4.4":0.09892},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.07283,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09352},Q:{"13.1":0},O:{"0":1.16116},H:{"0":0.64926},L:{"0":65.71291}}; diff --git a/node_modules/caniuse-lite/data/regions/AG.js b/node_modules/caniuse-lite/data/regions/AG.js new file mode 100644 index 0000000..e5129f6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01773,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00443,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00443,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00443,"109":0.0266,"110":0.00887,"111":0.20835,"112":0.15072,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00443,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.0133,"77":0,"78":0,"79":0.00443,"80":0,"81":0.00443,"83":0.00443,"84":0,"85":0,"86":0,"87":0.00887,"88":0,"89":0,"90":0,"91":0.00443,"92":0,"93":0.0266,"94":0.00887,"95":0.00443,"96":0,"97":0,"98":0.00443,"99":0.00443,"100":0.00443,"101":0,"102":0.00887,"103":0.07536,"104":0,"105":0.00887,"106":0.0399,"107":0.00887,"108":0.03546,"109":0.44773,"110":0.12856,"111":5.72744,"112":4.35764,"113":0.00443,"114":0.00443,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00443,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.06206,"97":0.19505,"98":0.00443,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0.00443,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00443,"91":0,"92":0.0133,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00887,"102":0.01773,"103":0,"104":0,"105":0,"106":0,"107":0.00887,"108":0.00443,"109":0.03546,"110":0.04433,"111":1.26784,"112":1.46289,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0266,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00887,"13.1":0.0399,"14.1":0.05763,"15.1":0.0133,"15.2-15.3":0.00887,"15.4":0.03546,"15.5":0.35907,"15.6":0.31474,"16.0":0.0133,"16.1":0.04433,"16.2":0.15516,"16.3":0.57186,"16.4":0.22608,"16.5":0.00443},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00302,"6.0-6.1":0,"7.0-7.1":0.01812,"8.1-8.4":0.01208,"9.0-9.2":0,"9.3":0.08152,"10.0-10.2":0.00302,"10.3":0.02113,"11.0-11.2":0.00302,"11.3-11.4":0.00604,"12.0-12.1":0.05133,"12.2-12.5":0.24455,"13.0-13.1":0.00604,"13.2":0,"13.3":0.00302,"13.4-13.7":0.16907,"14.0-14.4":0.18719,"14.5-14.8":0.23852,"15.0-15.1":0.12379,"15.2-15.3":0.27173,"15.4":0.15096,"15.5":0.7246,"15.6":1.36467,"16.0":2.14966,"16.1":3.17618,"16.2":1.87491,"16.3":12.0224,"16.4":5.81495,"16.5":0.24455},P:{"4":0.18015,"20":3.35927,"5.0-5.4":0.0106,"6.2-6.4":0,"7.2-7.4":0.13776,"8.2":0,"9.2":0.0106,"10.1":0,"11.1-11.2":0.05299,"12.0":0,"13.0":0.03179,"14.0":0.03179,"15.0":0.03179,"16.0":0.06358,"17.0":0.0106,"18.0":0.04239,"19.0":0.21194},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.12705,"4.4":0,"4.4.3-4.4.4":1.48223},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.01773,"11":0.00887,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.22268},Q:{"13.1":0},O:{"0":0.07237},H:{"0":0.06852},L:{"0":46.41936}}; diff --git a/node_modules/caniuse-lite/data/regions/AI.js b/node_modules/caniuse-lite/data/regions/AI.js new file mode 100644 index 0000000..b5fc481 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00666,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.00666,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.01999,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00666,"107":0,"108":0,"109":0.05998,"110":0,"111":0.45315,"112":0.5731,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.0733,"77":0,"78":0,"79":0.00666,"80":0.03998,"81":0,"83":0.00666,"84":0,"85":0,"86":0,"87":0.01333,"88":0,"89":0.01333,"90":0.00666,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.0933,"99":0,"100":0,"101":0,"102":0,"103":0.02666,"104":0,"105":0.00666,"106":0.01999,"107":0.01999,"108":0.13994,"109":0.31321,"110":0.27989,"111":3.37865,"112":4.70478,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":6.43076,"97":14.63414,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0.01333,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00666,"90":0,"91":0,"92":0.00666,"93":0,"94":0,"95":0,"96":0.00666,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00666,"109":0.02666,"110":0.01999,"111":1.0729,"112":4.26496,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.04665,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00666,"12.1":0.00666,"13.1":0.3332,"14.1":0.37985,"15.1":0.00666,"15.2-15.3":0.0733,"15.4":0.01333,"15.5":0.14661,"15.6":0.45315,"16.0":0.03332,"16.1":0.13328,"16.2":0.24657,"16.3":1.0929,"16.4":1.14621,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0223,"10.0-10.2":0,"10.3":0.03902,"11.0-11.2":0.0223,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.30661,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.0669,"14.5-14.8":0.05575,"15.0-15.1":0.86128,"15.2-15.3":0.28431,"15.4":0.27873,"15.5":0.08641,"15.6":0.90309,"16.0":1.20413,"16.1":4.25625,"16.2":2.48072,"16.3":10.39115,"16.4":6.25197,"16.5":0.05017},P:{"4":0.57411,"20":1.30481,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.1357,"8.2":0,"9.2":0.01044,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.02088,"14.0":0.03132,"15.0":0,"16.0":0,"17.0":0.37578,"18.0":0.03132,"19.0":0.10438},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":1.03296},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00666,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.5004},Q:{"13.1":0},O:{"0":0},H:{"0":0.01263},L:{"0":25.1607}}; diff --git a/node_modules/caniuse-lite/data/regions/AL.js b/node_modules/caniuse-lite/data/regions/AL.js new file mode 100644 index 0000000..11244dd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00472,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00236,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00236,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00236,"103":0,"104":0.00236,"105":0,"106":0,"107":0,"108":0.00236,"109":0.00236,"110":0.01653,"111":0.17243,"112":0.32832,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00236,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02126,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00236,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00236,"75":0,"76":0.00236,"77":0,"78":0,"79":0.0189,"80":0.00472,"81":0.00236,"83":0.00472,"84":0,"85":0.00236,"86":0.00472,"87":0.00709,"88":0.00236,"89":0.00236,"90":0.00236,"91":0.00236,"92":0.00236,"93":0.00236,"94":0.07558,"95":0.00236,"96":0.00236,"97":0.00945,"98":0.00236,"99":0.00472,"100":0.00472,"101":0.00236,"102":0.00236,"103":0.01181,"104":0.00236,"105":0.00472,"106":0.00472,"107":0.00709,"108":0.01417,"109":0.55271,"110":0.0496,"111":1.14557,"112":1.08652,"113":0.00236,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00236,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00236,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00236,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00709,"96":0.02362,"97":0.12282,"98":0.00236,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00472,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00236,"109":0.00236,"110":0.00709,"111":0.10157,"112":0.14408,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00472,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00236,"13.1":0.01417,"14.1":0.00945,"15.1":0.00709,"15.2-15.3":0.00472,"15.4":0.00945,"15.5":0.02126,"15.6":0.08267,"16.0":0.00709,"16.1":0.03071,"16.2":0.05669,"16.3":0.15117,"16.4":0.13936,"16.5":0.00236},G:{"8":0.00973,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.11188,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02432,"10.0-10.2":0,"10.3":0.06324,"11.0-11.2":0.03892,"11.3-11.4":0.00973,"12.0-12.1":0.01459,"12.2-12.5":0.86588,"13.0-13.1":0.00973,"13.2":0.00973,"13.3":0.04864,"13.4-13.7":0.14593,"14.0-14.4":0.53023,"14.5-14.8":1.45934,"15.0-15.1":0.28214,"15.2-15.3":0.36484,"15.4":0.51563,"15.5":0.99235,"15.6":3.07921,"16.0":3.30297,"16.1":5.22444,"16.2":3.30297,"16.3":16.38839,"16.4":7.10212,"16.5":0.17999},P:{"4":0.1935,"20":2.83115,"5.0-5.4":0.01018,"6.2-6.4":0,"7.2-7.4":0.11202,"8.2":0,"9.2":0.01018,"10.1":0,"11.1-11.2":0.04074,"12.0":0.01018,"13.0":0.07129,"14.0":0.03055,"15.0":0.07129,"16.0":0.08147,"17.0":0.32589,"18.0":0.05092,"19.0":0.27497},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01313,"4.2-4.3":0.01021,"4.4":0,"4.4.3-4.4.4":0.03792},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00472,"9":0.00236,"10":0,"11":0.00709,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.14512},Q:{"13.1":0},O:{"0":0.11457},H:{"0":0.1157},L:{"0":45.57478}}; diff --git a/node_modules/caniuse-lite/data/regions/AM.js b/node_modules/caniuse-lite/data/regions/AM.js new file mode 100644 index 0000000..7100396 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00701,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":25.12026,"53":0,"54":0,"55":0,"56":0.00701,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00701,"79":0,"80":0,"81":0,"82":0.00701,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00701,"98":0,"99":0,"100":0,"101":0,"102":0.00701,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.01402,"109":0.00701,"110":0.01402,"111":0.28036,"112":0.23831,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00701,"49":0.06308,"50":0,"51":0.00701,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00701,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00701,"70":0,"71":0,"72":0,"73":0,"74":0.00701,"75":0,"76":0,"77":0,"78":0,"79":0.02103,"80":0.02103,"81":0.00701,"83":0,"84":0.01402,"85":0.00701,"86":0.00701,"87":0.01402,"88":0.00701,"89":0.00701,"90":0.00701,"91":0,"92":0,"93":0.00701,"94":0.37849,"95":0.00701,"96":0.00701,"97":0.02103,"98":0.09112,"99":0.03505,"100":0.01402,"101":0.02103,"102":0.02103,"103":0.37148,"104":0.00701,"105":0.05607,"106":0.05607,"107":0.59577,"108":0.07009,"109":4.37362,"110":0.14719,"111":5.19367,"112":5.97868,"113":0.00701,"114":0.00701,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00701,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01402,"69":0.00701,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00701,"80":0,"81":0.00701,"82":0,"83":0.00701,"84":0,"85":0.00701,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.06308,"96":0.08411,"97":0.28036,"98":0.00701,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00701,"86":0,"87":0,"88":0,"89":0.00701,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00701,"99":0.00701,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00701,"108":0.00701,"109":0.00701,"110":0.00701,"111":0.2313,"112":0.51867,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00701,"14":0.01402,"15":0.02103,_:"0","3.1":0,"3.2":0,"5.1":0.02103,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.03505,"14.1":0.27335,"15.1":0.00701,"15.2-15.3":0.00701,"15.4":0.01402,"15.5":0.02103,"15.6":0.07009,"16.0":0.00701,"16.1":0.07009,"16.2":0.05607,"16.3":0.22429,"16.4":0.18924,"16.5":0.01402},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00559,"6.0-6.1":0.00372,"7.0-7.1":0.00745,"8.1-8.4":0.00559,"9.0-9.2":0.01303,"9.3":0.12103,"10.0-10.2":0,"10.3":0.03165,"11.0-11.2":0.00745,"11.3-11.4":0.00745,"12.0-12.1":0.01676,"12.2-12.5":0.45061,"13.0-13.1":0.00372,"13.2":0.00559,"13.3":0.02607,"13.4-13.7":0.07448,"14.0-14.4":0.44875,"14.5-14.8":0.50461,"15.0-15.1":0.1322,"15.2-15.3":0.20482,"15.4":0.17317,"15.5":0.30723,"15.6":0.63867,"16.0":1.76333,"16.1":1.73354,"16.2":1.62927,"16.3":5.03304,"16.4":3.80039,"16.5":0.11172},P:{"4":0.04059,"20":1.0148,"5.0-5.4":0.01015,"6.2-6.4":0,"7.2-7.4":0.12178,"8.2":0.03044,"9.2":0,"10.1":0,"11.1-11.2":0.0203,"12.0":0,"13.0":0.01015,"14.0":0.01015,"15.0":0,"16.0":0.0203,"17.0":0.04059,"18.0":0.0203,"19.0":0.08118},I:{"0":0,"3":0,"4":0.01188,"2.1":0,"2.2":0,"2.3":0.00198,"4.1":0.00792,"4.2-4.3":0.01584,"4.4":0,"4.4.3-4.4.4":0.05939},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.0072,"8":0.02879,"9":0.0072,"10":0.0072,"11":0.21595,"5.5":0},S:{"2.5":0.00598,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0.01496,"11":0},R:{_:"0"},M:{"0":0.06879},Q:{"13.1":0},O:{"0":0.0658},H:{"0":0.12176},L:{"0":32.55559}}; diff --git a/node_modules/caniuse-lite/data/regions/AO.js b/node_modules/caniuse-lite/data/regions/AO.js new file mode 100644 index 0000000..4f4b7eb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00437,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00437,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00437,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00873,"100":0,"101":0,"102":0.00873,"103":0,"104":0,"105":0,"106":0,"107":0.00873,"108":0.00873,"109":0.00437,"110":0.00437,"111":0.18333,"112":0.13095,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0131,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00437,"36":0,"37":0,"38":0,"39":0,"40":0.0131,"41":0,"42":0.00873,"43":0.01746,"44":0,"45":0,"46":0.01746,"47":0,"48":0,"49":0.00437,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00437,"56":0.00437,"57":0,"58":0.00437,"59":0,"60":0,"61":0,"62":0,"63":0.00873,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00437,"70":0.0131,"71":0,"72":0,"73":0.00437,"74":0.01746,"75":0.02183,"76":0,"77":0,"78":0,"79":0.0131,"80":0.00437,"81":0.02619,"83":0.00873,"84":0.00437,"85":0,"86":0.00873,"87":0.02183,"88":0.00437,"89":0.00437,"90":0.00437,"91":0.00437,"92":0.00437,"93":0.00437,"94":0.00873,"95":0.0131,"96":0.00437,"97":0.03492,"98":0.00437,"99":0.00873,"100":0.01746,"101":0.0131,"102":0.02619,"103":0.03492,"104":0.0131,"105":0.02183,"106":0.0131,"107":0.03929,"108":0.06548,"109":1.40117,"110":0.06984,"111":1.70235,"112":2.31345,"113":0.0131,"114":0.00437,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00437,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00437,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00437,"60":0.01746,"62":0,"63":0.0131,"64":0.00873,"65":0,"66":0.00437,"67":0.0131,"68":0.02183,"69":0.03056,"70":0,"71":0,"72":0,"73":0,"74":0.00437,"75":0,"76":0,"77":0,"78":0,"79":0.00873,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00873,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.12659,"96":0.03492,"97":0.2619,"98":0.03492,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00437,"13":0.00437,"14":0.00437,"15":0.0131,"16":0,"17":0,"18":0.02619,"79":0,"80":0,"81":0,"83":0,"84":0.00437,"85":0,"86":0,"87":0,"88":0,"89":0.0131,"90":0.00437,"91":0,"92":0.0131,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00873,"102":0,"103":0,"104":0,"105":0.00437,"106":0.00873,"107":0.01746,"108":0.02183,"109":0.05675,"110":0.03492,"111":0.37103,"112":0.91665,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00437,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00873,"14.1":0.00873,"15.1":0,"15.2-15.3":0,"15.4":0.00437,"15.5":0.00437,"15.6":0.02619,"16.0":0,"16.1":0,"16.2":0.00437,"16.3":0.01746,"16.4":0.01746,"16.5":0.00437},G:{"8":0.00163,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00326,"7.0-7.1":0.15143,"8.1-8.4":0.0114,"9.0-9.2":0,"9.3":0.26378,"10.0-10.2":0.00488,"10.3":0.5243,"11.0-11.2":0.02768,"11.3-11.4":0.01465,"12.0-12.1":0.06839,"12.2-12.5":3.57728,"13.0-13.1":0.02768,"13.2":0.00651,"13.3":0.06676,"13.4-13.7":0.39241,"14.0-14.4":0.44614,"14.5-14.8":0.51941,"15.0-15.1":0.39404,"15.2-15.3":0.31914,"15.4":0.33379,"15.5":0.62688,"15.6":0.85483,"16.0":0.69364,"16.1":0.95253,"16.2":0.56175,"16.3":1.89203,"16.4":1.04046,"16.5":0.0114},P:{"4":0.36815,"20":0.49087,"5.0-5.4":0.04091,"6.2-6.4":0.02045,"7.2-7.4":0.1943,"8.2":0.01023,"9.2":0.02045,"10.1":0.02045,"11.1-11.2":0.01023,"12.0":0,"13.0":0.08181,"14.0":0.06136,"15.0":0.03068,"16.0":0.09204,"17.0":0.20453,"18.0":0.13294,"19.0":0.1534},I:{"0":0,"3":0,"4":0.0008,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01074,"4.2-4.3":0.04189,"4.4":0,"4.4.3-4.4.4":0.1453},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00873,"5.5":0},S:{"2.5":0.29302,_:"3.0-3.1"},J:{"7":0,"10":0.00564},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12397},Q:{"13.1":0.00564},O:{"0":0.45644},H:{"0":1.15233},L:{"0":71.31223}}; diff --git a/node_modules/caniuse-lite/data/regions/AR.js b/node_modules/caniuse-lite/data/regions/AR.js new file mode 100644 index 0000000..9d7935d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02164,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00865,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00433,"67":0,"68":0.00433,"69":0,"70":0,"71":0,"72":0,"73":0.00433,"74":0,"75":0,"76":0.00433,"77":0,"78":0.00433,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00865,"87":0,"88":0.01298,"89":0,"90":0,"91":0.04327,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00865,"100":0.00433,"101":0,"102":0.00865,"103":0.00433,"104":0.01731,"105":0.00433,"106":0.00433,"107":0.00433,"108":0.00433,"109":0.01298,"110":0.03029,"111":0.32453,"112":0.34183,"113":0.00433,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00433,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00433,"48":0,"49":0.06058,"50":0,"51":0.00433,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00433,"59":0,"60":0,"61":0,"62":0,"63":0.00433,"64":0,"65":0,"66":0.02596,"67":0,"68":0,"69":0,"70":0.00433,"71":0,"72":0,"73":0,"74":0.00433,"75":0.00433,"76":0.00433,"77":0.00433,"78":0.00433,"79":0.02164,"80":0.00433,"81":0.00865,"83":0.01298,"84":0.00433,"85":0.02164,"86":0.00865,"87":0.01298,"88":0.00433,"89":0.00865,"90":0.00433,"91":0.01298,"92":0.00865,"93":0.00865,"94":0.02164,"95":0.00865,"96":0.02164,"97":0.01298,"98":0.01298,"99":0.02164,"100":0.01298,"101":0.01298,"102":0.01298,"103":0.0476,"104":0.03029,"105":0.03462,"106":0.02596,"107":0.03462,"108":0.06058,"109":2.1159,"110":0.09952,"111":4.28373,"112":5.3525,"113":0.00433,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00433,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00433,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00433,"69":0.00865,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00433,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03462,"96":0.21635,"97":0.49328,"98":0.01298,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00433,"16":0,"17":0.00433,"18":0.00433,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00433,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00433,"108":0.00433,"109":0.02596,"110":0.01731,"111":0.28558,"112":0.62309,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00865,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00433,"12.1":0.00433,"13.1":0.01298,"14.1":0.02164,"15.1":0,"15.2-15.3":0,"15.4":0.00433,"15.5":0.00865,"15.6":0.0476,"16.0":0.00433,"16.1":0.01298,"16.2":0.01731,"16.3":0.09519,"16.4":0.04327,"16.5":0},G:{"8":0,"3.2":0.0008,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0152,"6.0-6.1":0.0016,"7.0-7.1":0.0016,"8.1-8.4":0.004,"9.0-9.2":0,"9.3":0.03199,"10.0-10.2":0,"10.3":0.0152,"11.0-11.2":0.0032,"11.3-11.4":0.08558,"12.0-12.1":0.0024,"12.2-12.5":0.14237,"13.0-13.1":0.004,"13.2":0.0024,"13.3":0.0072,"13.4-13.7":0.0224,"14.0-14.4":0.05999,"14.5-14.8":0.13997,"15.0-15.1":0.02719,"15.2-15.3":0.03519,"15.4":0.05519,"15.5":0.09518,"15.6":0.30954,"16.0":0.35513,"16.1":0.88463,"16.2":0.44072,"16.3":3.1538,"16.4":1.25576,"16.5":0.03119},P:{"4":0.14159,"20":2.10363,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.21239,"8.2":0.01011,"9.2":0.01011,"10.1":0,"11.1-11.2":0.02023,"12.0":0.01011,"13.0":0.04045,"14.0":0.03034,"15.0":0.02023,"16.0":0.05057,"17.0":0.14159,"18.0":0.04045,"19.0":0.10114},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0046,"4.2-4.3":0.00921,"4.4":0,"4.4.3-4.4.4":0.06215},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0476,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.11913},Q:{"13.1":0},O:{"0":0.02837},H:{"0":0.17187},L:{"0":72.11092}}; diff --git a/node_modules/caniuse-lite/data/regions/AS.js b/node_modules/caniuse-lite/data/regions/AS.js new file mode 100644 index 0000000..7e2e135 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.2346,"112":0.05213,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.22591,"75":0,"76":1.21646,"77":0,"78":0,"79":0.5561,"80":0.26067,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.00869,"88":0,"89":0,"90":0,"91":0.01738,"92":0.01738,"93":5.09175,"94":0,"95":0.00869,"96":0.08689,"97":0,"98":0,"99":0,"100":0.08689,"101":0.03476,"102":0,"103":5.81294,"104":0,"105":0.06951,"106":0,"107":0.17378,"108":0.01738,"109":0.80808,"110":1.59009,"111":10.93076,"112":10.36598,"113":0.04345,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00869,"97":0.00869,"98":0.01738,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0.00869,"85":0,"86":0,"87":0,"88":0,"89":0.01738,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.03476,"107":0,"108":0.00869,"109":0.11296,"110":0.00869,"111":0.73857,"112":1.22515,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.16509,"14":0.03476,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.25198,"14.1":0.60823,"15.1":1.45975,"15.2-15.3":0.99055,"15.4":1.15564,"15.5":0.50396,"15.6":6.7166,"16.0":0.12165,"16.1":0.93841,"16.2":2.38079,"16.3":5.63047,"16.4":3.38002,"16.5":0.01738},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01217,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.0633,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.0073,"14.0-14.4":0.02435,"14.5-14.8":0.01704,"15.0-15.1":0.03165,"15.2-15.3":0.13877,"15.4":0.2532,"15.5":0.40415,"15.6":1.70667,"16.0":1.46077,"16.1":3.90269,"16.2":1.93065,"16.3":9.38302,"16.4":3.44742,"16.5":0.07304},P:{"4":0,"20":0.07866,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01311,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01223,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01515},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0.00131,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.00131},Q:{"13.1":0},O:{"0":0.01311},H:{"0":0.06206},L:{"0":1.88517}}; diff --git a/node_modules/caniuse-lite/data/regions/AT.js b/node_modules/caniuse-lite/data/regions/AT.js new file mode 100644 index 0000000..52ddd14 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00534,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.00534,"46":0,"47":0.00534,"48":0.00534,"49":0,"50":0,"51":0,"52":0.02137,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.04808,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01603,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.03205,"79":0,"80":0,"81":0,"82":0,"83":0.00534,"84":0,"85":0.00534,"86":0,"87":0,"88":0.00534,"89":0,"90":0,"91":0.0641,"92":0,"93":0.00534,"94":0.00534,"95":0.00534,"96":0,"97":0,"98":0.00534,"99":0.01068,"100":0,"101":0,"102":0.43804,"103":0.00534,"104":0.00534,"105":0.01068,"106":0.01068,"107":0.01068,"108":0.02137,"109":0.04808,"110":0.0641,"111":2.00325,"112":1.73081,"113":0.01068,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00534,"35":0,"36":0,"37":0,"38":0.00534,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01603,"50":0,"51":0,"52":0,"53":0.00534,"54":0,"55":0.01068,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00534,"66":0,"67":0,"68":0.00534,"69":0,"70":0.00534,"71":0.00534,"72":0.00534,"73":0.00534,"74":0.00534,"75":0.00534,"76":0.00534,"77":0.00534,"78":0.00534,"79":0.08547,"80":0.01068,"81":0.01068,"83":0.00534,"84":0.00534,"85":0.01068,"86":0.05342,"87":0.02137,"88":0.01068,"89":0.03739,"90":0.01068,"91":0.00534,"92":0.00534,"93":0.00534,"94":0.03205,"95":0.00534,"96":0.01068,"97":0.00534,"98":0.00534,"99":0.01603,"100":0.0641,"101":0.09616,"102":0.09081,"103":0.09081,"104":0.05876,"105":0.01603,"106":0.03205,"107":0.3312,"108":0.08013,"109":0.58228,"110":0.17094,"111":4.58344,"112":5.59842,"113":0.00534,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00534,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00534,"69":0.00534,"70":0,"71":0,"72":0,"73":0,"74":0.00534,"75":0.00534,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.01068,"86":0,"87":0,"88":0,"89":0.00534,"90":0,"91":0,"92":0,"93":0,"94":0.01068,"95":0.03739,"96":0.40065,"97":1.04703,"98":0.03205,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00534,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00534,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00534,"102":0,"103":0.00534,"104":0.00534,"105":0.00534,"106":0.00534,"107":0.01603,"108":0.03205,"109":0.1015,"110":0.06945,"111":1.3355,"112":3.21588,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01603,"14":0.06945,"15":0.01603,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.01603,"10.1":0,"11.1":0.01603,"12.1":0.01603,"13.1":0.11218,"14.1":0.1656,"15.1":0.02671,"15.2-15.3":0.03739,"15.4":0.05876,"15.5":0.07479,"15.6":0.38462,"16.0":0.06945,"16.1":0.13889,"16.2":0.19765,"16.3":1.07908,"16.4":0.56625,"16.5":0.01068},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00317,"6.0-6.1":0.00633,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00317,"9.3":0.06647,"10.0-10.2":0,"10.3":0.1361,"11.0-11.2":0.01899,"11.3-11.4":0.0095,"12.0-12.1":0.03482,"12.2-12.5":0.34184,"13.0-13.1":0.01266,"13.2":0.02216,"13.3":0.02532,"13.4-13.7":0.0633,"14.0-14.4":0.23739,"14.5-14.8":0.52226,"15.0-15.1":0.17725,"15.2-15.3":0.19941,"15.4":0.24689,"15.5":0.50643,"15.6":1.56044,"16.0":2.30743,"16.1":4.16856,"16.2":2.4372,"16.3":11.5308,"16.4":5.77015,"16.5":0.13294},P:{"4":0.16497,"20":4.03137,"5.0-5.4":0.02062,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01031,"12.0":0,"13.0":0.03093,"14.0":0.02062,"15.0":0.01031,"16.0":0.03093,"17.0":0.04124,"18.0":0.05155,"19.0":0.17528},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03942,"4.2-4.3":0.0219,"4.4":0,"4.4.3-4.4.4":0.14017},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00534,"9":0,"10":0,"11":0.05342,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.84776},Q:{"13.1":0},O:{"0":0.03726},H:{"0":0.32192},L:{"0":33.93183}}; diff --git a/node_modules/caniuse-lite/data/regions/AU.js b/node_modules/caniuse-lite/data/regions/AU.js new file mode 100644 index 0000000..5ec543c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00551,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00551,"49":0,"50":0,"51":0,"52":0.01652,"53":0,"54":0.00551,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.01101,"67":0,"68":0.00551,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02754,"79":0.01101,"80":0.00551,"81":0.01101,"82":0.00551,"83":0.01101,"84":0,"85":0,"86":0,"87":0.01101,"88":0.00551,"89":0,"90":0,"91":0.00551,"92":0,"93":0.00551,"94":0.03855,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02754,"103":0.00551,"104":0.00551,"105":0.00551,"106":0.01101,"107":0.01101,"108":0.01101,"109":0.02203,"110":0.03855,"111":0.77649,"112":0.64983,"113":0.01101,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.01652,"26":0.00551,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.02203,"35":0,"36":0,"37":0,"38":0.05507,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00551,"48":0,"49":0.02203,"50":0,"51":0,"52":0.00551,"53":0.00551,"54":0,"55":0,"56":0.00551,"57":0,"58":0.00551,"59":0.00551,"60":0.01652,"61":0,"62":0,"63":0,"64":0,"65":0.00551,"66":0.01652,"67":0.02203,"68":0.00551,"69":0.16521,"70":0.00551,"71":0.00551,"72":0.00551,"73":0.00551,"74":0.01101,"75":0.00551,"76":0.00551,"77":0.00551,"78":0.01101,"79":0.06608,"80":0.01652,"81":0.04406,"83":0.04406,"84":0.06058,"85":0.08261,"86":0.09362,"87":0.09913,"88":0.01101,"89":0.00551,"90":0.00551,"91":0.01101,"92":0.01101,"93":0.01101,"94":0.01652,"95":0.01101,"96":0.02754,"97":0.03304,"98":0.02203,"99":0.02754,"100":0.02754,"101":0.03304,"102":0.02754,"103":0.1542,"104":0.04406,"105":0.04956,"106":0.07159,"107":0.09362,"108":0.18724,"109":0.71591,"110":0.38549,"111":6.4542,"112":6.97737,"113":0.01101,"114":0.00551,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00551,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.02203,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00551,"69":0.00551,"70":0,"71":0.00551,"72":0.00551,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00551,"95":0.01652,"96":0.13768,"97":0.30839,"98":0.00551,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00551,"16":0,"17":0,"18":0.01101,"79":0,"80":0,"81":0,"83":0.00551,"84":0.00551,"85":0.01101,"86":0.00551,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00551,"93":0,"94":0,"95":0.00551,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00551,"104":0.00551,"105":0.00551,"106":0.00551,"107":0.01652,"108":0.03855,"109":0.06058,"110":0.0771,"111":1.09039,"112":2.31294,"113":0.00551},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00551,"13":0.02754,"14":0.11014,"15":0.03304,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00551,"12.1":0.03855,"13.1":0.1542,"14.1":0.3139,"15.1":0.04406,"15.2-15.3":0.04406,"15.4":0.09362,"15.5":0.1597,"15.6":0.83706,"16.0":0.08261,"16.1":0.23129,"16.2":0.35245,"16.3":1.83934,"16.4":0.63331,"16.5":0.01101},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02561,"6.0-6.1":0.01708,"7.0-7.1":0.01708,"8.1-8.4":0.02134,"9.0-9.2":0.02561,"9.3":0.23905,"10.0-10.2":0.00427,"10.3":0.30736,"11.0-11.2":0.05976,"11.3-11.4":0.10672,"12.0-12.1":0.06403,"12.2-12.5":1.22089,"13.0-13.1":0.03415,"13.2":0.01708,"13.3":0.07684,"13.4-13.7":0.23479,"14.0-14.4":0.52507,"14.5-14.8":0.93487,"15.0-15.1":0.2604,"15.2-15.3":0.30309,"15.4":0.397,"15.5":0.64032,"15.6":2.18991,"16.0":2.29236,"16.1":5.75012,"16.2":3.26139,"16.3":16.08923,"16.4":5.45984,"16.5":0.10245},P:{"4":0.22269,"20":2.64041,"5.0-5.4":0.05302,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0106,"12.0":0.0106,"13.0":0.03181,"14.0":0.03181,"15.0":0.0106,"16.0":0.04242,"17.0":0.04242,"18.0":0.05302,"19.0":0.14846},I:{"0":0,"3":0,"4":0.0122,"2.1":0,"2.2":0.0061,"2.3":0.00813,"4.1":0.01423,"4.2-4.3":0.03252,"4.4":0,"4.4.3-4.4.4":0.08334},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.03671,"9":0.02754,"10":0.00918,"11":0.11932,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00449},N:{"10":0.01348,"11":0},R:{_:"0"},M:{"0":0.49872},Q:{"13.1":0.00449},O:{"0":0.0674},H:{"0":0.14463},L:{"0":25.00745}}; diff --git a/node_modules/caniuse-lite/data/regions/AW.js b/node_modules/caniuse-lite/data/regions/AW.js new file mode 100644 index 0000000..5329950 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00324,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00324,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00324,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00324,"111":0.13949,"112":0.12327,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00649,"50":0,"51":0,"52":0,"53":0.00324,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.02271,"80":0,"81":0.01298,"83":0,"84":0.00649,"85":0,"86":0,"87":0.00324,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00324,"94":0,"95":0,"96":0,"97":0,"98":0.00324,"99":0,"100":0,"101":0,"102":0,"103":0.03568,"104":0.00324,"105":0.00324,"106":0.00649,"107":0.00649,"108":0.01622,"109":0.41848,"110":0.10056,"111":2.05994,"112":2.2708,"113":0.0292,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00324,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00649,"96":0.08434,"97":0.12976,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00324,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00324,"103":0,"104":0,"105":0,"106":0,"107":0.00324,"108":0.00324,"109":0.01946,"110":0.02271,"111":0.5385,"112":1.32355,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00973,"15":0.00649,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00649,"13.1":0.02271,"14.1":0.09408,"15.1":0.00973,"15.2-15.3":0.02271,"15.4":0.08759,"15.5":0.0811,"15.6":0.23681,"16.0":0.0292,"16.1":0.03893,"16.2":0.09408,"16.3":0.44443,"16.4":0.24654,"16.5":0.00324},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02162,"10.0-10.2":0.01729,"10.3":0.03891,"11.0-11.2":0.00432,"11.3-11.4":0.03459,"12.0-12.1":0.01297,"12.2-12.5":0.40209,"13.0-13.1":0,"13.2":0,"13.3":0.01297,"13.4-13.7":0.04324,"14.0-14.4":0.13403,"14.5-14.8":0.77824,"15.0-15.1":0.13403,"15.2-15.3":0.13403,"15.4":0.20321,"15.5":0.62259,"15.6":1.84616,"16.0":3.98199,"16.1":5.2142,"16.2":3.33346,"16.3":16.55056,"16.4":7.69592,"16.5":0.12538},P:{"4":0.15453,"20":7.25265,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.20604,"8.2":0,"9.2":0.0103,"10.1":0,"11.1-11.2":0.08242,"12.0":0,"13.0":0.06181,"14.0":0.0206,"15.0":0.0206,"16.0":0.05151,"17.0":0.04121,"18.0":0.11332,"19.0":0.26785},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01078,"4.4":0,"4.4.3-4.4.4":0.16169},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00649,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.18917},Q:{"13.1":0},O:{"0":0.03378},H:{"0":0.23666},L:{"0":37.75154}}; diff --git a/node_modules/caniuse-lite/data/regions/AX.js b/node_modules/caniuse-lite/data/regions/AX.js new file mode 100644 index 0000000..e49f6d8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AX.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00624,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00624,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.04367,"109":0.2246,"110":0.1435,"111":1.29771,"112":1.24156,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01248,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.20589,"77":0,"78":0,"79":0.13102,"80":0,"81":0,"83":0,"84":0,"85":0.00624,"86":0.00624,"87":0,"88":0,"89":0,"90":0.03743,"91":0.00624,"92":0.00624,"93":0,"94":0,"95":0.00624,"96":0.00624,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.01872,"104":0,"105":0,"106":0.00624,"107":0.01872,"108":0.03743,"109":2.39578,"110":0.3681,"111":8.37898,"112":9.73284,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03743,"96":0.2246,"97":0.63638,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01248,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.01248,"108":0.00624,"109":0.0312,"110":0.00624,"111":1.60966,"112":4.5108,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.44297,"15":0.01872,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00624,"12.1":0.01248,"13.1":0.26204,"14.1":0.36186,"15.1":0.01872,"15.2-15.3":0.03743,"15.4":0.03743,"15.5":0.04991,"15.6":0.23708,"16.0":0.2246,"16.1":0.07487,"16.2":0.34315,"16.3":0.8485,"16.4":0.41801,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05809,"10.0-10.2":0,"10.3":0.49474,"11.0-11.2":0.00401,"11.3-11.4":0.13019,"12.0-12.1":0.01001,"12.2-12.5":2.14321,"13.0-13.1":0.01001,"13.2":0,"13.3":0.00401,"13.4-13.7":0.05408,"14.0-14.4":0.16625,"14.5-14.8":0.71707,"15.0-15.1":0.08813,"15.2-15.3":0.20431,"15.4":0.30646,"15.5":0.21833,"15.6":0.70706,"16.0":0.4647,"16.1":1.38407,"16.2":1.02954,"16.3":6.76813,"16.4":3.16474,"16.5":0.03405},P:{"4":0.0107,"20":4.10808,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.0107,"13.0":0,"14.0":0,"15.0":0.0214,"16.0":0.25676,"17.0":0.0214,"18.0":0.40653,"19.0":0.11768},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04376},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00624,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":2.5462},Q:{"13.1":0},O:{"0":0.07522},H:{"0":0.10682},L:{"0":34.9864}}; diff --git a/node_modules/caniuse-lite/data/regions/AZ.js b/node_modules/caniuse-lite/data/regions/AZ.js new file mode 100644 index 0000000..c347f14 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/AZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.02489,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.11379,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00356,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00356,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00356,"109":0.01422,"110":0.06045,"111":0.09957,"112":0.08534,"113":0.00356,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00711,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00356,"44":0.00356,"45":0.00356,"46":0.00356,"47":0,"48":0,"49":0.01422,"50":0,"51":0,"52":0,"53":0.00711,"54":0,"55":0,"56":0.00356,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00356,"66":0,"67":0,"68":0,"69":0.00356,"70":0.00356,"71":0.00356,"72":0.00356,"73":0,"74":0.00711,"75":0,"76":0.00356,"77":0.00356,"78":0.00356,"79":0.1209,"80":0.01067,"81":0.01778,"83":0.00711,"84":0.00356,"85":0.00356,"86":0.00356,"87":0.03556,"88":0.00711,"89":0.00356,"90":0.00356,"91":0.00711,"92":0.00356,"93":0,"94":0.22758,"95":0,"96":0.01422,"97":0.00711,"98":0.00711,"99":0.02134,"100":0.01422,"101":0.01067,"102":0.01067,"103":0.01422,"104":0.00711,"105":0.01067,"106":0.03556,"107":0.01778,"108":0.02845,"109":1.48285,"110":0.07823,"111":2.35763,"112":2.75234,"113":0.00356,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00356,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00356,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00356,"68":0.01422,"69":0.04267,"70":0,"71":0,"72":0,"73":0,"74":0.00356,"75":0.00356,"76":0,"77":0,"78":0,"79":0.00711,"80":0,"81":0,"82":0.00711,"83":0,"84":0.00356,"85":0.01778,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.16002,"96":0.0889,"97":0.40183,"98":0.01422,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00356,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00356,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00356,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00356,"109":0.01778,"110":0.01778,"111":0.11379,"112":0.24181,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00711,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.11735,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00356,"12.1":0,"13.1":0.02134,"14.1":0.01778,"15.1":0.00356,"15.2-15.3":0.00356,"15.4":0.01422,"15.5":0.01067,"15.6":0.04978,"16.0":0.00711,"16.1":0.02845,"16.2":0.02845,"16.3":0.0889,"16.4":0.07468,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00316,"6.0-6.1":0,"7.0-7.1":0.0253,"8.1-8.4":0.01423,"9.0-9.2":0.00158,"9.3":0.01739,"10.0-10.2":0,"10.3":0.04744,"11.0-11.2":0.00474,"11.3-11.4":0,"12.0-12.1":0.00633,"12.2-12.5":0.4396,"13.0-13.1":0.00949,"13.2":0,"13.3":0.01107,"13.4-13.7":0.06325,"14.0-14.4":0.16604,"14.5-14.8":0.36686,"15.0-15.1":0.10753,"15.2-15.3":0.10278,"15.4":0.15022,"15.5":0.40007,"15.6":0.70684,"16.0":1.09584,"16.1":1.81058,"16.2":0.91873,"16.3":4.80556,"16.4":3.39504,"16.5":0.10753},P:{"4":0.3162,"20":4.06974,"5.0-5.4":0,"6.2-6.4":0.0102,"7.2-7.4":0.0918,"8.2":0,"9.2":0,"10.1":0.0102,"11.1-11.2":0.0306,"12.0":0.0102,"13.0":0.0612,"14.0":0.0306,"15.0":0.051,"16.0":0.0816,"17.0":0.1428,"18.0":0.0816,"19.0":0.2346},I:{"0":0,"3":0,"4":0.00713,"2.1":0,"2.2":0.00475,"2.3":0.00475,"4.1":0.0095,"4.2-4.3":0.02376,"4.4":0,"4.4.3-4.4.4":0.08078},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.00356,"8":0.032,"9":0.00711,"10":0.00356,"11":0.03912,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00644},N:{"10":0,"11":0.01289},R:{_:"0"},M:{"0":0.2642},Q:{"13.1":0},O:{"0":0.23843},H:{"0":0.63448},L:{"0":66.11197}}; diff --git a/node_modules/caniuse-lite/data/regions/BA.js b/node_modules/caniuse-lite/data/regions/BA.js new file mode 100644 index 0000000..f2f6c96 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.29415,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.04557,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00414,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00414,"79":0,"80":0,"81":0,"82":0,"83":0.00829,"84":0,"85":0,"86":0,"87":0,"88":0.00414,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00414,"98":0,"99":0.00829,"100":0,"101":0,"102":0.00829,"103":0.00414,"104":0.00414,"105":0,"106":0.00414,"107":0,"108":0.00414,"109":0.01243,"110":0.06215,"111":0.61731,"112":0.49302,"113":0.00414,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00414,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00414,"35":0,"36":0,"37":0,"38":0.00414,"39":0,"40":0.00414,"41":0,"42":0,"43":0.00414,"44":0.00414,"45":0.00414,"46":0,"47":0.00414,"48":0,"49":0.03314,"50":0,"51":0,"52":0,"53":0.01243,"54":0,"55":0.00414,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00414,"64":0,"65":0.00414,"66":0,"67":0,"68":0.01243,"69":0,"70":0.00414,"71":0.00414,"72":0,"73":0,"74":0.00414,"75":0,"76":0.00414,"77":0.00414,"78":0,"79":0.09529,"80":0,"81":0.00829,"83":0.00829,"84":0.00414,"85":0.00829,"86":0.01243,"87":0.02486,"88":0.00829,"89":0.01243,"90":0.00829,"91":0.02486,"92":0.00829,"93":0.00829,"94":0.01243,"95":0.00829,"96":0.00829,"97":0.01243,"98":0.00414,"99":0.02072,"100":0.00829,"101":0.00414,"102":0.03729,"103":0.02486,"104":0.00829,"105":0.02486,"106":0.02486,"107":0.029,"108":0.04972,"109":1.86849,"110":0.09529,"111":3.84885,"112":4.085,"113":0.00414,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.029,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00414,"37":0,"38":0,"39":0,"40":0.00829,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.02486,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00414,"68":0.00414,"69":0.00414,"70":0,"71":0,"72":0.00414,"73":0,"74":0.00414,"75":0,"76":0,"77":0,"78":0,"79":0.00414,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00414,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.058,"96":0.13672,"97":0.41016,"98":0.01243,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00414,"13":0,"14":0.00414,"15":0,"16":0,"17":0,"18":0.00414,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00829,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00829,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00414,"107":0.00414,"108":0.01657,"109":0.02072,"110":0.01657,"111":0.24858,"112":0.48473,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00414,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00414,"13.1":0.01243,"14.1":0.02072,"15.1":0.00414,"15.2-15.3":0.00414,"15.4":0.00414,"15.5":0.00829,"15.6":0.05386,"16.0":0.00829,"16.1":0.01243,"16.2":0.029,"16.3":0.12015,"16.4":0.07043,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0034,"6.0-6.1":0,"7.0-7.1":0.01475,"8.1-8.4":0.01134,"9.0-9.2":0.00113,"9.3":0.09188,"10.0-10.2":0,"10.3":0.11569,"11.0-11.2":0.00227,"11.3-11.4":0.00454,"12.0-12.1":0.00227,"12.2-12.5":0.27336,"13.0-13.1":0.00454,"13.2":0,"13.3":0.00907,"13.4-13.7":0.03063,"14.0-14.4":0.07146,"14.5-14.8":0.26088,"15.0-15.1":0.03063,"15.2-15.3":0.06352,"15.4":0.07713,"15.5":0.14178,"15.6":0.49567,"16.0":0.68623,"16.1":1.18303,"16.2":0.93463,"16.3":3.9994,"16.4":1.95433,"16.5":0.06125},P:{"4":0.45732,"20":3.89226,"5.0-5.4":0.02033,"6.2-6.4":0,"7.2-7.4":0.07114,"8.2":0,"9.2":0.01016,"10.1":0,"11.1-11.2":0.04065,"12.0":0.01016,"13.0":0.05081,"14.0":0.03049,"15.0":0.02033,"16.0":0.07114,"17.0":0.04065,"18.0":0.07114,"19.0":0.1626},I:{"0":0,"3":0,"4":0.0122,"2.1":0,"2.2":0.0122,"2.3":0.00813,"4.1":0.04066,"4.2-4.3":0.03659,"4.4":0,"4.4.3-4.4.4":0.16264},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.00414,"8":0.03314,"9":0.00829,"10":0.00414,"11":0.03729,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00586},N:{"10":0.01757,"11":0},R:{_:"0"},M:{"0":0.205},Q:{"13.1":0},O:{"0":0.02929},H:{"0":0.30498},L:{"0":67.06576}}; diff --git a/node_modules/caniuse-lite/data/regions/BB.js b/node_modules/caniuse-lite/data/regions/BB.js new file mode 100644 index 0000000..9dd10c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BB.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.0052,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.02601,"106":0.0104,"107":0,"108":0,"109":0,"110":0.0052,"111":0.56691,"112":0.5357,"113":0.0104,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.0052,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0052,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.0156,"77":0.0052,"78":0,"79":0.17683,"80":0.03121,"81":0.0104,"83":0.03121,"84":0.0052,"85":0.0052,"86":0,"87":0.0104,"88":0,"89":0.0104,"90":0,"91":0.02601,"92":0,"93":0.0208,"94":0,"95":0.0052,"96":0.0052,"97":0.0052,"98":0.0052,"99":0.0052,"100":0.0156,"101":0,"102":0.0052,"103":0.15083,"104":0.0052,"105":0.0104,"106":0.0208,"107":0.0104,"108":0.04161,"109":0.5201,"110":0.23925,"111":6.17879,"112":6.61567,"113":0.0156,"114":0.0052,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.0052,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0052,"68":0.03641,"69":0.02601,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.13523,"97":0.65533,"98":0.03641,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0.08842,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.0052,"99":0,"100":0.0052,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.0052,"107":0,"108":0.0052,"109":0.03641,"110":0.03641,"111":1.41987,"112":3.29223,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0052,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.0052,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.06241,"14.1":0.07281,"15.1":0.0052,"15.2-15.3":0.0052,"15.4":0.0156,"15.5":0.02601,"15.6":0.24965,"16.0":0.05201,"16.1":0.14043,"16.2":0.18204,"16.3":0.80095,"16.4":0.39528,"16.5":0.0052},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0048,"6.0-6.1":0,"7.0-7.1":0.0072,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.29765,"10.0-10.2":0,"10.3":0.09361,"11.0-11.2":0.012,"11.3-11.4":0.012,"12.0-12.1":0.0048,"12.2-12.5":0.31685,"13.0-13.1":0,"13.2":0,"13.3":0.0024,"13.4-13.7":0.03361,"14.0-14.4":0.04081,"14.5-14.8":0.21363,"15.0-15.1":0.0264,"15.2-15.3":0.10322,"15.4":0.06001,"15.5":0.13682,"15.6":0.82813,"16.0":1.45942,"16.1":2.70761,"16.2":1.49783,"16.3":9.98312,"16.4":4.78393,"16.5":0.09841},P:{"4":0.09789,"20":4.17677,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.17403,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02175,"12.0":0,"13.0":0.02175,"14.0":0.02175,"15.0":0.01088,"16.0":0.01088,"17.0":0.06526,"18.0":0.04351,"19.0":0.13052},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.09385,"4.2-4.3":0.09385,"4.4":0,"4.4.3-4.4.4":1.45462},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.0052,"11":0.0104,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.39352},Q:{"13.1":0},O:{"0":0.10558},H:{"0":0.26352},L:{"0":43.96728}}; diff --git a/node_modules/caniuse-lite/data/regions/BD.js b/node_modules/caniuse-lite/data/regions/BD.js new file mode 100644 index 0000000..f145a98 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.0061,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.0061,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.00305,"81":0.00305,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.0061,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01219,"103":0,"104":0,"105":0.00305,"106":0.00305,"107":0.00305,"108":0.0061,"109":0.0061,"110":0.02743,"111":0.35966,"112":0.34138,"113":0.02134,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00305,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00305,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00305,"57":0,"58":0.00305,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00305,"68":0,"69":0.00305,"70":0.00305,"71":0.00305,"72":0.0061,"73":0.00305,"74":0.00914,"75":0.00305,"76":0,"77":0,"78":0.0061,"79":0.00914,"80":0.00305,"81":0.00914,"83":0.0061,"84":0.00914,"85":0.02134,"86":0.01524,"87":0.01219,"88":0.00305,"89":0.00305,"90":0.00305,"91":0.00305,"92":0.00305,"93":0.00305,"94":0.01524,"95":0.0061,"96":0.01219,"97":0.00305,"98":0.00305,"99":0.0061,"100":0.0061,"101":0.0061,"102":0.00914,"103":0.01219,"104":0.0061,"105":0.01219,"106":0.01829,"107":0.01829,"108":0.03048,"109":0.49682,"110":0.05486,"111":1.90195,"112":2.20675,"113":0.01219,"114":0.0061,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00305,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00305,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00305,"60":0.00305,"62":0,"63":0.00305,"64":0.00305,"65":0.00305,"66":0.00305,"67":0.02134,"68":0.08534,"69":0.24079,"70":0.00305,"71":0,"72":0.00305,"73":0.00305,"74":0.01219,"75":0.01219,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00305,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01219,"96":0.02743,"97":0.11278,"98":0.0061,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00305,"15":0,"16":0,"17":0,"18":0.00305,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00305,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00305,"109":0.0061,"110":0.01219,"111":0.10058,"112":0.19812,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00305,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00305,"14.1":0.0061,"15.1":0,"15.2-15.3":0,"15.4":0.00305,"15.5":0.00305,"15.6":0.01829,"16.0":0,"16.1":0.0061,"16.2":0.0061,"16.3":0.02743,"16.4":0.01829,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0028,"6.0-6.1":0,"7.0-7.1":0.0575,"8.1-8.4":0.0028,"9.0-9.2":0.00386,"9.3":0.0305,"10.0-10.2":0.00245,"10.3":0.02104,"11.0-11.2":0.00526,"11.3-11.4":0.0021,"12.0-12.1":0.00421,"12.2-12.5":0.17214,"13.0-13.1":0.00316,"13.2":0.00316,"13.3":0.00736,"13.4-13.7":0.03471,"14.0-14.4":0.05925,"14.5-14.8":0.07713,"15.0-15.1":0.027,"15.2-15.3":0.04908,"15.4":0.05715,"15.5":0.08589,"15.6":0.16022,"16.0":0.16197,"16.1":0.30571,"16.2":0.20755,"16.3":0.87892,"16.4":0.61072,"16.5":0.01893},P:{"4":0.26452,"20":0.64094,"5.0-5.4":0.01017,"6.2-6.4":0.01017,"7.2-7.4":0.07122,"8.2":0,"9.2":0.01017,"10.1":0,"11.1-11.2":0.02035,"12.0":0.01017,"13.0":0.02035,"14.0":0.01017,"15.0":0.01017,"16.0":0.04069,"17.0":0.05087,"18.0":0.02035,"19.0":0.06104},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01301,"4.4":0,"4.4.3-4.4.4":0.13442},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00965,"9":0.00322,"10":0.00322,"11":0.04183,"5.5":0},S:{"2.5":0.0139,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.11123},Q:{"13.1":0},O:{"0":2.32197},H:{"0":2.1588},L:{"0":82.11986}}; diff --git a/node_modules/caniuse-lite/data/regions/BE.js b/node_modules/caniuse-lite/data/regions/BE.js new file mode 100644 index 0000000..0e95142 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01383,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02767,"79":0,"80":0,"81":0,"82":0,"83":0.00692,"84":0,"85":0,"86":0,"87":0.0415,"88":0,"89":0,"90":0,"91":0.00692,"92":0,"93":0,"94":0.34585,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.06917,"103":0,"104":0.00692,"105":0,"106":0.00692,"107":0.00692,"108":0.01383,"109":0.01383,"110":0.02767,"111":0.98221,"112":0.88538,"113":0.00692,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02767,"50":0,"51":0,"52":0,"53":0.00692,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00692,"65":0,"66":0.02075,"67":0.00692,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.0415,"75":0.0415,"76":0.0415,"77":0.0415,"78":0.62945,"79":0.85079,"80":0.02075,"81":0.01383,"83":0.08992,"84":0.01383,"85":0.02075,"86":0.00692,"87":0.0415,"88":0.00692,"89":0.01383,"90":0.00692,"91":0.00692,"92":0.02075,"93":0.03459,"94":0.02075,"95":0.05534,"96":0.00692,"97":0.01383,"98":0.00692,"99":0.01383,"100":0.01383,"101":0.01383,"102":0.02075,"103":0.22134,"104":0.02075,"105":0.06917,"106":0.0415,"107":0.05534,"108":0.22134,"109":1.18281,"110":0.56028,"111":11.29546,"112":15.71542,"113":0.02767,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00692,"96":0.15909,"97":0.39427,"98":0.01383,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0.00692,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00692,"93":0,"94":0,"95":0.00692,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00692,"102":0,"103":0.00692,"104":0.00692,"105":0.00692,"106":0.00692,"107":0.01383,"108":0.04842,"109":0.15909,"110":0.11759,"111":1.63241,"112":5.42985,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00692,"14":0.05534,"15":0.01383,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.02075,"13.1":0.13142,"14.1":0.15217,"15.1":0.02767,"15.2-15.3":0.02767,"15.4":0.05534,"15.5":0.09684,"15.6":0.51186,"16.0":0.04842,"16.1":0.14526,"16.2":0.24901,"16.3":1.18972,"16.4":0.51878,"16.5":0.01383},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00271,"8.1-8.4":0.00271,"9.0-9.2":0,"9.3":0.05152,"10.0-10.2":0.00271,"10.3":0.11389,"11.0-11.2":0.01085,"11.3-11.4":0.04067,"12.0-12.1":0.01356,"12.2-12.5":0.31996,"13.0-13.1":0.00271,"13.2":0,"13.3":0.01085,"13.4-13.7":0.0461,"14.0-14.4":0.20608,"14.5-14.8":0.38233,"15.0-15.1":0.11931,"15.2-15.3":0.16812,"15.4":0.23048,"15.5":0.37691,"15.6":1.43984,"16.0":2.00655,"16.1":3.91278,"16.2":2.15569,"16.3":10.13039,"16.4":4.0348,"16.5":0.08677},P:{"4":0.05157,"20":2.33082,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05157,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.01031,"14.0":0.01031,"15.0":0,"16.0":0.01031,"17.0":0.02063,"18.0":0.02063,"19.0":0.08251},I:{"0":0,"3":0,"4":0.00659,"2.1":0,"2.2":0.00989,"2.3":0.00659,"4.1":0.01318,"4.2-4.3":0.13839,"4.4":0,"4.4.3-4.4.4":0.10544},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01383,"9":0.00692,"10":0.00692,"11":0.18676,"5.5":0},S:{"2.5":0.00308,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.25281},Q:{"13.1":0},O:{"0":0.02158},H:{"0":0.09048},L:{"0":22.72576}}; diff --git a/node_modules/caniuse-lite/data/regions/BF.js b/node_modules/caniuse-lite/data/regions/BF.js new file mode 100644 index 0000000..e57f6d3 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00273,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00273,"48":0,"49":0,"50":0,"51":0,"52":0.00546,"53":0,"54":0,"55":0,"56":0.00273,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00546,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00546,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00819,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00273,"100":0.00546,"101":0,"102":0.03275,"103":0,"104":0.00273,"105":0,"106":0,"107":0,"108":0.00273,"109":0.03002,"110":0.00546,"111":0.3575,"112":0.36842,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01637,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00273,"29":0,"30":0,"31":0,"32":0.00273,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00273,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00546,"71":0,"72":0,"73":0,"74":0.00273,"75":0,"76":0.00273,"77":0,"78":0.00273,"79":0.01637,"80":0,"81":0.00273,"83":0.00819,"84":0,"85":0,"86":0.02729,"87":0.02183,"88":0,"89":0.01092,"90":0.03275,"91":0,"92":0,"93":0,"94":0,"95":0.00273,"96":0.00273,"97":0.00273,"98":0,"99":0.00546,"100":0,"101":0.00273,"102":0.00819,"103":0.0191,"104":0.01092,"105":0.00546,"106":0.00273,"107":0.00273,"108":0.0191,"109":0.38206,"110":0.0191,"111":0.86782,"112":1.04794,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00273,"38":0,"39":0,"40":0,"41":0,"42":0.00273,"43":0,"44":0,"45":0.00819,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.00273,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00273,"60":0.04639,"62":0,"63":0.02456,"64":0.00819,"65":0.00273,"66":0.03821,"67":0.06277,"68":0.14191,"69":0.27836,"70":0,"71":0,"72":0,"73":0,"74":0.00546,"75":0.00273,"76":0,"77":0,"78":0,"79":0.00273,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01092,"96":0.03821,"97":0.18557,"98":0.01092,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00546},B:{"12":0.00273,"13":0.00273,"14":0.00273,"15":0.00273,"16":0,"17":0.00273,"18":0.01365,"79":0,"80":0,"81":0,"83":0,"84":0.00273,"85":0,"86":0,"87":0,"88":0,"89":0.00273,"90":0.00273,"91":0,"92":0.00819,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00273,"108":0.00273,"109":0.04639,"110":0.04639,"111":0.26471,"112":0.5267,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00273,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01637,"14.1":0.00273,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.01365,"16.0":0,"16.1":0.00273,"16.2":0.00546,"16.3":0.02456,"16.4":0.01365,"16.5":0},G:{"8":0.00144,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00144,"7.0-7.1":0.00215,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00718,"10.0-10.2":0,"10.3":0.27426,"11.0-11.2":0.00862,"11.3-11.4":0,"12.0-12.1":0.24411,"12.2-12.5":0.63899,"13.0-13.1":0.00431,"13.2":0,"13.3":0.01364,"13.4-13.7":0.02585,"14.0-14.4":0.22257,"14.5-14.8":0.12923,"15.0-15.1":0.19026,"15.2-15.3":0.12062,"15.4":0.06246,"15.5":0.11918,"15.6":0.26708,"16.0":0.86874,"16.1":0.50616,"16.2":0.38842,"16.3":1.47613,"16.4":0.98433,"16.5":0.03805},P:{"4":0,"20":0.66238,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05175,"8.2":0,"9.2":0.0207,"10.1":0,"11.1-11.2":0.01035,"12.0":0,"13.0":0,"14.0":0.01035,"15.0":0.01035,"16.0":0.1035,"17.0":0.13455,"18.0":0.0828,"19.0":0.05175},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00725,"4.2-4.3":0.00339,"4.4":0,"4.4.3-4.4.4":0.17846},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02456,"5.5":0},S:{"2.5":0.01454,_:"3.0-3.1"},J:{"7":0,"10":0.02181},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10179},Q:{"13.1":0.03636},O:{"0":0.43626},H:{"0":6.43627},L:{"0":77.39236}}; diff --git a/node_modules/caniuse-lite/data/regions/BG.js b/node_modules/caniuse-lite/data/regions/BG.js new file mode 100644 index 0000000..e8fb8c9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00443,"49":0,"50":0,"51":0,"52":0.0487,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00443,"65":0,"66":0.02214,"67":0,"68":0.00443,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02214,"79":0,"80":0.00885,"81":0,"82":0,"83":0.00885,"84":0.00885,"85":0,"86":0,"87":0,"88":0.00885,"89":0.00443,"90":0.00443,"91":0.00443,"92":0,"93":0,"94":0.00443,"95":0,"96":0.00443,"97":0.00443,"98":0.00443,"99":0.00885,"100":0.00443,"101":0,"102":0.10182,"103":0.00885,"104":0.00443,"105":0.00443,"106":0.00885,"107":0.00885,"108":0.02656,"109":0.01771,"110":0.03099,"111":1.10232,"112":1.01378,"113":0.00885,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00443,"34":0.00443,"35":0,"36":0,"37":0,"38":0.00885,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00443,"48":0,"49":0.05755,"50":0,"51":0,"52":0,"53":0.00443,"54":0,"55":0,"56":0.00443,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00443,"64":0,"65":0.00443,"66":0,"67":0.00443,"68":0,"69":0.00443,"70":0.00443,"71":0.00443,"72":0,"73":0,"74":0.00443,"75":0.00443,"76":0.00443,"77":0.00443,"78":0.00443,"79":0.07083,"80":0.00443,"81":0.02214,"83":0.00885,"84":0.00443,"85":0.00443,"86":0.00443,"87":0.01771,"88":0.00885,"89":0.00443,"90":0.00443,"91":0.00443,"92":0.00443,"93":0.03542,"94":0.02214,"95":0.01328,"96":0.00443,"97":0.00885,"98":0.00885,"99":0.02214,"100":0.01328,"101":0.00443,"102":0.00885,"103":0.03984,"104":0.01328,"105":0.01328,"106":0.03984,"107":0.02214,"108":0.06198,"109":1.85934,"110":0.07969,"111":4.30747,"112":4.92282,"113":0.00443,"114":0.00443,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.02656,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00885,"37":0,"38":0,"39":0,"40":0.00443,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01328,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00885,"70":0,"71":0,"72":0,"73":0,"74":0.00443,"75":0.00443,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00443,"83":0,"84":0,"85":0.00443,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.01771,"95":0.06641,"96":0.12396,"97":0.41171,"98":0.01771,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00443,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00443,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00443,"104":0,"105":0,"106":0,"107":0.00443,"108":0.00443,"109":0.05312,"110":0.02656,"111":0.394,"112":0.98722,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00885,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00443,"13.1":0.01328,"14.1":0.02214,"15.1":0.00443,"15.2-15.3":0.00443,"15.4":0.00885,"15.5":0.00885,"15.6":0.05755,"16.0":0.00443,"16.1":0.01771,"16.2":0.02656,"16.3":0.12396,"16.4":0.06198,"16.5":0.00443},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00596,"6.0-6.1":0,"7.0-7.1":0.01342,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02832,"10.0-10.2":0.00149,"10.3":0.05814,"11.0-11.2":0.01491,"11.3-11.4":0.00596,"12.0-12.1":0.00596,"12.2-12.5":0.20124,"13.0-13.1":0.00745,"13.2":0.00149,"13.3":0.01491,"13.4-13.7":0.05515,"14.0-14.4":0.11776,"14.5-14.8":0.32496,"15.0-15.1":0.06559,"15.2-15.3":0.09391,"15.4":0.11776,"15.5":0.19975,"15.6":0.55303,"16.0":1.13885,"16.1":1.87672,"16.2":1.08519,"16.3":5.36335,"16.4":2.66229,"16.5":0.06857},P:{"4":0.25565,"20":2.58714,"5.0-5.4":0.02045,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02045,"12.0":0.01023,"13.0":0.02045,"14.0":0.03068,"15.0":0.01023,"16.0":0.0409,"17.0":0.0409,"18.0":0.06136,"19.0":0.18407},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01531,"4.2-4.3":0.04082,"4.4":0,"4.4.3-4.4.4":0.18371},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00443,"9":0,"10":0,"11":0.08854,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.20063},Q:{"13.1":0},O:{"0":0.02787},H:{"0":0.27964},L:{"0":62.92399}}; diff --git a/node_modules/caniuse-lite/data/regions/BH.js b/node_modules/caniuse-lite/data/regions/BH.js new file mode 100644 index 0000000..0e0e070 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00324,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00324,"53":0.00324,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00324,"67":0,"68":0.00324,"69":0,"70":0,"71":0,"72":0.00324,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.04856,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00324,"110":0.00971,"111":0.42081,"112":0.12624,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00647,"48":0,"49":0.00647,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00324,"56":0.00324,"57":0,"58":0.00647,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.01295,"66":0,"67":0,"68":0.00324,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00971,"77":0.00324,"78":0.00324,"79":0.03561,"80":0.00324,"81":0.01942,"83":0.00324,"84":0.00324,"85":0,"86":0.00324,"87":0.02266,"88":0.00647,"89":0.00324,"90":0.00324,"91":0.00324,"92":0.00324,"93":0.00324,"94":0.00324,"95":0.00647,"96":0.00324,"97":0.00647,"98":0.00647,"99":0.0259,"100":0.00324,"101":0.00647,"102":0.01295,"103":0.03884,"104":0.00324,"105":0.01295,"106":0.00971,"107":0.01619,"108":0.03884,"109":0.41757,"110":0.08416,"111":2.67376,"112":2.87446,"113":0.00324,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00971,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00324,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00647,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00324,"70":0,"71":0,"72":0,"73":0.00324,"74":0.01619,"75":0.01619,"76":0.00324,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00324,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00324,"94":0.00324,"95":0.01619,"96":0.04532,"97":0.04856,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00324,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00324,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00324,"107":0.00324,"108":0.00971,"109":0.00971,"110":0.03237,"111":0.28486,"112":0.61827,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00324,"14":0.01942,"15":0.00324,_:"0","3.1":0,"3.2":0,"5.1":0.00324,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00324,"13.1":0.01295,"14.1":0.08093,"15.1":0.00971,"15.2-15.3":0.00324,"15.4":0.01619,"15.5":0.0259,"15.6":0.11977,"16.0":0.00971,"16.1":0.05179,"16.2":0.07445,"16.3":0.23306,"16.4":0.10358,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02197,"8.1-8.4":0,"9.0-9.2":0.00275,"9.3":0.13458,"10.0-10.2":0,"10.3":0.03845,"11.0-11.2":0.01923,"11.3-11.4":0.00275,"12.0-12.1":0.01373,"12.2-12.5":0.4422,"13.0-13.1":0.03845,"13.2":0,"13.3":0.03021,"13.4-13.7":0.06043,"14.0-14.4":0.26367,"14.5-14.8":0.50538,"15.0-15.1":0.19226,"15.2-15.3":0.19501,"15.4":0.26367,"15.5":0.49439,"15.6":1.42,"16.0":2.28793,"16.1":2.92514,"16.2":1.78255,"16.3":8.87155,"16.4":5.96015,"16.5":0.10712},P:{"4":0.13225,"20":2.69591,"5.0-5.4":0,"6.2-6.4":0.02035,"7.2-7.4":0.08139,"8.2":0,"9.2":0.01017,"10.1":0,"11.1-11.2":0.14243,"12.0":0,"13.0":0.03052,"14.0":0.03052,"15.0":0.02035,"16.0":0.07121,"17.0":0.06104,"18.0":0.10173,"19.0":0.18312},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01239,"4.2-4.3":0.00929,"4.4":0,"4.4.3-4.4.4":0.07126},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01619,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.55457},Q:{"13.1":0},O:{"0":4.28774},H:{"0":0.94761},L:{"0":52.02785}}; diff --git a/node_modules/caniuse-lite/data/regions/BI.js b/node_modules/caniuse-lite/data/regions/BI.js new file mode 100644 index 0000000..9c382b9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.01807,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.00516,"46":0,"47":0.00258,"48":0,"49":0,"50":0,"51":0,"52":0.00258,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00258,"69":0,"70":0,"71":0,"72":0.01032,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00258,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00516,"92":0.00258,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00516,"103":0,"104":0,"105":0,"106":0.00258,"107":0.00258,"108":0.00258,"109":0.00774,"110":0.01291,"111":0.22197,"112":0.24261,"113":0.00774,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00258,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00258,"56":0,"57":0,"58":0,"59":0.00516,"60":0,"61":0,"62":0,"63":0.00258,"64":0.00516,"65":0,"66":0.01549,"67":0,"68":0.07485,"69":0,"70":0,"71":0,"72":0,"73":0.02323,"74":0,"75":0.00258,"76":0.00258,"77":0,"78":0.00258,"79":0.00516,"80":0.01549,"81":0.01032,"83":0,"84":0.00258,"85":0,"86":0.00516,"87":0.00258,"88":0.00258,"89":0,"90":0.00258,"91":0,"92":0.00258,"93":0.00258,"94":0.00516,"95":0.00258,"96":0,"97":0,"98":0,"99":0.00774,"100":0.00258,"101":0.01032,"102":0.00774,"103":0.04904,"104":0.03097,"105":0.01032,"106":0.03613,"107":0.01032,"108":0.01032,"109":0.5033,"110":0.02065,"111":0.96013,"112":1.01691,"113":0.02323,"114":0.01291,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0.00258,"24":0.00774,"25":0,"26":0.00258,"27":0.00258,"28":0.00258,"29":0,"30":0.00258,"31":0,"32":0.01549,"33":0,"34":0,"35":0,"36":0,"37":0.17809,"38":0.00258,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00258,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00516,"60":0.02581,"62":0,"63":0.0955,"64":0.14454,"65":0.00516,"66":0.06194,"67":0.09034,"68":0.07485,"69":0.25552,"70":0.00258,"71":0,"72":0.00516,"73":0,"74":0.02581,"75":0.00258,"76":0,"77":0,"78":0,"79":0.00774,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00516,"95":0.00516,"96":0.01807,"97":0.18067,"98":0.01291,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00258},B:{"12":0.00516,"13":0,"14":0,"15":0.00258,"16":0,"17":0.00258,"18":0.01291,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00258,"86":0,"87":0,"88":0,"89":0.00516,"90":0.02581,"91":0,"92":0.00516,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00258,"101":0,"102":0,"103":0,"104":0,"105":0.00516,"106":0,"107":0.00258,"108":0.00516,"109":0.01032,"110":0.01549,"111":0.14196,"112":0.2994,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00258,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.07485,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0.00774,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00258,"15.6":0.00516,"16.0":0,"16.1":0,"16.2":0.00258,"16.3":0.00774,"16.4":0.00516,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00358,"6.0-6.1":0,"7.0-7.1":0.00748,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07837,"10.0-10.2":0.00293,"10.3":0.02439,"11.0-11.2":0.00976,"11.3-11.4":0.00065,"12.0-12.1":0.10471,"12.2-12.5":0.45333,"13.0-13.1":0.00325,"13.2":0.00585,"13.3":0.01398,"13.4-13.7":0.09528,"14.0-14.4":0.13008,"14.5-14.8":0.06504,"15.0-15.1":0.12618,"15.2-15.3":0.11447,"15.4":0.04358,"15.5":0.2413,"15.6":0.07219,"16.0":0.16032,"16.1":0.3278,"16.2":0.31805,"16.3":0.45398,"16.4":0.18146,"16.5":0.0052},P:{"4":0.40868,"20":0.43933,"5.0-5.4":0.03065,"6.2-6.4":0.27586,"7.2-7.4":0.07152,"8.2":0,"9.2":0.01022,"10.1":0,"11.1-11.2":0.04087,"12.0":0,"13.0":0.0613,"14.0":0.01022,"15.0":0.05109,"16.0":0.21456,"17.0":0.01022,"18.0":0.03065,"19.0":0.13282},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00014,"4.2-4.3":0.0086,"4.4":0,"4.4.3-4.4.4":0.02191},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02581,"5.5":0},S:{"2.5":0.17064,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.0371},Q:{"13.1":0.00742},O:{"0":0.39321},H:{"0":15.94409},L:{"0":68.19319}}; diff --git a/node_modules/caniuse-lite/data/regions/BJ.js b/node_modules/caniuse-lite/data/regions/BJ.js new file mode 100644 index 0000000..f59e8e8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BJ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00274,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00549,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00274,"92":0,"93":0,"94":0,"95":0.00274,"96":0.00549,"97":0,"98":0.00274,"99":0.00274,"100":0.00274,"101":0.00274,"102":0.01646,"103":0,"104":0,"105":0,"106":0,"107":0.01921,"108":0,"109":0.00274,"110":0.01098,"111":0.17562,"112":0.16738,"113":0.00549,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00274,"43":0,"44":0,"45":0,"46":0.00274,"47":0.00274,"48":0,"49":0,"50":0.00274,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00274,"57":0,"58":0,"59":0,"60":0,"61":0.01372,"62":0,"63":0.00274,"64":0,"65":0,"66":0.00274,"67":0,"68":0.00274,"69":0,"70":0.00549,"71":0,"72":0,"73":0.00274,"74":0.02744,"75":0,"76":0.00549,"77":0.00274,"78":0.00274,"79":0.00274,"80":0.01098,"81":0.01372,"83":0.00549,"84":0,"85":0.00274,"86":0.00823,"87":0.01098,"88":0.00549,"89":0.00274,"90":0.00274,"91":0.00823,"92":0.00274,"93":0.00274,"94":0.01098,"95":0.01098,"96":0.00274,"97":0.00274,"98":0.01098,"99":0.00823,"100":0.00274,"101":0.00274,"102":0.01098,"103":0.0247,"104":0.01098,"105":0.01372,"106":0.00549,"107":0.01372,"108":0.03567,"109":0.50215,"110":0.06037,"111":1.08662,"112":1.28145,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00274,"23":0,"24":0.00823,"25":0,"26":0,"27":0.00274,"28":0,"29":0,"30":0,"31":0,"32":0.00274,"33":0,"34":0,"35":0,"36":0,"37":0.00274,"38":0,"39":0,"40":0,"41":0,"42":0.00274,"43":0,"44":0,"45":0,"46":0.00823,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00274,"57":0.00549,"58":0.00274,"60":0.02744,"62":0,"63":0.31007,"64":0.00549,"65":0.00274,"66":0.0247,"67":0.06037,"68":0.05214,"69":0.07134,"70":0.00549,"71":0,"72":0,"73":0,"74":0.00274,"75":0.00549,"76":0,"77":0,"78":0,"79":0.00549,"80":0,"81":0,"82":0.00823,"83":0.00549,"84":0,"85":0.00549,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03293,"96":0.0247,"97":0.09604,"98":0.00823,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00549},B:{"12":0.00274,"13":0,"14":0.00274,"15":0.05214,"16":0,"17":0,"18":0.00549,"79":0,"80":0,"81":0,"83":0,"84":0.00274,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00549,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00274,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00549,"108":0.00274,"109":0.00549,"110":0.03567,"111":0.13171,"112":0.23873,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00823,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00274,"14.1":0.00274,"15.1":0.00549,"15.2-15.3":0.00823,"15.4":0,"15.5":0.01372,"15.6":0.01921,"16.0":0.00274,"16.1":0.00549,"16.2":0.01921,"16.3":0.07683,"16.4":0.04116,"16.5":0.00274},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00117,"7.0-7.1":0.07623,"8.1-8.4":0,"9.0-9.2":0.00117,"9.3":0.02463,"10.0-10.2":0,"10.3":0.01876,"11.0-11.2":0.00352,"11.3-11.4":0.00235,"12.0-12.1":0.06919,"12.2-12.5":0.94058,"13.0-13.1":0.08796,"13.2":0.08913,"13.3":0.03518,"13.4-13.7":0.03987,"14.0-14.4":0.40696,"14.5-14.8":0.36943,"15.0-15.1":0.12549,"15.2-15.3":0.17709,"15.4":0.30375,"15.5":0.48319,"15.6":0.74355,"16.0":1.03557,"16.1":1.05786,"16.2":0.68139,"16.3":2.81,"16.4":0.95934,"16.5":0.03284},P:{"4":0.4126,"20":0.2785,"5.0-5.4":0,"6.2-6.4":0.09283,"7.2-7.4":0.02063,"8.2":0,"9.2":0.02063,"10.1":0,"11.1-11.2":0.01031,"12.0":0,"13.0":0.02063,"14.0":0,"15.0":0.03094,"16.0":0.01031,"17.0":0.01031,"18.0":0.11346,"19.0":0.03094},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.001,"4.2-4.3":0.01099,"4.4":0,"4.4.3-4.4.4":0.05996},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00823,"5.5":0},S:{"2.5":0.10884,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.07256},Q:{"13.1":0.01451},O:{"0":0.55146},H:{"0":7.19925},L:{"0":72.34738}}; diff --git a/node_modules/caniuse-lite/data/regions/BM.js b/node_modules/caniuse-lite/data/regions/BM.js new file mode 100644 index 0000000..25198d9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.0178,"112":0.01526,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00254,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00254,"101":0,"102":0,"103":0.00254,"104":0,"105":0,"106":0,"107":0.01017,"108":0.01017,"109":0.0356,"110":0.04323,"111":0.38399,"112":0.34585,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00763,"95":0,"96":0.00509,"97":0.01272,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.01017,"111":0.07883,"112":0.16784,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00254,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0356,"14.1":0.0534,"15.1":0.02034,"15.2-15.3":0.0356,"15.4":0.07629,"15.5":0.13987,"15.6":0.7807,"16.0":0.04323,"16.1":0.21361,"16.2":0.40688,"16.3":2.12849,"16.4":1.04772,"16.5":0.01526},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03777,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00944,"12.2-12.5":0.18883,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0.05665,"15.0-15.1":0.1605,"15.2-15.3":0.33989,"15.4":0.50984,"15.5":1.69002,"15.6":6.61846,"16.0":5.36275,"16.1":12.84983,"16.2":7.49652,"16.3":38.81385,"16.4":16.29596,"16.5":0.31157},P:{"4":0.03221,"20":0.50469,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04069},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.02237},Q:{"13.1":0},O:{"0":0},H:{"0":0.00706},L:{"0":2.14199}}; diff --git a/node_modules/caniuse-lite/data/regions/BN.js b/node_modules/caniuse-lite/data/regions/BN.js new file mode 100644 index 0000000..50f844f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.0048,"49":0,"50":0,"51":0,"52":0.0096,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0.0048,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0096,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.0048,"100":0.0048,"101":0,"102":0,"103":0,"104":0.0096,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.0096,"111":0.54743,"112":0.45139,"113":0.0048,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.01921,"39":0,"40":0,"41":0,"42":0,"43":0.0048,"44":0.0096,"45":0.0048,"46":0,"47":0.02881,"48":0,"49":0.26891,"50":0.0048,"51":0,"52":0,"53":0.0048,"54":0,"55":0.0096,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.02401,"63":0,"64":0,"65":0.0048,"66":0.0048,"67":0,"68":0.0048,"69":0.0096,"70":0.0048,"71":0.02401,"72":0.0048,"73":0.01441,"74":0,"75":0.0048,"76":0,"77":0,"78":0,"79":0.08644,"80":0.0048,"81":0.0096,"83":0.0048,"84":0,"85":0.0096,"86":0,"87":0.01921,"88":0.02401,"89":0.0048,"90":0,"91":0.01441,"92":0.0096,"93":0,"94":0.0048,"95":0.01441,"96":0.0096,"97":0.01441,"98":0.02881,"99":0.05282,"100":0.0048,"101":0.0048,"102":0.01441,"103":0.13446,"104":0.0048,"105":0.0048,"106":0.01921,"107":0.01441,"108":0.03842,"109":1.06124,"110":0.07203,"111":5.82963,"112":5.38304,"113":0.0096,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01921,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0096,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.01441,"56":0,"57":0,"58":0,"60":0.0048,"62":0,"63":0.0048,"64":0.0096,"65":0,"66":0.0048,"67":0.01441,"68":0.06723,"69":0.2353,"70":0,"71":0,"72":0,"73":0,"74":0.01921,"75":0.0048,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02881,"96":0.11525,"97":0.33614,"98":0.0048,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.0048},B:{"12":0.0048,"13":0,"14":0.0048,"15":0,"16":0,"17":0,"18":0.0048,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0048,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.0048,"107":0.0048,"108":0.07683,"109":0.01441,"110":0.02401,"111":0.43218,"112":0.7107,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.0048,"13":0.03361,"14":0.07683,"15":0.0096,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.02401,"13.1":0.04802,"14.1":0.43218,"15.1":0.04322,"15.2-15.3":0.0096,"15.4":0.05282,"15.5":0.04802,"15.6":0.40337,"16.0":0.04322,"16.1":0.13446,"16.2":0.26411,"16.3":0.85476,"16.4":0.44659,"16.5":0.0048},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00501,"7.0-7.1":0.04756,"8.1-8.4":0.07259,"9.0-9.2":0.01502,"9.3":0.1577,"10.0-10.2":0.0025,"10.3":0.54069,"11.0-11.2":0.01502,"11.3-11.4":0.0025,"12.0-12.1":0.1577,"12.2-12.5":0.72844,"13.0-13.1":0.03755,"13.2":0,"13.3":0.01001,"13.4-13.7":0.04506,"14.0-14.4":0.29788,"14.5-14.8":0.35295,"15.0-15.1":0.18273,"15.2-15.3":0.19525,"15.4":0.24532,"15.5":0.36797,"15.6":1.04634,"16.0":1.82485,"16.1":2.8787,"16.2":1.6321,"16.3":7.75246,"16.4":4.70104,"16.5":0.05006},P:{"4":0.66646,"20":1.55508,"5.0-5.4":0.01058,"6.2-6.4":0.01058,"7.2-7.4":0.10579,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02116,"12.0":0,"13.0":0.05289,"14.0":0.02116,"15.0":0.01058,"16.0":0.05289,"17.0":0.11637,"18.0":0.03174,"19.0":0.05289},I:{"0":0,"3":0.00281,"4":0.03652,"2.1":0.00562,"2.2":0.01967,"2.3":0.02528,"4.1":0.03933,"4.2-4.3":0.059,"4.4":0,"4.4.3-4.4.4":0.17137},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0048,"7":0.0096,"8":0.09604,"9":0.01441,"10":0.01921,"11":0.06243,"5.5":0},S:{"2.5":0.0052,_:"3.0-3.1"},J:{"7":0,"10":0.02079},N:{"10":0.02426,"11":0.01213},R:{_:"0"},M:{"0":0.21312},Q:{"13.1":0.0104},O:{"0":1.47103},H:{"0":1.87495},L:{"0":47.10931}}; diff --git a/node_modules/caniuse-lite/data/regions/BO.js b/node_modules/caniuse-lite/data/regions/BO.js new file mode 100644 index 0000000..d69e0aa --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01388,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00463,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00463,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00463,"79":0.00463,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00463,"89":0.00463,"90":0,"91":0.00463,"92":0,"93":0.00463,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00463,"100":0.00463,"101":0.00463,"102":0.01388,"103":0.00463,"104":0.00463,"105":0,"106":0.00925,"107":0.00463,"108":0.01388,"109":0.00925,"110":0.01851,"111":0.55061,"112":0.49972,"113":0.00463,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00463,"35":0,"36":0,"37":0,"38":0.00463,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00463,"48":0,"49":0.00925,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00463,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00463,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01851,"69":0.00925,"70":0.00925,"71":0,"72":0.00463,"73":0.00463,"74":0.00463,"75":0.00463,"76":0.00463,"77":0.00463,"78":0.00463,"79":0.07866,"80":0.00925,"81":0.00925,"83":0.00925,"84":0.00925,"85":0.00463,"86":0.00925,"87":0.03239,"88":0.00925,"89":0.00463,"90":0.00463,"91":0.04164,"92":0.00925,"93":0.00463,"94":0.39792,"95":0.00925,"96":0.01388,"97":0.01851,"98":0.00925,"99":0.01851,"100":0.01851,"101":0.01851,"102":0.01851,"103":0.06015,"104":0.02314,"105":0.02776,"106":0.02776,"107":0.05552,"108":0.27762,"109":2.10529,"110":0.12493,"111":4.49282,"112":5.84853,"113":0.00463,"114":0.00463,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01851,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00463,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00925,"69":0.02776,"70":0,"71":0,"72":0.01388,"73":0,"74":0.00925,"75":0.00463,"76":0,"77":0,"78":0,"79":0.00463,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.06015,"96":0.18508,"97":0.59226,"98":0.01851,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00463},B:{"12":0,"13":0,"14":0.00463,"15":0,"16":0,"17":0,"18":0.00925,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00925,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00463,"106":0,"107":0.00463,"108":0.00463,"109":0.05552,"110":0.01388,"111":0.25449,"112":0.70793,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00463,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00463,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01388,"14.1":0.03239,"15.1":0,"15.2-15.3":0,"15.4":0.00463,"15.5":0.01851,"15.6":0.02314,"16.0":0.00463,"16.1":0.00925,"16.2":0.01851,"16.3":0.05552,"16.4":0.03239,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00372,"6.0-6.1":0.00159,"7.0-7.1":0.0186,"8.1-8.4":0.00903,"9.0-9.2":0.00159,"9.3":0.02125,"10.0-10.2":0,"10.3":0.00744,"11.0-11.2":0.01222,"11.3-11.4":0.00372,"12.0-12.1":0.00106,"12.2-12.5":0.14027,"13.0-13.1":0.00159,"13.2":0.00159,"13.3":0.00478,"13.4-13.7":0.02178,"14.0-14.4":0.08448,"14.5-14.8":0.0882,"15.0-15.1":0.02869,"15.2-15.3":0.05845,"15.4":0.03613,"15.5":0.08076,"15.6":0.18437,"16.0":0.34324,"16.1":0.75342,"16.2":0.35386,"16.3":1.73744,"16.4":0.8209,"16.5":0.01381},P:{"4":0.4287,"20":1.95978,"5.0-5.4":0.01021,"6.2-6.4":0.01021,"7.2-7.4":0.44912,"8.2":0,"9.2":0.02041,"10.1":0,"11.1-11.2":0.05104,"12.0":0.01021,"13.0":0.05104,"14.0":0.05104,"15.0":0.03062,"16.0":0.10207,"17.0":0.12249,"18.0":0.08166,"19.0":0.23477},I:{"0":0,"3":0,"4":0.00664,"2.1":0,"2.2":0.00995,"2.3":0.00664,"4.1":0.00995,"4.2-4.3":0.02322,"4.4":0,"4.4.3-4.4.4":0.14599},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.02776,"9":0.00463,"10":0.00463,"11":0.03239,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.01075},N:{"10":0.00537,"11":0.00537},R:{_:"0"},M:{"0":0.12358},Q:{"13.1":0},O:{"0":0.1988},H:{"0":0.38151},L:{"0":70.56554}}; diff --git a/node_modules/caniuse-lite/data/regions/BR.js b/node_modules/caniuse-lite/data/regions/BR.js new file mode 100644 index 0000000..6aecaa0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00466,"48":0,"49":0,"50":0,"51":0,"52":0.00932,"53":0,"54":0.03728,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00466,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00466,"76":0,"77":0,"78":0.00466,"79":0.00466,"80":0.00466,"81":0.00466,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00466,"88":0.00466,"89":0,"90":0,"91":0.00466,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02796,"103":0.00466,"104":0.00466,"105":0.00466,"106":0.00932,"107":0.00466,"108":0.00466,"109":0.00932,"110":0.01398,"111":0.3728,"112":0.35416,"113":0.00466,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00466,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00466,"48":0,"49":0.00932,"50":0,"51":0.00466,"52":0,"53":0,"54":0,"55":0.00466,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00466,"64":0,"65":0.00466,"66":0,"67":0,"68":0,"69":0,"70":0.00466,"71":0,"72":0.00466,"73":0,"74":0.00466,"75":0.00466,"76":0.00466,"77":0.01864,"78":0.00466,"79":0.06058,"80":0.00466,"81":0.02796,"83":0.01398,"84":0.01864,"85":0.03728,"86":0.0233,"87":0.03728,"88":0.00466,"89":0.00466,"90":0.04194,"91":0.45202,"92":0.03262,"93":0.03262,"94":0.0466,"95":0.00932,"96":0.00932,"97":0.00932,"98":0.00932,"99":0.00932,"100":0.01398,"101":0.00466,"102":0.01398,"103":0.0466,"104":0.01398,"105":0.0233,"106":0.02796,"107":0.0466,"108":0.0699,"109":1.39334,"110":0.11184,"111":4.88368,"112":6.09062,"113":0.01864,"114":0.00466,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00466,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00466,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00466,"69":0.00932,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00466,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.05126,"96":0.6524,"97":1.36072,"98":0.03262,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.03262,"16":0,"17":0,"18":0.00932,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00932,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00466,"108":0.00466,"109":0.03728,"110":0.01864,"111":0.50794,"112":1.19296,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00932,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00466,"10.1":0,"11.1":0,"12.1":0.00466,"13.1":0.01398,"14.1":0.01398,"15.1":0,"15.2-15.3":0.00466,"15.4":0.00466,"15.5":0.00932,"15.6":0.03728,"16.0":0.00466,"16.1":0.01398,"16.2":0.01864,"16.3":0.0932,"16.4":0.05126,"16.5":0},G:{"8":0.0016,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0032,"8.1-8.4":0.0016,"9.0-9.2":0,"9.3":0.03359,"10.0-10.2":0.0016,"10.3":0.03519,"11.0-11.2":0.0128,"11.3-11.4":0.03199,"12.0-12.1":0.016,"12.2-12.5":0.17595,"13.0-13.1":0.0048,"13.2":0.0032,"13.3":0.0144,"13.4-13.7":0.06398,"14.0-14.4":0.11676,"14.5-14.8":0.3087,"15.0-15.1":0.06238,"15.2-15.3":0.07518,"15.4":0.10237,"15.5":0.19674,"15.6":0.67339,"16.0":1.08287,"16.1":1.96419,"16.2":1.07167,"16.3":5.96936,"16.4":2.47764,"16.5":0.08317},P:{"4":0.15189,"20":2.03537,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.1924,"8.2":0,"9.2":0.01013,"10.1":0,"11.1-11.2":0.03038,"12.0":0.01013,"13.0":0.02025,"14.0":0.02025,"15.0":0.01013,"16.0":0.03038,"17.0":0.09114,"18.0":0.03038,"19.0":0.10126},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01161,"4.2-4.3":0.04064,"4.4":0,"4.4.3-4.4.4":0.08708},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00499,"9":0.00999,"10":0,"11":0.05492,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12816},Q:{"13.1":0},O:{"0":0.0801},H:{"0":0.24267},L:{"0":60.35914}}; diff --git a/node_modules/caniuse-lite/data/regions/BS.js b/node_modules/caniuse-lite/data/regions/BS.js new file mode 100644 index 0000000..5c25901 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.04727,"49":0,"50":0,"51":0,"52":0.0043,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0043,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00859,"103":0,"104":0,"105":0,"106":0,"107":0.0043,"108":0.03008,"109":0.00859,"110":0.03438,"111":0.24063,"112":0.24063,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00859,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0043,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.0043,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0.0043,"72":0,"73":0,"74":0,"75":0.00859,"76":0.05586,"77":0.0043,"78":0,"79":0.0043,"80":0,"81":0,"83":0.00859,"84":0,"85":0.00859,"86":0.0043,"87":0.02578,"88":0,"89":0,"90":0.01289,"91":0.01289,"92":0,"93":0.03438,"94":0.01289,"95":0.0043,"96":0,"97":0.00859,"98":0.01289,"99":0.01289,"100":0.0043,"101":0.0043,"102":0.01719,"103":0.10313,"104":0.0043,"105":0.03008,"106":0.01289,"107":0.01719,"108":0.05156,"109":0.5672,"110":0.1418,"111":3.12392,"112":3.4333,"113":0.0043,"114":0.0043,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0043,"69":0.0043,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.0043,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.02578,"97":0.09024,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.0043,"13":0.00859,"14":0.03008,"15":0.00859,"16":0.0043,"17":0.0043,"18":0.00859,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.0043,"106":0,"107":0.00859,"108":0.0043,"109":0.03008,"110":0.03438,"111":0.92386,"112":2.01959,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0043,"14":0.04297,"15":0.00859,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.0043,"12.1":0.01719,"13.1":0.09024,"14.1":0.12461,"15.1":0.01719,"15.2-15.3":0.03008,"15.4":0.08594,"15.5":0.12032,"15.6":0.5758,"16.0":0.05156,"16.1":0.20196,"16.2":0.33517,"16.3":1.39653,"16.4":0.55002,"16.5":0.02149},G:{"8":0.01028,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01028,"9.0-9.2":0,"9.3":0.06683,"10.0-10.2":0,"10.3":0.07197,"11.0-11.2":0.00514,"11.3-11.4":0.0257,"12.0-12.1":0.01542,"12.2-12.5":0.42156,"13.0-13.1":0.00514,"13.2":0,"13.3":0.01028,"13.4-13.7":0.04627,"14.0-14.4":0.28789,"14.5-14.8":1.16185,"15.0-15.1":0.15937,"15.2-15.3":0.39071,"15.4":0.41128,"15.5":0.70945,"15.6":2.62702,"16.0":3.19767,"16.1":7.07394,"16.2":4.02536,"16.3":20.3273,"16.4":7.85022,"16.5":0.15423},P:{"4":0.02078,"20":3.53333,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.17667,"8.2":0,"9.2":0.02078,"10.1":0,"11.1-11.2":0.04157,"12.0":0,"13.0":0.05196,"14.0":0.06235,"15.0":0.01039,"16.0":0.05196,"17.0":0.02078,"18.0":0.04157,"19.0":0.17667},I:{"0":0,"3":0,"4":0.04984,"2.1":0.02215,"2.2":0.02215,"2.3":0.05538,"4.1":0.0443,"4.2-4.3":0.05538,"4.4":0,"4.4.3-4.4.4":0.26027},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.0043,"8":0.03867,"9":0.00859,"10":0.00859,"11":0.04727,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.0057},N:{"10":0.00855,"11":0.00855},R:{_:"0"},M:{"0":0.23382},Q:{"13.1":0},O:{"0":0.02281},H:{"0":0.03779},L:{"0":28.17308}}; diff --git a/node_modules/caniuse-lite/data/regions/BT.js b/node_modules/caniuse-lite/data/regions/BT.js new file mode 100644 index 0000000..99e4b4f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00373,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00373,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00373,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00746,"110":0,"111":0.14924,"112":0.14178,"113":0.00746,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00746,"44":0.00373,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00373,"71":0.00373,"72":0.00373,"73":0,"74":0,"75":0.01119,"76":0,"77":0,"78":0,"79":0.03731,"80":0.00746,"81":0.01492,"83":0.00373,"84":0,"85":0,"86":0.00373,"87":0.01866,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00373,"94":0.00373,"95":0.00373,"96":0.01492,"97":0,"98":0,"99":0.01492,"100":0.00746,"101":0.00373,"102":0,"103":0.02985,"104":0.00746,"105":0.04104,"106":0.00373,"107":0.00746,"108":0.02239,"109":0.65666,"110":0.0597,"111":3.08181,"112":4.60405,"113":0.00746,"114":0.00373,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00373,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00373,"68":0.01866,"69":0.01866,"70":0,"71":0,"72":0,"73":0,"74":0.00373,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01119,"96":0.00373,"97":0.0485,"98":0.00373,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00373,"13":0,"14":0.00373,"15":0,"16":0,"17":0,"18":0.00373,"79":0,"80":0,"81":0,"83":0,"84":0.00373,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00373,"93":0,"94":0,"95":0.00373,"96":0.00373,"97":0,"98":0,"99":0,"100":0,"101":0.00373,"102":0.00373,"103":0.01492,"104":0.00746,"105":0.01119,"106":0.00746,"107":0.01492,"108":0.00373,"109":0.00746,"110":0.03358,"111":0.26117,"112":0.48876,"113":0.00373},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01866,"14":0.00373,"15":0.00373,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00373,"13.1":0.00746,"14.1":0.02239,"15.1":0,"15.2-15.3":0,"15.4":0.00746,"15.5":0.02239,"15.6":0.11566,"16.0":0.01492,"16.1":0.00746,"16.2":0.01492,"16.3":0.07835,"16.4":0.05223,"16.5":0},G:{"8":0.00568,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00189,"6.0-6.1":0,"7.0-7.1":0.01608,"8.1-8.4":0.04731,"9.0-9.2":0.00473,"9.3":0.00946,"10.0-10.2":0,"10.3":0.01419,"11.0-11.2":0.00852,"11.3-11.4":0,"12.0-12.1":0.03501,"12.2-12.5":0.12206,"13.0-13.1":0.00473,"13.2":0.00473,"13.3":0.00757,"13.4-13.7":0.02271,"14.0-14.4":0.29331,"14.5-14.8":0.16747,"15.0-15.1":0.07191,"15.2-15.3":0.15233,"15.4":0.12679,"15.5":0.25074,"15.6":0.32832,"16.0":0.74937,"16.1":0.81371,"16.2":0.48066,"16.3":3.0145,"16.4":1.64161,"16.5":0.01514},P:{"4":0.23839,"20":0.96392,"5.0-5.4":0,"6.2-6.4":0.01036,"7.2-7.4":0.03109,"8.2":0,"9.2":0.01036,"10.1":0,"11.1-11.2":0.01036,"12.0":0,"13.0":0.02073,"14.0":0,"15.0":0.01036,"16.0":0.04146,"17.0":0.03109,"18.0":0.04146,"19.0":0.11401},I:{"0":0,"3":0,"4":0.03723,"2.1":0.01064,"2.2":0.02127,"2.3":0.04255,"4.1":0.03723,"4.2-4.3":0.06382,"4.4":0,"4.4.3-4.4.4":0.12233},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.00746,"8":0.08954,"9":0.01492,"10":0.01492,"11":0.05597,"5.5":0},S:{"2.5":0.01254,_:"3.0-3.1"},J:{"7":0,"10":0.01254},N:{"10":0.02194,"11":0.02194},R:{_:"0"},M:{"0":0.01254},Q:{"13.1":0},O:{"0":2.28192},H:{"0":0.73002},L:{"0":74.07334}}; diff --git a/node_modules/caniuse-lite/data/regions/BW.js b/node_modules/caniuse-lite/data/regions/BW.js new file mode 100644 index 0000000..efe9b5e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0046,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00921,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0046,"50":0,"51":0,"52":0.00921,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.0046,"63":0,"64":0,"65":0.0046,"66":0,"67":0,"68":0.0046,"69":0,"70":0.0046,"71":0,"72":0.0046,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00921,"79":0,"80":0.0046,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.0046,"89":0,"90":0,"91":0.00921,"92":0,"93":0,"94":0.0046,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00921,"103":0,"104":0,"105":0,"106":0.0046,"107":0,"108":0.0046,"109":0.01381,"110":0.00921,"111":0.3499,"112":0.31307,"113":0.00921,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.0046,"41":0,"42":0,"43":0.0046,"44":0,"45":0,"46":0.0046,"47":0,"48":0,"49":0.00921,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.0046,"57":0.0046,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00921,"64":0,"65":0,"66":0.0046,"67":0.0046,"68":0,"69":0,"70":0.0046,"71":0,"72":0,"73":0,"74":0.00921,"75":0.0046,"76":0,"77":0.00921,"78":0.0046,"79":0.03223,"80":0.0046,"81":0.05064,"83":0.00921,"84":0.0046,"85":0.00921,"86":0.03223,"87":0.01842,"88":0.00921,"89":0.0046,"90":0.01381,"91":0.01381,"92":0.0046,"93":0.0046,"94":0.0046,"95":0.02302,"96":0.0046,"97":0.0046,"98":0.00921,"99":0.01381,"100":0.01842,"101":0.00921,"102":0.01842,"103":0.07366,"104":0.05985,"105":0.01381,"106":0.01842,"107":0.03223,"108":0.05064,"109":1.32135,"110":0.14272,"111":4.9539,"112":5.24856,"113":0.00921,"114":0.0046,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00921,"27":0,"28":0.0046,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0046,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.0046,"62":0,"63":0,"64":0.0046,"65":0,"66":0.02302,"67":0.03683,"68":0.06906,"69":0.15193,"70":0.0046,"71":0,"72":0.00921,"73":0,"74":0.0046,"75":0.0046,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.0046,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03223,"96":0.08287,"97":0.27164,"98":0.02302,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00921,"13":0.00921,"14":0.00921,"15":0.0046,"16":0.0046,"17":0.0046,"18":0.01842,"79":0,"80":0.01381,"81":0,"83":0,"84":0.0046,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.0046,"91":0,"92":0.07827,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.0046,"100":0,"101":0,"102":0,"103":0.0046,"104":0.0046,"105":0.0046,"106":0,"107":0.01381,"108":0.01842,"109":0.05525,"110":0.08748,"111":0.8011,"112":1.41803,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0046,"15":0.0046,_:"0","3.1":0,"3.2":0,"5.1":0.0046,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0046,"13.1":0.01842,"14.1":0.01842,"15.1":0.0046,"15.2-15.3":0.0046,"15.4":0.0046,"15.5":0.02302,"15.6":0.03683,"16.0":0.0046,"16.1":0.02302,"16.2":0.01842,"16.3":0.09208,"16.4":0.03683,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00486,"6.0-6.1":0.00486,"7.0-7.1":0.04209,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05747,"10.0-10.2":0,"10.3":0.04857,"11.0-11.2":0.0089,"11.3-11.4":0.02347,"12.0-12.1":0.00243,"12.2-12.5":0.43064,"13.0-13.1":0.00243,"13.2":0.00162,"13.3":0.00243,"13.4-13.7":0.15947,"14.0-14.4":0.05504,"14.5-14.8":0.09876,"15.0-15.1":0.04614,"15.2-15.3":0.03643,"15.4":0.06395,"15.5":0.18861,"15.6":0.44117,"16.0":0.30194,"16.1":0.8451,"16.2":0.32379,"16.3":2.70367,"16.4":1.16727,"16.5":0.02186},P:{"4":0.3909,"20":1.20356,"5.0-5.4":0.02057,"6.2-6.4":0,"7.2-7.4":0.25717,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02057,"12.0":0.01029,"13.0":0.02057,"14.0":0.02057,"15.0":0.12344,"16.0":0.05143,"17.0":0.07201,"18.0":0.03086,"19.0":0.19545},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00188,"4.2-4.3":0.00375,"4.4":0,"4.4.3-4.4.4":0.07502},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.03683,"5.5":0},S:{"2.5":0.07015,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08634},Q:{"13.1":0.0054},O:{"0":0.9497},H:{"0":0.9502},L:{"0":69.10186}}; diff --git a/node_modules/caniuse-lite/data/regions/BY.js b/node_modules/caniuse-lite/data/regions/BY.js new file mode 100644 index 0000000..1e2cf09 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.1082,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00492,"61":0,"62":0,"63":0.00492,"64":0,"65":0,"66":0,"67":0,"68":0.00492,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00492,"79":0.00492,"80":0.00492,"81":0.00492,"82":0,"83":0.00492,"84":0,"85":0,"86":0,"87":0,"88":0.00492,"89":0,"90":0,"91":0.00492,"92":0,"93":0,"94":0,"95":0,"96":0.00492,"97":0,"98":0,"99":0.00492,"100":0,"101":0.00492,"102":0.02459,"103":0,"104":0.00492,"105":0.00984,"106":0.00984,"107":0.00492,"108":0.00984,"109":0.01967,"110":0.04918,"111":0.86557,"112":0.64426,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00492,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02951,"50":0,"51":0.00492,"52":0,"53":0.00492,"54":0,"55":0.00492,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00492,"65":0.05902,"66":0,"67":0.00492,"68":0,"69":0.00492,"70":0.00492,"71":0.00492,"72":0.00492,"73":0,"74":0,"75":0,"76":0.02459,"77":0.00492,"78":0.00492,"79":0.02951,"80":0.00492,"81":0.01475,"83":0.02459,"84":0.02459,"85":0.03443,"86":0.02951,"87":0.01967,"88":0.02459,"89":0.00492,"90":0.00984,"91":0.00492,"92":0.00984,"93":0.08361,"94":0.0541,"95":0.00492,"96":0.00492,"97":0.00984,"98":0.00984,"99":0.04918,"100":0.03443,"101":0.02951,"102":0.02951,"103":0.02459,"104":0.04426,"105":0.02459,"106":0.11803,"107":0.03934,"108":0.07869,"109":2.01638,"110":0.14754,"111":3.60981,"112":4.05243,"113":0.00492,"114":0.00492,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00492,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.02951,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00492,"57":0,"58":0,"60":0.00492,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.01475,"68":0.00984,"69":0.02951,"70":0.00492,"71":0.00492,"72":0.00492,"73":0,"74":0.01967,"75":0.00492,"76":0,"77":0,"78":0,"79":0.02459,"80":0.00492,"81":0.00492,"82":0.01475,"83":0.01475,"84":0.00984,"85":0.08361,"86":0.00984,"87":0.00492,"88":0,"89":0.02951,"90":0,"91":0,"92":0.00492,"93":0.00492,"94":0.01967,"95":0.65409,"96":0.29016,"97":1.51474,"98":0.09344,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00984},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00492,"79":0,"80":0,"81":0,"83":0.00492,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00492,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00492,"109":0.02459,"110":0.01967,"111":0.33442,"112":0.73278,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00984,"14":0.01967,"15":0.00492,_:"0","3.1":0,"3.2":0,"5.1":0.00492,"6.1":0,"7.1":0,"9.1":0.00492,"10.1":0,"11.1":0.00492,"12.1":0.00984,"13.1":0.01967,"14.1":0.03443,"15.1":0.00984,"15.2-15.3":0.00984,"15.4":0.02951,"15.5":0.05902,"15.6":0.34918,"16.0":0.01967,"16.1":0.09344,"16.2":0.15246,"16.3":0.82622,"16.4":0.60983,"16.5":0.00984},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00942,"9.3":0.02827,"10.0-10.2":0.00314,"10.3":0.03455,"11.0-11.2":0.04397,"11.3-11.4":0.00314,"12.0-12.1":0.00942,"12.2-12.5":0.27009,"13.0-13.1":0,"13.2":0.00628,"13.3":0.04711,"13.4-13.7":0.06909,"14.0-14.4":0.23555,"14.5-14.8":0.47423,"15.0-15.1":0.13505,"15.2-15.3":0.32348,"15.4":0.22298,"15.5":0.52448,"15.6":1.47922,"16.0":2.39314,"16.1":4.26808,"16.2":2.27065,"16.3":10.4739,"16.4":5.70647,"16.5":0.09736},P:{"4":0.06075,"20":0.84042,"5.0-5.4":0.01013,"6.2-6.4":0.18226,"7.2-7.4":0.01013,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.01013,"14.0":0.02025,"15.0":0,"16.0":0.03038,"17.0":0.01013,"18.0":0.01013,"19.0":0.15188},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00624,"4.2-4.3":0.00873,"4.4":0,"4.4.3-4.4.4":0.02995},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01475,"9":0,"10":0,"11":0.06393,"5.5":0},S:{"2.5":0.00508,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09656},Q:{"13.1":0.00508},O:{"0":0.1982},H:{"0":0.90934},L:{"0":41.69056}}; diff --git a/node_modules/caniuse-lite/data/regions/BZ.js b/node_modules/caniuse-lite/data/regions/BZ.js new file mode 100644 index 0000000..8e9515a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/BZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0.00522,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0.01043,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00522,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00522,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00522,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.01043,"88":0,"89":0,"90":0,"91":0.00522,"92":0,"93":0.00522,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0313,"103":0,"104":0.00522,"105":0.00522,"106":0,"107":0,"108":0.00522,"109":0.01043,"110":0.31824,"111":0.78255,"112":0.46431,"113":0.00522,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.03652,"41":0.00522,"42":0,"43":0,"44":0,"45":0.00522,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00522,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00522,"69":0,"70":0.03652,"71":0,"72":0.00522,"73":0,"74":0,"75":0.01043,"76":0.04174,"77":0.00522,"78":0,"79":0.01043,"80":0,"81":0,"83":0.01565,"84":0.00522,"85":0,"86":0,"87":0,"88":0.01043,"89":0,"90":0,"91":0.00522,"92":0.02087,"93":0.05739,"94":0,"95":0,"96":0,"97":0.00522,"98":0,"99":0.00522,"100":0,"101":0,"102":0.00522,"103":0.12521,"104":0.00522,"105":0.01043,"106":0.01043,"107":0.02609,"108":2.66589,"109":0.78777,"110":0.88167,"111":3.57886,"112":7.39771,"113":0.01043,"114":0.01043,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.03652,"29":0,"30":0.00522,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01565,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00522,"96":0.14086,"97":0.87124,"98":0.02087,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.01043,"13":0,"14":0.00522,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00522,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.04174,"110":0.01565,"111":0.43823,"112":1.106,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00522,"13":0,"14":0.06782,"15":0.00522,_:"0","3.1":0,"3.2":0,"5.1":0.00522,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00522,"13.1":0.0313,"14.1":0.04695,"15.1":0.02087,"15.2-15.3":0.04695,"15.4":0.09391,"15.5":0.0626,"15.6":0.45388,"16.0":0.0313,"16.1":0.19303,"16.2":0.16694,"16.3":0.87646,"16.4":0.59474,"16.5":0.00522},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01311,"6.0-6.1":0,"7.0-7.1":0.03278,"8.1-8.4":0.0885,"9.0-9.2":0.00983,"9.3":0.06556,"10.0-10.2":0,"10.3":0.059,"11.0-11.2":0.00983,"11.3-11.4":0.19012,"12.0-12.1":0,"12.2-12.5":0.36385,"13.0-13.1":0,"13.2":0.00983,"13.3":0,"13.4-13.7":0.02295,"14.0-14.4":0.09178,"14.5-14.8":0.42285,"15.0-15.1":0.31796,"15.2-15.3":0.91454,"15.4":0.66542,"15.5":0.87849,"15.6":1.04566,"16.0":2.00937,"16.1":3.74668,"16.2":2.27489,"16.3":11.55472,"16.4":5.41187,"16.5":0.13767},P:{"4":0.2078,"20":2.26503,"5.0-5.4":0.01039,"6.2-6.4":0.02078,"7.2-7.4":0.07273,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01039,"12.0":0,"13.0":0.01039,"14.0":0.01039,"15.0":0.01039,"16.0":0.05195,"17.0":0.04156,"18.0":0.02078,"19.0":0.04156},I:{"0":0,"3":0.01855,"4":0.15458,"2.1":0.02473,"2.2":0.0742,"2.3":0.15458,"4.1":0.19786,"4.2-4.3":0.27206,"4.4":0,"4.4.3-4.4.4":0.69251},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00522,"7":0.02087,"8":0.25563,"9":0.04174,"10":0.04695,"11":0.15129,"5.5":0},S:{"2.5":0.00478,_:"3.0-3.1"},J:{"7":0,"10":0.02392},N:{"10":0.0246,"11":0.0615},R:{_:"0"},M:{"0":0.21045},Q:{"13.1":0},O:{"0":0.2248},H:{"0":0.12679},L:{"0":38.71742}}; diff --git a/node_modules/caniuse-lite/data/regions/CA.js b/node_modules/caniuse-lite/data/regions/CA.js new file mode 100644 index 0000000..5dead16 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.01156,"39":0,"40":0,"41":0,"42":0,"43":0.01156,"44":0.04047,"45":0.01156,"46":0,"47":0,"48":0.00578,"49":0,"50":0,"51":0,"52":0.01735,"53":0,"54":0,"55":0.02891,"56":0,"57":0.00578,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.02891,"66":0,"67":0,"68":0.00578,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00578,"78":0.02891,"79":0.00578,"80":0.00578,"81":0.00578,"82":0.00578,"83":0.00578,"84":0,"85":0,"86":0,"87":0.00578,"88":0.00578,"89":0.00578,"90":0,"91":0.01156,"92":0,"93":0,"94":0,"95":0.00578,"96":0,"97":0.00578,"98":0,"99":0.01156,"100":0,"101":0,"102":0.05204,"103":0.00578,"104":0.01156,"105":0.02891,"106":0.01156,"107":0.00578,"108":0.01735,"109":0.02313,"110":0.04047,"111":0.97138,"112":0.86152,"113":0.00578,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00578,"39":0,"40":0,"41":0,"42":0,"43":0.00578,"44":0,"45":0,"46":0,"47":0.00578,"48":0.10408,"49":0.05204,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.01735,"61":0,"62":0,"63":0,"64":0,"65":0.00578,"66":0.01735,"67":0.00578,"68":0.00578,"69":0,"70":0.00578,"71":0,"72":0.00578,"73":0,"74":0.00578,"75":0.00578,"76":0.01156,"77":0.00578,"78":0.00578,"79":0.03469,"80":0.01735,"81":0.02891,"83":0.21393,"84":0.03469,"85":0.03469,"86":0.04626,"87":0.05782,"88":0.04047,"89":0.00578,"90":0.00578,"91":0.01156,"92":0.00578,"93":0.05782,"94":0.01735,"95":0.00578,"96":0.01735,"97":0.01156,"98":0.01156,"99":0.01156,"100":0.01735,"101":0.01735,"102":0.01735,"103":0.25441,"104":0.02313,"105":0.10408,"106":0.0636,"107":0.07517,"108":0.20237,"109":0.98294,"110":0.39318,"111":6.97887,"112":8.05433,"113":0.01156,"114":0.00578,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00578,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00578,"69":0.01156,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00578,"90":0,"91":0,"92":0,"93":0,"94":0.00578,"95":0.03469,"96":0.1272,"97":0.30645,"98":0.01156,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00578,"13":0.00578,"14":0,"15":0,"16":0,"17":0.00578,"18":0.00578,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00578,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00578,"101":0,"102":0,"103":0.00578,"104":0,"105":0.00578,"106":0.01156,"107":0.01156,"108":0.01735,"109":0.08673,"110":0.0636,"111":1.25469,"112":2.85631,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.00578,"9":0.01156,"10":0,"11":0,"12":0,"13":0.01735,"14":0.08095,"15":0.01735,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00578,"10.1":0,"11.1":0.00578,"12.1":0.04626,"13.1":0.19659,"14.1":0.28332,"15.1":0.03469,"15.2-15.3":0.03469,"15.4":0.08673,"15.5":0.1272,"15.6":0.74588,"16.0":0.07517,"16.1":0.18502,"16.2":0.32957,"16.3":1.75195,"16.4":0.81526,"16.5":0.01156},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00838,"8.1-8.4":0.01675,"9.0-9.2":0.02094,"9.3":0.20101,"10.0-10.2":0.00419,"10.3":0.21776,"11.0-11.2":0.02513,"11.3-11.4":0.05863,"12.0-12.1":0.02931,"12.2-12.5":0.95477,"13.0-13.1":0.01675,"13.2":0.01675,"13.3":0.05444,"13.4-13.7":0.17169,"14.0-14.4":0.34338,"14.5-14.8":0.88777,"15.0-15.1":0.24288,"15.2-15.3":0.28057,"15.4":0.32245,"15.5":0.62814,"15.6":2.40787,"16.0":2.0938,"16.1":5.79984,"16.2":2.9397,"16.3":15.85009,"16.4":6.30654,"16.5":0.15913},P:{"4":0.12745,"20":2.63397,"5.0-5.4":0.02124,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0.02124,"11.1-11.2":0,"12.0":0,"13.0":0.01062,"14.0":0,"15.0":0.01062,"16.0":0.03186,"17.0":0.02124,"18.0":0.02124,"19.0":0.0531},I:{"0":0,"3":0,"4":0.01816,"2.1":0,"2.2":0,"2.3":0.00605,"4.1":0.01211,"4.2-4.3":0.03632,"4.4":0,"4.4.3-4.4.4":0.19974},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01272,"9":0.01272,"10":0,"11":0.10176,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00422},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.48507},Q:{"13.1":0.00422},O:{"0":0.07592},H:{"0":0.13977},L:{"0":23.0778}}; diff --git a/node_modules/caniuse-lite/data/regions/CD.js b/node_modules/caniuse-lite/data/regions/CD.js new file mode 100644 index 0000000..c6d823e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00342,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00342,"111":0.05127,"112":0.03247,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00171,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00171,"77":0,"78":0,"79":0.00171,"80":0,"81":0.00342,"83":0.00171,"84":0,"85":0.00171,"86":0,"87":0.00171,"88":0.00171,"89":0,"90":0,"91":0.00171,"92":0.00342,"93":0,"94":0.00171,"95":0.00342,"96":0,"97":0,"98":0,"99":0,"100":0.00171,"101":0,"102":0.00171,"103":0.00342,"104":0.00171,"105":0.00171,"106":0.00171,"107":0.00342,"108":0.00513,"109":0.04102,"110":0.00513,"111":0.14014,"112":0.17261,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0.00171,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00684,"25":0.00171,"26":0.00855,"27":0.00855,"28":0.01025,"29":0.00171,"30":0.02222,"31":0.00342,"32":0.00342,"33":0.00513,"34":0,"35":0,"36":0,"37":0.01196,"38":0.00855,"39":0,"40":0,"41":0,"42":0.01538,"43":0,"44":0,"45":0.00171,"46":0.00171,"47":0.00342,"48":0,"49":0,"50":0.00342,"51":0.00684,"52":0,"53":0,"54":0.00342,"55":0.01025,"56":0.00342,"57":0.00513,"58":0.01196,"60":0.14527,"62":0.00171,"63":0.25122,"64":0.03247,"65":0.02393,"66":0.2273,"67":0.19312,"68":0.14868,"69":0.15723,"70":0,"71":0.00171,"72":0.01025,"73":0.01367,"74":0.05298,"75":0.00171,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00684,"96":0.00342,"97":0.04614,"98":0.00171,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00513},B:{"12":0.00171,"13":0.00171,"14":0,"15":0.00171,"16":0,"17":0,"18":0.00342,"79":0,"80":0,"81":0,"83":0,"84":0.00171,"85":0,"86":0,"87":0,"88":0,"89":0.00171,"90":0,"91":0,"92":0.00171,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00171,"109":0.00171,"110":0.00684,"111":0.03418,"112":0.06836,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00342,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00342,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00171,"14.1":0.00171,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00171,"15.6":0.00171,"16.0":0,"16.1":0.01367,"16.2":0.00171,"16.3":0.00513,"16.4":0.00171,"16.5":0.01367},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00241,"8.1-8.4":0.0016,"9.0-9.2":0.0008,"9.3":0.02407,"10.0-10.2":0.0016,"10.3":0.06419,"11.0-11.2":0.0016,"11.3-11.4":0.01123,"12.0-12.1":0.02808,"12.2-12.5":1.36004,"13.0-13.1":0.02006,"13.2":0.02648,"13.3":0.02808,"13.4-13.7":0.09789,"14.0-14.4":0.41483,"14.5-14.8":0.69968,"15.0-15.1":0.23991,"15.2-15.3":0.22627,"15.4":0.17652,"15.5":0.44934,"15.6":0.38755,"16.0":0.32095,"16.1":0.5368,"16.2":0.4381,"16.3":0.93799,"16.4":0.69326,"16.5":0.01525},P:{"4":0.15445,"20":0.19564,"5.0-5.4":0.03089,"6.2-6.4":0.0103,"7.2-7.4":0.05148,"8.2":0,"9.2":0.05148,"10.1":0,"11.1-11.2":0.02059,"12.0":0,"13.0":0.0103,"14.0":0.0103,"15.0":0,"16.0":0.02059,"17.0":0.02059,"18.0":0.02059,"19.0":0.04119},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00162,"4.2-4.3":0.00682,"4.4":0,"4.4.3-4.4.4":0.07181},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00342,"5.5":0},S:{"2.5":0.14095,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04975},Q:{"13.1":0.01658},O:{"0":0.22386},H:{"0":30.27507},L:{"0":53.07573}}; diff --git a/node_modules/caniuse-lite/data/regions/CF.js b/node_modules/caniuse-lite/data/regions/CF.js new file mode 100644 index 0000000..d6edb84 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00185,"38":0.00185,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00185,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0074,"103":0,"104":0,"105":0,"106":0.0074,"107":0,"108":0,"109":0,"110":0.00185,"111":0.16465,"112":0.037,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.0037,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0037,"50":0,"51":0,"52":0.00185,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.0111,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00185,"80":0,"81":0.0037,"83":0,"84":0,"85":0,"86":0.0074,"87":0.00185,"88":0.00185,"89":0,"90":0,"91":0,"92":0.0037,"93":0,"94":0,"95":0,"96":0.00185,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00185,"103":0.00185,"104":0,"105":0.0037,"106":0,"107":0.00185,"108":0.00555,"109":0.0296,"110":0.0111,"111":0.30895,"112":0.4551,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.0074,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00185,"58":0.00185,"60":0.0074,"62":0,"63":0.0074,"64":0,"65":0.00185,"66":0.00555,"67":0.01295,"68":0.00555,"69":0.0148,"70":0,"71":0,"72":0,"73":0.00185,"74":0.00185,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0074,"96":0,"97":0.0185,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00185},B:{"12":0.00555,"13":0.00185,"14":0.00555,"15":0,"16":0,"17":0,"18":0.01295,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00185,"90":0.00185,"91":0,"92":0.00185,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.0074,"108":0,"109":0.0037,"110":0.00925,"111":0.05735,"112":0.12025,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0185,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00185,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00185,"13.1":0.00925,"14.1":0.00925,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.0074,"16.0":0,"16.1":0,"16.2":0.00185,"16.3":0.0111,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.00369,"11.3-11.4":0.00369,"12.0-12.1":0.00185,"12.2-12.5":0.64621,"13.0-13.1":0.00185,"13.2":0,"13.3":0,"13.4-13.7":0.06496,"14.0-14.4":0.28755,"14.5-14.8":0.15332,"15.0-15.1":0.02124,"15.2-15.3":0.03633,"15.4":0.20904,"15.5":0.02863,"15.6":0.10344,"16.0":0.18041,"16.1":0.26846,"16.2":0.16101,"16.3":0.57356,"16.4":0.18811,"16.5":0.00185},P:{"4":0.08693,"20":0.17387,"5.0-5.4":0,"6.2-6.4":0.02173,"7.2-7.4":0,"8.2":0.01087,"9.2":0.04347,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.0326,"17.0":0.01087,"18.0":0.02173,"19.0":0.05433},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00454,"4.2-4.3":0.00324,"4.4":0,"4.4.3-4.4.4":0.05702},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00185,"5.5":0},S:{"2.5":0.4564,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04075},Q:{"13.1":0},O:{"0":0.13855},H:{"0":16.18023},L:{"0":73.88805}}; diff --git a/node_modules/caniuse-lite/data/regions/CG.js b/node_modules/caniuse-lite/data/regions/CG.js new file mode 100644 index 0000000..210867a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CG.js @@ -0,0 +1 @@ +module.exports={C:{"48":0.00475,"60":0.01899,"110":0.00475,"111":1.38167,"112":1.34368,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 113 114 3.5 3.6"},D:{"49":0.02374,"63":0.03324,"64":0.0095,"69":0.02849,"73":0.03324,"76":0.0095,"79":0.75968,"81":0.1187,"83":0.01424,"84":0.0095,"85":0.00475,"86":0.05223,"87":0.03798,"88":0.01899,"89":0.01424,"92":0.0095,"93":0.17568,"95":0.08546,"97":0.12345,"98":0.0095,"99":0.02849,"101":0.0095,"102":0.0095,"103":0.02849,"104":0.01424,"105":0.02374,"106":0.07122,"107":0.09021,"108":0.13294,"109":1.3152,"110":0.09496,"111":6.93208,"112":10.40287,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 65 66 67 68 70 71 72 74 75 77 78 80 90 91 94 96 100 113 114 115 116"},F:{"28":0.01424,"79":0.04273,"85":0.00475,"95":0.23265,"96":0.14719,"97":0.91636,"98":0.04748,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 86 87 88 89 90 91 92 93 94 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02374,"13":0.00475,"18":0.01424,"92":0.01424,"101":0.00475,"105":0.03324,"108":0.00475,"109":0.08546,"110":0.07597,"111":1.80899,"112":4.95216,_:"14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 102 103 104 106 107 113"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 14.1 15.1 15.2-15.3 15.4 15.5 16.0 16.5","13.1":0.66947,"15.6":0.03798,"16.1":0.00475,"16.2":0.00475,"16.3":0.03324,"16.4":0.0095},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00234,"6.0-6.1":0,"7.0-7.1":0.13586,"8.1-8.4":0.00234,"9.0-9.2":0.0082,"9.3":0.11595,"10.0-10.2":0,"10.3":0.2237,"11.0-11.2":0.00703,"11.3-11.4":0.05973,"12.0-12.1":0.05739,"12.2-12.5":4.09563,"13.0-13.1":0.00117,"13.2":0,"13.3":0.00586,"13.4-13.7":0.04919,"14.0-14.4":0.23307,"14.5-14.8":0.17216,"15.0-15.1":0.23892,"15.2-15.3":0.39,"15.4":0.11478,"15.5":0.30685,"15.6":0.58325,"16.0":0.15108,"16.1":0.22018,"16.2":0.17802,"16.3":1.28127,"16.4":0.88776,"16.5":0.02459},P:{"4":0.25957,"20":0.25957,"5.0-5.4":0.03089,"6.2-6.4":0.0103,"7.2-7.4":0.079,"8.2":0,"9.2":0.05148,"10.1":0,"11.1-11.2":0.01129,"12.0":0,"13.0":0.0103,"14.0":0.01129,"15.0":0,"16.0":0.02059,"17.0":0.02257,"18.0":0.03386,"19.0":0.079},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00577,"4.2-4.3":0.00694,"4.4":0,"4.4.3-4.4.4":0.10282},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0095,_:"6 7 8 9 10 5.5"},S:{"2.5":0.32556,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04201},Q:{"13.1":0.02626},O:{"0":0.19429},H:{"0":0.9694},L:{"0":54.74233}}; diff --git a/node_modules/caniuse-lite/data/regions/CH.js b/node_modules/caniuse-lite/data/regions/CH.js new file mode 100644 index 0000000..8320945 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00639,"49":0,"50":0,"51":0,"52":0.01278,"53":0,"54":0,"55":0.00639,"56":0,"57":0.00639,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00639,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.05112,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00639,"85":0,"86":0,"87":0,"88":0.00639,"89":0.00639,"90":0,"91":0.01278,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00639,"99":0.00639,"100":0,"101":0.00639,"102":0.21087,"103":0.00639,"104":0.00639,"105":0.01278,"106":0.00639,"107":0.01917,"108":0.02556,"109":0.04473,"110":0.0639,"111":2.01285,"112":1.82115,"113":0.01278,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00639,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02556,"50":0,"51":0,"52":0.14058,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00639,"66":0.03195,"67":0.00639,"68":0.00639,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00639,"75":0,"76":0,"77":0.00639,"78":0.00639,"79":0.07029,"80":0.01278,"81":0.01278,"83":0.00639,"84":0.01917,"85":0.01278,"86":0.01917,"87":0.07668,"88":0.01917,"89":0.01278,"90":0.01278,"91":0.01278,"92":0.01278,"93":0.01278,"94":0.08307,"95":0.00639,"96":0.01278,"97":0.01278,"98":0.01278,"99":0.02556,"100":0.01917,"101":0.02556,"102":0.02556,"103":0.15336,"104":0.02556,"105":0.05751,"106":0.02556,"107":0.04473,"108":0.21726,"109":0.90099,"110":0.35145,"111":9.2655,"112":7.46352,"113":0.00639,"114":0.00639,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00639,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00639,"70":0,"71":0,"72":0,"73":0,"74":0.00639,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00639,"95":0.01917,"96":0.21726,"97":0.65817,"98":0.02556,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00639,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00639,"91":0,"92":0.01278,"93":0.00639,"94":0,"95":0,"96":0.00639,"97":0,"98":0.01278,"99":0.00639,"100":0.00639,"101":0,"102":0.01917,"103":0.00639,"104":0,"105":0.01278,"106":0.01278,"107":0.03195,"108":0.05112,"109":0.19809,"110":0.18531,"111":3.195,"112":5.24619,"113":0.00639},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01917,"14":0.08946,"15":0.01917,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.01278,"10.1":0,"11.1":0.00639,"12.1":0.09585,"13.1":0.23643,"14.1":0.32589,"15.1":0.04473,"15.2-15.3":0.05112,"15.4":0.08946,"15.5":0.15975,"15.6":0.71568,"16.0":0.10863,"16.1":0.23004,"16.2":0.34506,"16.3":1.54638,"16.4":0.87543,"16.5":0.01278},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00697,"9.0-9.2":0.38707,"9.3":0.11508,"10.0-10.2":0,"10.3":0.10461,"11.0-11.2":0,"11.3-11.4":0.07323,"12.0-12.1":0.01046,"12.2-12.5":0.4603,"13.0-13.1":0.00697,"13.2":0.00349,"13.3":0.02441,"13.4-13.7":0.07323,"14.0-14.4":0.272,"14.5-14.8":0.60676,"15.0-15.1":0.16738,"15.2-15.3":0.25805,"15.4":0.26851,"15.5":0.60327,"15.6":1.71218,"16.0":2.53863,"16.1":4.66578,"16.2":2.69904,"16.3":12.38977,"16.4":5.98391,"16.5":0.13251},P:{"4":0.10275,"20":3.06184,"5.0-5.4":0.02055,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0.02055,"10.1":0,"11.1-11.2":0.01027,"12.0":0,"13.0":0.01027,"14.0":0.02055,"15.0":0.01027,"16.0":0.01027,"17.0":0.02055,"18.0":0.0411,"19.0":0.13357},I:{"0":0,"3":0,"4":0.00467,"2.1":0,"2.2":0.00935,"2.3":0.00234,"4.1":0.01636,"4.2-4.3":0.01402,"4.4":0,"4.4.3-4.4.4":0.07244},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00639,"9":0,"10":0,"11":0.09585,"5.5":0},S:{"2.5":0.00361,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.62092},Q:{"13.1":0},O:{"0":0.05054},H:{"0":0.19139},L:{"0":20.11639}}; diff --git a/node_modules/caniuse-lite/data/regions/CI.js b/node_modules/caniuse-lite/data/regions/CI.js new file mode 100644 index 0000000..a0a8d22 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00299,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.00299,"52":0.00299,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00299,"67":0,"68":0.00597,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0.00299,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00299,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00597,"95":0,"96":0,"97":0.00299,"98":0,"99":0,"100":0.00597,"101":0,"102":0.01494,"103":0.00299,"104":0,"105":0.00299,"106":0.00299,"107":0.04182,"108":0,"109":0.00299,"110":0.00896,"111":0.25688,"112":0.20909,"113":0.00597,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00597,"50":0.00299,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.02688,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00299,"64":0.00597,"65":0,"66":0,"67":0.00299,"68":0,"69":0.00597,"70":0.00299,"71":0,"72":0.00299,"73":0,"74":0.00597,"75":0,"76":0,"77":0,"78":0,"79":0.02091,"80":0.00299,"81":0.02091,"83":0.00299,"84":0.00299,"85":0.00299,"86":0.00597,"87":0.08662,"88":0.00896,"89":0.00299,"90":0.00597,"91":0.00299,"92":0.01494,"93":0.00896,"94":0.00299,"95":0.02091,"96":0.00597,"97":0.00597,"98":0.00299,"99":0.00597,"100":0.01195,"101":0.01792,"102":0.00896,"103":0.04182,"104":0.02688,"105":0.0239,"106":0.03286,"107":0.0239,"108":0.03584,"109":0.94389,"110":0.05078,"111":1.35909,"112":1.67571,"113":0.00299,"114":0.00597,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0.00299,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00299,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.01494,"62":0,"63":0.00896,"64":0,"65":0.00299,"66":0.00597,"67":0.00896,"68":0.01195,"69":0.02688,"70":0,"71":0,"72":0,"73":0,"74":0.00299,"75":0,"76":0,"77":0,"78":0,"79":0.00299,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03883,"96":0.02091,"97":0.11649,"98":0.00597,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00299,"16":0,"17":0,"18":0.00597,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00597,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00299,"106":0,"107":0,"108":0.00299,"109":0.03286,"110":0.01195,"111":0.23896,"112":0.60039,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0.00299,_:"0","3.1":0,"3.2":0,"5.1":0.00299,"6.1":0,"7.1":0.00896,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01195,"14.1":0.00597,"15.1":0.00299,"15.2-15.3":0,"15.4":0.00299,"15.5":0.00299,"15.6":0.0239,"16.0":0.00299,"16.1":0.00299,"16.2":0.01792,"16.3":0.02688,"16.4":0.02091,"16.5":0.00299},G:{"8":0.00259,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00776,"6.0-6.1":0.00259,"7.0-7.1":0.02845,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07242,"10.0-10.2":0,"10.3":0.21983,"11.0-11.2":0.04655,"11.3-11.4":0.02586,"12.0-12.1":0.32328,"12.2-12.5":5.25015,"13.0-13.1":0.02069,"13.2":0.01293,"13.3":0.13707,"13.4-13.7":0.18621,"14.0-14.4":0.77847,"14.5-14.8":0.89485,"15.0-15.1":0.72416,"15.2-15.3":0.80692,"15.4":0.3776,"15.5":0.55605,"15.6":0.89485,"16.0":1.58539,"16.1":1.73022,"16.2":1.35521,"16.3":4.25701,"16.4":2.78542,"16.5":0.16552},P:{"4":0.12168,"20":0.79091,"5.0-5.4":0.01014,"6.2-6.4":0,"7.2-7.4":0.1521,"8.2":0,"9.2":0.04056,"10.1":0,"11.1-11.2":0.02028,"12.0":0,"13.0":0.02028,"14.0":0.03042,"15.0":0.06084,"16.0":0.11154,"17.0":0.03042,"18.0":0.08112,"19.0":0.12168},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00383,"4.4":0,"4.4.3-4.4.4":0.08202},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00597,"5.5":0},S:{"2.5":0.03507,_:"3.0-3.1"},J:{"7":0,"10":0.01403},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.29455},Q:{"13.1":0.01403},O:{"0":0.15429},H:{"0":1.70634},L:{"0":64.95158}}; diff --git a/node_modules/caniuse-lite/data/regions/CK.js b/node_modules/caniuse-lite/data/regions/CK.js new file mode 100644 index 0000000..a1bb088 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00857,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00428,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00857,"109":0.00857,"110":0.01285,"111":0.37271,"112":0.35129,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00857,"50":0,"51":0,"52":0,"53":0.15422,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00428,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0.00857,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00428,"99":0.01285,"100":0.00857,"101":0.00428,"102":0,"103":0.01714,"104":0,"105":0.05141,"106":0.02999,"107":0.01714,"108":0.05569,"109":0.23134,"110":0.22277,"111":6.57166,"112":6.76872,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00857,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00857,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00428,"109":0,"110":0.00428,"111":0.29988,"112":0.62118,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0257,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01714,"13.1":0.01285,"14.1":0.03427,"15.1":0.00428,"15.2-15.3":0.00428,"15.4":0.00428,"15.5":0.03427,"15.6":0.14994,"16.0":0.00428,"16.1":0.08568,"16.2":0.07283,"16.3":0.17564,"16.4":0.06426,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01443,"11.0-11.2":0,"11.3-11.4":0.00721,"12.0-12.1":0,"12.2-12.5":0.32106,"13.0-13.1":0.02886,"13.2":0,"13.3":0.00721,"13.4-13.7":0.0469,"14.0-14.4":1.29867,"14.5-14.8":1.33475,"15.0-15.1":0.55194,"15.2-15.3":0.8766,"15.4":0.15873,"15.5":0.98843,"15.6":2.51437,"16.0":2.19331,"16.1":4.89888,"16.2":3.55331,"16.3":11.21547,"16.4":4.14493,"16.5":0.01443},P:{"4":0.02022,"20":4.32659,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.09098,"8.2":0,"9.2":0.01011,"10.1":0.09098,"11.1-11.2":0.1112,"12.0":0,"13.0":0.05054,"14.0":0.08087,"15.0":0.06065,"16.0":0.08087,"17.0":0.06065,"18.0":0.19207,"19.0":0.28305},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.05141,"11":0.05569,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.31438},Q:{"13.1":0},O:{"0":0.13147},H:{"0":0.02706},L:{"0":40.60355}}; diff --git a/node_modules/caniuse-lite/data/regions/CL.js b/node_modules/caniuse-lite/data/regions/CL.js new file mode 100644 index 0000000..6062d44 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00475,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00475,"74":0,"75":0,"76":0,"77":0,"78":0.00475,"79":0,"80":0,"81":0,"82":0.00475,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00475,"103":0.00475,"104":0.01899,"105":0.00475,"106":0.00475,"107":0,"108":0.00475,"109":0.01424,"110":0.02849,"111":0.38459,"112":0.33711,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0095,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02374,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00475,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00475,"68":0.00475,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00475,"75":0,"76":0.00475,"77":0,"78":0,"79":0.07122,"80":0.00475,"81":0.00475,"83":0.00475,"84":0.01424,"85":0.0095,"86":0.01899,"87":0.02374,"88":0.00475,"89":0.00475,"90":0.00475,"91":0.02849,"92":0.00475,"93":0.00475,"94":0.09021,"95":0.00475,"96":0.0095,"97":0.0095,"98":0.0095,"99":0.02374,"100":0.01424,"101":0.0095,"102":0.01899,"103":0.05698,"104":0.01424,"105":0.02374,"106":0.02374,"107":0.05223,"108":0.09971,"109":1.0683,"110":0.16143,"111":5.43171,"112":6.58548,"113":0.00475,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00475,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00475,"70":0,"71":0,"72":0,"73":0,"74":0.00475,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00475,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.0095,"95":0.03324,"96":0.69796,"97":1.40541,"98":0.03324,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00475,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00475,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00475,"105":0,"106":0,"107":0.00475,"108":0.00475,"109":0.01899,"110":0.02849,"111":0.47005,"112":1.06355,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01424,"15":0.00475,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00475,"13.1":0.02849,"14.1":0.05698,"15.1":0.0095,"15.2-15.3":0.0095,"15.4":0.01424,"15.5":0.02374,"15.6":0.08546,"16.0":0.01424,"16.1":0.04273,"16.2":0.03798,"16.3":0.21366,"16.4":0.1092,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00645,"6.0-6.1":0.00161,"7.0-7.1":0.00483,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07735,"10.0-10.2":0,"10.3":0.01611,"11.0-11.2":0.00806,"11.3-11.4":0.00645,"12.0-12.1":0.00645,"12.2-12.5":0.2675,"13.0-13.1":0.00322,"13.2":0.00161,"13.3":0.01934,"13.4-13.7":0.06768,"14.0-14.4":0.1547,"14.5-14.8":0.40447,"15.0-15.1":0.05962,"15.2-15.3":0.12891,"15.4":0.14825,"15.5":0.28845,"15.6":0.88628,"16.0":0.92174,"16.1":2.01428,"16.2":1.157,"16.3":5.93811,"16.4":2.57989,"16.5":0.07574},P:{"4":0.14261,"20":1.60946,"5.0-5.4":0.01019,"6.2-6.4":0,"7.2-7.4":0.05093,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.03056,"12.0":0.01019,"13.0":0.04075,"14.0":0.03056,"15.0":0.01019,"16.0":0.07131,"17.0":0.03056,"18.0":0.04075,"19.0":0.11205},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02022,"4.2-4.3":0.00809,"4.4":0,"4.4.3-4.4.4":0.08493},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01023,"9":0.00511,"10":0,"11":0.05113,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.18382},Q:{"13.1":0},O:{"0":0.02626},H:{"0":0.18397},L:{"0":61.18682}}; diff --git a/node_modules/caniuse-lite/data/regions/CM.js b/node_modules/caniuse-lite/data/regions/CM.js new file mode 100644 index 0000000..a6ea06b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00726,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00726,"48":0,"49":0,"50":0,"51":0.00242,"52":0.01935,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00242,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00242,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00242,"97":0,"98":0,"99":0,"100":0,"101":0.00242,"102":0.02177,"103":0.00242,"104":0.00242,"105":0.00242,"106":0.00242,"107":0.00242,"108":0.01935,"109":0.0121,"110":0.02177,"111":0.21771,"112":0.15724,"113":0.00726,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00242,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00484,"39":0.00726,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00242,"47":0,"48":0,"49":0.00242,"50":0.00242,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00968,"57":0,"58":0.00242,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00484,"65":0,"66":0,"67":0.00242,"68":0.01451,"69":0.00242,"70":0.00484,"71":0,"72":0.00484,"73":0,"74":0.00484,"75":0.00242,"76":0.00242,"77":0.00242,"78":0,"79":0.01451,"80":0.00242,"81":0.00968,"83":0,"84":0,"85":0.01935,"86":0.00242,"87":0.00484,"88":0.00242,"89":0,"90":0,"91":0.00242,"92":0.00242,"93":0.00242,"94":0.00242,"95":0.00484,"96":0.00242,"97":0.00726,"98":0.00242,"99":0.00484,"100":0.00484,"101":0.00484,"102":0.00484,"103":0.00968,"104":0.00484,"105":0.0121,"106":0.00968,"107":0.0121,"108":0.01693,"109":0.35317,"110":0.03629,"111":0.55637,"112":0.58056,"113":0.00242,"114":0.00242,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00242,"37":0.00484,"38":0.00484,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00484,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00242,"60":0.02419,"62":0,"63":0.01693,"64":0.00726,"65":0.01451,"66":0.01935,"67":0.05564,"68":0.03145,"69":0.04838,"70":0.00242,"71":0,"72":0.00242,"73":0,"74":0.00242,"75":0.03145,"76":0,"77":0,"78":0,"79":0.00242,"80":0,"81":0,"82":0,"83":0,"84":0.00242,"85":0.00242,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00242,"95":0.02419,"96":0.01451,"97":0.11127,"98":0.00484,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00242},B:{"12":0.00484,"13":0.00242,"14":0.00484,"15":0.00484,"16":0.00242,"17":0.00242,"18":0.00968,"79":0,"80":0,"81":0,"83":0,"84":0.00242,"85":0,"86":0,"87":0,"88":0,"89":0.00242,"90":0,"91":0,"92":0.00726,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00242,"101":0,"102":0,"103":0.00484,"104":0,"105":0.00242,"106":0,"107":0.00242,"108":0.00484,"109":0.01693,"110":0.03387,"111":0.09434,"112":0.18384,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0.00242,"11":0,"12":0,"13":0,"14":0.00242,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00484,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00242,"14.1":0.00242,"15.1":0,"15.2-15.3":0.00242,"15.4":0,"15.5":0.00242,"15.6":0.00484,"16.0":0,"16.1":0.00242,"16.2":0,"16.3":0.00484,"16.4":0.00242,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00554,"7.0-7.1":0.02218,"8.1-8.4":0.00416,"9.0-9.2":0,"9.3":0.0693,"10.0-10.2":0.01109,"10.3":0.32986,"11.0-11.2":0.02079,"11.3-11.4":0.01802,"12.0-12.1":0.37421,"12.2-12.5":2.88141,"13.0-13.1":0.03881,"13.2":0.12474,"13.3":0.158,"13.4-13.7":0.26472,"14.0-14.4":0.89533,"14.5-14.8":0.84405,"15.0-15.1":0.54607,"15.2-15.3":0.63338,"15.4":0.36451,"15.5":0.60012,"15.6":0.60012,"16.0":0.43242,"16.1":0.70545,"16.2":0.70545,"16.3":1.16559,"16.4":0.46291,"16.5":0.00554},P:{"4":0.21811,"20":0.27004,"5.0-5.4":0.02077,"6.2-6.4":0,"7.2-7.4":0.15579,"8.2":0,"9.2":0.05193,"10.1":0,"11.1-11.2":0.03116,"12.0":0,"13.0":0.01039,"14.0":0.03116,"15.0":0.02077,"16.0":0.03116,"17.0":0.02077,"18.0":0.0727,"19.0":0.10386},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00154,"4.2-4.3":0.01055,"4.4":0,"4.4.3-4.4.4":0.06693},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0508,"5.5":0},S:{"2.5":0.20469,_:"3.0-3.1"},J:{"7":0,"10":0.01516},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21227},Q:{"13.1":0.00758},O:{"0":0.40937},H:{"0":6.50254},L:{"0":73.5969}}; diff --git a/node_modules/caniuse-lite/data/regions/CN.js b/node_modules/caniuse-lite/data/regions/CN.js new file mode 100644 index 0000000..fdb294f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.20597,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00349,"53":0,"54":0,"55":0.03491,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00349,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00349,"79":0,"80":0,"81":0,"82":0.00349,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00349,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01396,"103":0,"104":0.00349,"105":0,"106":0.00349,"107":0.00349,"108":0.00349,"109":0.00698,"110":0.05237,"111":0.16408,"112":0.15011,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00349,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.00349,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.00698,"40":0.00698,"41":0.00698,"42":0.00698,"43":0.00698,"44":0.00698,"45":0.00698,"46":0.00698,"47":0.00698,"48":0.03142,"49":0.02444,"50":0.03142,"51":0.00698,"52":0.00698,"53":0.01746,"54":0.00698,"55":0.01746,"56":0.00698,"57":0.02095,"58":0.01396,"59":0.01047,"60":0.02793,"61":0.05935,"62":0.00698,"63":0.01047,"64":0,"65":0.00349,"66":0.00349,"67":0.00698,"68":0.00349,"69":0.26532,"70":0.11171,"71":0.00349,"72":0.15011,"73":0.01746,"74":0.13964,"75":0.01746,"76":0.00698,"77":0.02095,"78":0.09077,"79":0.06284,"80":0.02095,"81":0.02793,"83":0.06633,"84":0.01047,"85":0.01047,"86":0.09775,"87":0.03142,"88":0.00698,"89":0.01396,"90":0.04189,"91":0.06982,"92":0.0768,"93":0.01047,"94":0.03142,"95":0.01396,"96":0.02793,"97":0.05935,"98":0.06633,"99":0.13266,"100":0.05586,"101":0.04189,"102":0.03491,"103":0.09775,"104":0.03142,"105":0.04189,"106":0.04538,"107":0.07331,"108":0.09077,"109":0.1955,"110":0.08728,"111":0.583,"112":0.47129,"113":0.00698,"114":0.00349,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0.01047,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00349,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00349,"96":0.00349,"97":0.01396,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00349,"16":0.00349,"17":0.00349,"18":0.02444,"79":0,"80":0,"81":0,"83":0,"84":0.00349,"85":0,"86":0.00349,"87":0,"88":0,"89":0.00349,"90":0,"91":0,"92":0.01746,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00349,"100":0.00349,"101":0.01396,"102":0.00349,"103":0.00698,"104":0.00349,"105":0.00698,"106":0.01746,"107":0.05237,"108":0.15011,"109":0.09077,"110":0.19201,"111":0.64933,"112":1.65823,"113":0.00349},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0.00349,"10":0,"11":0,"12":0,"13":0.00349,"14":0.02095,"15":0.00349,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00349,"13.1":0.02095,"14.1":0.02444,"15.1":0.00698,"15.2-15.3":0.00349,"15.4":0.01396,"15.5":0.02444,"15.6":0.05586,"16.0":0.01047,"16.1":0.0384,"16.2":0.03491,"16.3":0.12219,"16.4":0.04887,"16.5":0.00349},G:{"8":0,"3.2":0,"4.0-4.1":0.00533,"4.2-4.3":0.08259,"5.0-5.1":0.03197,"6.0-6.1":0.04529,"7.0-7.1":0.00533,"8.1-8.4":0.01332,"9.0-9.2":0.08259,"9.3":0.03463,"10.0-10.2":0.0293,"10.3":0.2078,"11.0-11.2":0.30903,"11.3-11.4":0.10656,"12.0-12.1":0.1412,"12.2-12.5":0.53015,"13.0-13.1":0.05861,"13.2":0.1332,"13.3":0.22378,"13.4-13.7":0.78591,"14.0-14.4":1.26811,"14.5-14.8":1.17486,"15.0-15.1":0.75394,"15.2-15.3":0.7193,"15.4":1.07096,"15.5":0.96174,"15.6":1.35336,"16.0":1.63309,"16.1":3.33277,"16.2":2.16324,"16.3":5.89296,"16.4":2.42166,"16.5":0.03996},P:{"4":0,"20":0.31159,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.01113,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0.01113,"18.0":0,"19.0":0.01113},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.09533,"4.1":0.1271,"4.2-4.3":0.03178,"4.4":0,"4.4.3-4.4.4":0.44485},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.02126,"7":0.02126,"8":0.06378,"9":0.70153,"10":0.02126,"11":2.01957,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0.00651,"11":0},R:{_:"0"},M:{"0":0.16273},Q:{"13.1":3.70362},O:{"0":10.1215},H:{"0":0.08627},L:{"0":41.47618}}; diff --git a/node_modules/caniuse-lite/data/regions/CO.js b/node_modules/caniuse-lite/data/regions/CO.js new file mode 100644 index 0000000..cd6cc4d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00431,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00431,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00431,"74":0,"75":0,"76":0,"77":0,"78":0.00431,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00862,"98":0,"99":0.00431,"100":0,"101":0,"102":0.00862,"103":0,"104":0.01293,"105":0.00431,"106":0.00431,"107":0.00431,"108":0.00431,"109":0.00862,"110":0.01724,"111":0.20693,"112":0.20693,"113":0.00431,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00862,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00431,"45":0,"46":0,"47":0.00431,"48":0,"49":0.01293,"50":0,"51":0,"52":0,"53":0.00431,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00431,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00862,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00431,"75":0.00431,"76":0.00431,"77":0.00431,"78":0,"79":0.09484,"80":0.00431,"81":0.00862,"83":0.00431,"84":0.00431,"85":0.00862,"86":0.00862,"87":0.02156,"88":0.01293,"89":0.01293,"90":0.00431,"91":0.02156,"92":0.00431,"93":0.00862,"94":0.00431,"95":0.00862,"96":0.01293,"97":0.01724,"98":0.01724,"99":0.02156,"100":0.01724,"101":0.01293,"102":0.01724,"103":0.05604,"104":0.02587,"105":0.03018,"106":0.03018,"107":0.03449,"108":0.05173,"109":1.06913,"110":0.12502,"111":4.53086,"112":6.13455,"113":0.00862,"114":0.00431,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00431,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00431,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02156,"96":0.25004,"97":0.61647,"98":0.01293,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00431,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00431,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00431,"108":0.00431,"109":0.02156,"110":0.03449,"111":0.33626,"112":0.81478,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00862,"15":0.00431,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01724,"14.1":0.03449,"15.1":0.00431,"15.2-15.3":0.00431,"15.4":0.00862,"15.5":0.00862,"15.6":0.06035,"16.0":0.00862,"16.1":0.02156,"16.2":0.03018,"16.3":0.1164,"16.4":0.07329,"16.5":0},G:{"8":0.00127,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00254,"6.0-6.1":0,"7.0-7.1":0.01018,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05088,"10.0-10.2":0,"10.3":0.05851,"11.0-11.2":0.00763,"11.3-11.4":0.01272,"12.0-12.1":0.00254,"12.2-12.5":0.25185,"13.0-13.1":0.00127,"13.2":0.00382,"13.3":0.00763,"13.4-13.7":0.04197,"14.0-14.4":0.08522,"14.5-14.8":0.22641,"15.0-15.1":0.06105,"15.2-15.3":0.11193,"15.4":0.08395,"15.5":0.18443,"15.6":0.53804,"16.0":0.89546,"16.1":1.60904,"16.2":0.91582,"16.3":4.56636,"16.4":2.1051,"16.5":0.03943},P:{"4":0.21096,"20":1.01462,"5.0-5.4":0.02009,"6.2-6.4":0,"7.2-7.4":0.10046,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02009,"12.0":0,"13.0":0.01005,"14.0":0.02009,"15.0":0.01005,"16.0":0.03014,"17.0":0.05023,"18.0":0.02009,"19.0":0.07032},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00707,"4.2-4.3":0.01414,"4.4":0,"4.4.3-4.4.4":0.0919},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00431,"9":0,"10":0,"11":0.02587,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12516},Q:{"13.1":0},O:{"0":0.03413},H:{"0":0.12388},L:{"0":69.16785}}; diff --git a/node_modules/caniuse-lite/data/regions/CR.js b/node_modules/caniuse-lite/data/regions/CR.js new file mode 100644 index 0000000..a35751f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.0046,"53":0,"54":0,"55":0,"56":0.0092,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.0184,"74":0,"75":0,"76":0,"77":0,"78":0.0046,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.0138,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0138,"103":0,"104":0.0184,"105":0,"106":0.0046,"107":0,"108":0.0046,"109":0.02761,"110":0.0184,"111":0.43249,"112":0.40489,"113":0.02301,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.0046,"48":0,"49":0.0092,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0046,"68":0.0092,"69":0,"70":0,"71":0,"72":0,"73":0.0046,"74":0,"75":0,"76":0.0046,"77":0.0046,"78":0.0046,"79":0.0138,"80":0.0046,"81":0.0046,"83":0.0046,"84":0,"85":0.0046,"86":0,"87":0.0138,"88":0.0046,"89":0,"90":0.0046,"91":0.0046,"92":0.0046,"93":0.0092,"94":0.02301,"95":0,"96":0.0138,"97":0.0092,"98":0.0092,"99":0.0184,"100":0.0046,"101":0.0046,"102":0.0092,"103":0.04141,"104":0.0092,"105":0.0092,"106":0.0138,"107":0.02301,"108":0.04141,"109":0.4601,"110":0.12423,"111":5.42458,"112":6.21595,"113":0.0092,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.0092,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0046,"69":0.0092,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02301,"96":0.33127,"97":0.72696,"98":0.0138,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.0046,"16":0,"17":0.0138,"18":0.0046,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0046,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.0046,"106":0.0046,"107":0,"108":0.0092,"109":0.02301,"110":0.03221,"111":0.48311,"112":1.25147,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0138,"14":0.0184,"15":0.0046,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0138,"13.1":0.11042,"14.1":0.04601,"15.1":0.0184,"15.2-15.3":0.0092,"15.4":0.0138,"15.5":0.08282,"15.6":0.16564,"16.0":0.04141,"16.1":0.08282,"16.2":0.08742,"16.3":0.50611,"16.4":0.24385,"16.5":0.0046},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0106,"6.0-6.1":0.01272,"7.0-7.1":0.03393,"8.1-8.4":0.00636,"9.0-9.2":0,"9.3":0.07846,"10.0-10.2":0,"10.3":0.02757,"11.0-11.2":0.00636,"11.3-11.4":0.04241,"12.0-12.1":0,"12.2-12.5":0.32869,"13.0-13.1":0,"13.2":0.00212,"13.3":0.01909,"13.4-13.7":0.02969,"14.0-14.4":0.0827,"14.5-14.8":0.3499,"15.0-15.1":0.04665,"15.2-15.3":0.10603,"15.4":0.12936,"15.5":0.25659,"15.6":0.92033,"16.0":1.03484,"16.1":2.61892,"16.2":1.21933,"16.3":8.67953,"16.4":4.12453,"16.5":0.12299},P:{"4":0.15273,"20":2.73905,"5.0-5.4":0,"6.2-6.4":0.01018,"7.2-7.4":0.11201,"8.2":0,"9.2":0.05091,"10.1":0,"11.1-11.2":0.04073,"12.0":0.01018,"13.0":0.02036,"14.0":0.02036,"15.0":0.01018,"16.0":0.04073,"17.0":0.13237,"18.0":0.03055,"19.0":0.11201},I:{"0":0,"3":0,"4":0.00966,"2.1":0,"2.2":0.01932,"2.3":0.00966,"4.1":0.01449,"4.2-4.3":0.02415,"4.4":0,"4.4.3-4.4.4":0.12555},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0184,"9":0.0046,"10":0.0046,"11":0.02761,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.0054},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.38873},Q:{"13.1":0},O:{"0":0.03779},H:{"0":0.21979},L:{"0":55.15772}}; diff --git a/node_modules/caniuse-lite/data/regions/CU.js b/node_modules/caniuse-lite/data/regions/CU.js new file mode 100644 index 0000000..d66f2a6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00264,"34":0.00264,"35":0.00264,"36":0,"37":0,"38":0.00264,"39":0,"40":0.00264,"41":0,"42":0,"43":0,"44":0,"45":0.00264,"46":0.00264,"47":0.00528,"48":0,"49":0,"50":0.00791,"51":0,"52":0.0211,"53":0,"54":0.02638,"55":0,"56":0.00264,"57":0.01055,"58":0.00264,"59":0.00264,"60":0.00264,"61":0.00264,"62":0.00264,"63":0.00528,"64":0.00791,"65":0.00264,"66":0.00264,"67":0.00528,"68":0.01319,"69":0,"70":0.00264,"71":0.00528,"72":0.02902,"73":0.00264,"74":0,"75":0.00264,"76":0,"77":0.00264,"78":0.00264,"79":0.00264,"80":0.00528,"81":0.00264,"82":0.00264,"83":0.00264,"84":0.00528,"85":0.00264,"86":0.00264,"87":0.00264,"88":0.00791,"89":0.00528,"90":0.00528,"91":0.01055,"92":0.00264,"93":0.00528,"94":0.01055,"95":0.01319,"96":0.01055,"97":0.01583,"98":0.01055,"99":0.03693,"100":0.01847,"101":0.02638,"102":0.04748,"103":0.00528,"104":0.08442,"105":0.01319,"106":0.02374,"107":0.02638,"108":0.03429,"109":0.03957,"110":0.06859,"111":0.97606,"112":0.60674,"113":0.01319,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.00791,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00264,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00264,"69":0,"70":0,"71":0.00264,"72":0.00264,"73":0.00264,"74":0.00264,"75":0.00791,"76":0.02638,"77":0.00791,"78":0.00264,"79":0.00791,"80":0.00264,"81":0.01055,"83":0.00264,"84":0.00264,"85":0.00264,"86":0.00528,"87":0.00791,"88":0.02902,"89":0.01055,"90":0.0211,"91":0.00791,"92":0.00528,"93":0.00264,"94":0.00264,"95":0.01055,"96":0.00791,"97":0.00791,"98":0.00264,"99":0.00264,"100":0.01055,"101":0.00528,"102":0.00791,"103":0.01055,"104":0.00791,"105":0.00791,"106":0.01319,"107":0.0211,"108":0.02902,"109":0.18994,"110":0.06595,"111":0.51969,"112":0.53288,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0.00264,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.00264,"32":0,"33":0,"34":0,"35":0,"36":0.00264,"37":0.00264,"38":0.00528,"39":0,"40":0,"41":0,"42":0.00264,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00264,"51":0,"52":0,"53":0,"54":0.00264,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00264,"64":0.00264,"65":0,"66":0,"67":0.00264,"68":0.00791,"69":0.01319,"70":0,"71":0,"72":0,"73":0.00264,"74":0.00791,"75":0,"76":0,"77":0,"78":0,"79":0.00791,"80":0,"81":0,"82":0,"83":0,"84":0.00264,"85":0.00264,"86":0.00264,"87":0,"88":0,"89":0.00264,"90":0,"91":0,"92":0.00264,"93":0,"94":0.00528,"95":0.01847,"96":0.03166,"97":0.13454,"98":0.00528,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00264,"13":0.00264,"14":0.00264,"15":0.00264,"16":0.00264,"17":0.00528,"18":0.01583,"79":0,"80":0,"81":0,"83":0,"84":0.00791,"85":0.00264,"86":0,"87":0,"88":0,"89":0.00528,"90":0.00528,"91":0,"92":0.02638,"93":0,"94":0,"95":0,"96":0.00264,"97":0,"98":0,"99":0,"100":0.01055,"101":0,"102":0,"103":0,"104":0.00264,"105":0.00264,"106":0.00264,"107":0.00528,"108":0.01055,"109":0.01319,"110":0.02638,"111":0.12399,"112":0.20313,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00264,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00528,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00264,"14.1":0.00264,"15.1":0,"15.2-15.3":0,"15.4":0.00264,"15.5":0.04221,"15.6":0.02374,"16.0":0,"16.1":0.00264,"16.2":0.08705,"16.3":0.08178,"16.4":0.02902,"16.5":0.00264},G:{"8":0.00189,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00284,"7.0-7.1":0.02368,"8.1-8.4":0.02462,"9.0-9.2":0.00189,"9.3":0.03883,"10.0-10.2":0.00189,"10.3":0.12123,"11.0-11.2":0.02652,"11.3-11.4":0.00663,"12.0-12.1":0.01231,"12.2-12.5":1.05698,"13.0-13.1":0.02557,"13.2":0.03694,"13.3":0.15343,"13.4-13.7":0.15438,"14.0-14.4":0.71696,"14.5-14.8":0.36748,"15.0-15.1":0.26803,"15.2-15.3":0.38926,"15.4":0.20173,"15.5":0.35422,"15.6":0.42809,"16.0":0.31728,"16.1":0.80505,"16.2":0.54459,"16.3":1.558,"16.4":0.97458,"16.5":0.01231},P:{"4":0.28399,"20":0.86211,"5.0-5.4":0.02028,"6.2-6.4":0.02028,"7.2-7.4":0.23328,"8.2":0.01014,"9.2":0.06085,"10.1":0,"11.1-11.2":0.06085,"12.0":0.01014,"13.0":0.04057,"14.0":0.06085,"15.0":0.071,"16.0":0.15214,"17.0":0.13185,"18.0":0.08114,"19.0":0.2637},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00533,"4.2-4.3":0.02663,"4.4":0,"4.4.3-4.4.4":0.17928},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0.00264,"10":0,"11":0.01319,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.65522},Q:{"13.1":0.00736},O:{"0":0.16196},H:{"0":0.82244},L:{"0":81.01957}}; diff --git a/node_modules/caniuse-lite/data/regions/CV.js b/node_modules/caniuse-lite/data/regions/CV.js new file mode 100644 index 0000000..00a771a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CV.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00529,"53":0,"54":0,"55":0,"56":0.01058,"57":0,"58":0,"59":0,"60":0,"61":0.00529,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02117,"103":0,"104":0.07938,"105":0,"106":0.00529,"107":0,"108":0,"109":0,"110":0.14818,"111":0.598,"112":0.35456,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00529,"47":0,"48":0,"49":0.00529,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00529,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.01588,"71":0.00529,"72":0,"73":0,"74":0.01058,"75":0,"76":0.01058,"77":0,"78":0.01058,"79":0.01588,"80":0,"81":0.43394,"83":0.00529,"84":0,"85":0,"86":0.00529,"87":0.0688,"88":0,"89":0.00529,"90":0.01058,"91":0.04234,"92":0,"93":0.42865,"94":0.01058,"95":0.01058,"96":0.00529,"97":0.02646,"98":0.05292,"99":0.02646,"100":0.01588,"101":0.00529,"102":0.01588,"103":0.19051,"104":0.02646,"105":0.21168,"106":0.05821,"107":0.4657,"108":0.04234,"109":1.16424,"110":0.12701,"111":6.66263,"112":10.17122,"113":0.00529,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01058,"70":0,"71":0,"72":0,"73":0,"74":0.08996,"75":0,"76":0,"77":0,"78":0,"79":0.0635,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00529,"96":0.0635,"97":0.22226,"98":0.01588,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0.00529,"14":0,"15":0.00529,"16":0,"17":0,"18":0.00529,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00529,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01588,"93":0,"94":0,"95":0,"96":0.02646,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00529,"103":0,"104":0,"105":0.08467,"106":0,"107":0.01588,"108":0.03175,"109":0.03175,"110":0.03704,"111":0.80438,"112":1.60348,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00529,"14":0.00529,"15":0.00529,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.03175,"13.1":0.07409,"14.1":0.03704,"15.1":0,"15.2-15.3":0.01058,"15.4":0.01588,"15.5":0.00529,"15.6":0.07938,"16.0":0.00529,"16.1":0.03175,"16.2":0.02646,"16.3":0.14288,"16.4":0.10055,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00154,"6.0-6.1":0,"7.0-7.1":0.06167,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.12796,"10.0-10.2":0,"10.3":0.09096,"11.0-11.2":0.0555,"11.3-11.4":0.04008,"12.0-12.1":0.03546,"12.2-12.5":1.94256,"13.0-13.1":0.00617,"13.2":0.00617,"13.3":0.1958,"13.4-13.7":0.04163,"14.0-14.4":1.22412,"14.5-14.8":0.20659,"15.0-15.1":0.08479,"15.2-15.3":0.31605,"15.4":0.43785,"15.5":0.44556,"15.6":1.1532,"16.0":0.79707,"16.1":1.4415,"16.2":0.59664,"16.3":3.27614,"16.4":1.05145,"16.5":0.10946},P:{"4":0.23934,"20":1.10304,"5.0-5.4":0.02081,"6.2-6.4":0.01041,"7.2-7.4":0.14568,"8.2":0,"9.2":0.02081,"10.1":0.01041,"11.1-11.2":0.02081,"12.0":0,"13.0":0.10406,"14.0":0.02081,"15.0":0.04162,"16.0":0.14568,"17.0":0.10406,"18.0":0.10406,"19.0":0.13528},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00858,"4.2-4.3":0.00643,"4.4":0,"4.4.3-4.4.4":0.32488},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01058,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.39076},Q:{"13.1":0},O:{"0":0.10828},H:{"0":0.22732},L:{"0":56.09464}}; diff --git a/node_modules/caniuse-lite/data/regions/CX.js b/node_modules/caniuse-lite/data/regions/CX.js new file mode 100644 index 0000000..c3134ad --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CX.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":6.52,"112":63.04,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":4.35,"112":26.09,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0},P:{"4":0,"20":0,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":0}}; diff --git a/node_modules/caniuse-lite/data/regions/CY.js b/node_modules/caniuse-lite/data/regions/CY.js new file mode 100644 index 0000000..7a32b02 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.05939,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.0099,"89":0.00495,"90":0,"91":0,"92":0,"93":0,"94":0.00495,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0099,"103":0.00495,"104":0,"105":0.00495,"106":0,"107":0,"108":0,"109":0.02475,"110":0.0198,"111":0.58893,"112":0.47016,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.01485,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01485,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00495,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00495,"66":0.00495,"67":0,"68":0.0099,"69":0.00495,"70":0,"71":0,"72":0,"73":0,"74":0.00495,"75":0,"76":0,"77":0.00495,"78":0.00495,"79":0.07424,"80":0,"81":0.0099,"83":0.0099,"84":0.00495,"85":0.00495,"86":0.00495,"87":0.0198,"88":0,"89":0.00495,"90":0.00495,"91":0.02475,"92":0,"93":0.12867,"94":0.07424,"95":0.00495,"96":0.00495,"97":0,"98":0.02969,"99":0.0099,"100":0.01485,"101":0.0099,"102":0.00495,"103":0.03959,"104":0.0198,"105":0.0198,"106":0.02475,"107":0.01485,"108":0.06434,"109":1.55894,"110":0.15837,"111":6.00809,"112":7.49774,"113":0.00495,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01485,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00495,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0099,"68":0.02969,"69":0.03464,"70":0,"71":0,"72":0,"73":0,"74":0.00495,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00495,"95":0.0198,"96":0.13362,"97":0.42067,"98":0.01485,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00495,"16":0,"17":0,"18":0.00495,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01485,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.0099,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.04454,"110":0.0198,"111":0.7374,"112":1.57873,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00495,"14":0.03959,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00495,"13.1":0.18311,"14.1":0.07918,"15.1":0.03959,"15.2-15.3":0.0198,"15.4":0.0198,"15.5":0.02969,"15.6":0.18806,"16.0":0.02475,"16.1":0.06434,"16.2":0.10393,"16.3":0.40582,"16.4":0.2326,"16.5":0.02475},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00206,"7.0-7.1":0.00412,"8.1-8.4":0.00412,"9.0-9.2":0,"9.3":0.07207,"10.0-10.2":0.00412,"10.3":0.08237,"11.0-11.2":0.00412,"11.3-11.4":0.00824,"12.0-12.1":0.0103,"12.2-12.5":0.32124,"13.0-13.1":0.00412,"13.2":0.00206,"13.3":0.04736,"13.4-13.7":0.0556,"14.0-14.4":0.14415,"14.5-14.8":0.52922,"15.0-15.1":0.16474,"15.2-15.3":0.17503,"15.4":0.13179,"15.5":0.27182,"15.6":0.94724,"16.0":1.29936,"16.1":2.27131,"16.2":1.55883,"16.3":7.85591,"16.4":3.44919,"16.5":0.04942},P:{"4":0.12236,"20":4.24191,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.02039,"8.2":0,"9.2":0.0102,"10.1":0,"11.1-11.2":0.02039,"12.0":0,"13.0":0.03059,"14.0":0.03059,"15.0":0.0102,"16.0":0.05098,"17.0":0.05098,"18.0":0.05098,"19.0":0.24473},I:{"0":0,"3":0,"4":0.01159,"2.1":0,"2.2":0.01739,"2.3":0.01159,"4.1":0.01159,"4.2-4.3":0.02898,"4.4":0,"4.4.3-4.4.4":0.09854},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0198,"9":0.00495,"10":0.00495,"11":0.12373,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00505},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.18689},Q:{"13.1":0},O:{"0":0.28286},H:{"0":0.35865},L:{"0":49.26443}}; diff --git a/node_modules/caniuse-lite/data/regions/CZ.js b/node_modules/caniuse-lite/data/regions/CZ.js new file mode 100644 index 0000000..da50b66 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/CZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.07748,"53":0,"54":0,"55":0,"56":0.01107,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00553,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0166,"79":0,"80":0,"81":0.00553,"82":0,"83":0.00553,"84":0,"85":0,"86":0.00553,"87":0,"88":0.00553,"89":0.00553,"90":0,"91":0.02214,"92":0,"93":0,"94":0,"95":0,"96":0.00553,"97":0.00553,"98":0,"99":0.00553,"100":0.00553,"101":0,"102":0.09961,"103":0.00553,"104":0.00553,"105":0.00553,"106":0.00553,"107":0.01107,"108":0.02214,"109":0.0332,"110":0.04427,"111":1.70447,"112":1.47204,"113":0.00553,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00553,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00553,"49":0.0166,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00553,"67":0,"68":0.00553,"69":0,"70":0.00553,"71":0.00553,"72":0.00553,"73":0.00553,"74":0.00553,"75":0.00553,"76":0.00553,"77":0.00553,"78":0.00553,"79":0.05534,"80":0.01107,"81":0.02214,"83":0.0166,"84":0.0166,"85":0.0332,"86":0.0166,"87":0.02767,"88":0.01107,"89":0.02214,"90":0.01107,"91":0.00553,"92":0.01107,"93":0.0166,"94":0.06641,"95":0.02767,"96":0.02214,"97":0.00553,"98":0.00553,"99":0.01107,"100":0.02214,"101":0.01107,"102":0.14942,"103":0.06641,"104":0.0166,"105":0.03874,"106":0.07194,"107":0.03874,"108":0.07194,"109":0.94078,"110":0.22689,"111":7.07799,"112":7.35469,"113":0.00553,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00553,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00553,"68":0.00553,"69":0.01107,"70":0,"71":0,"72":0,"73":0,"74":0.01107,"75":0.01107,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.02214,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00553,"95":0.08854,"96":0.36524,"97":1.18981,"98":0.04427,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01107},B:{"12":0,"13":0,"14":0,"15":0.00553,"16":0,"17":0,"18":0.00553,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00553,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00553,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00553,"105":0.00553,"106":0.0166,"107":0.01107,"108":0.01107,"109":0.09961,"110":0.06641,"111":1.20641,"112":2.74486,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00553,"14":0.0332,"15":0.00553,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.0166,"10.1":0,"11.1":0,"12.1":0.00553,"13.1":0.04981,"14.1":0.07194,"15.1":0.01107,"15.2-15.3":0.01107,"15.4":0.0332,"15.5":0.03874,"15.6":0.16602,"16.0":0.02767,"16.1":0.08854,"16.2":0.11621,"16.3":0.49253,"16.4":0.29884,"16.5":0.01107},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00375,"8.1-8.4":0.00938,"9.0-9.2":0.00375,"9.3":0.03191,"10.0-10.2":0.00188,"10.3":0.10135,"11.0-11.2":0.01126,"11.3-11.4":0.01126,"12.0-12.1":0.02065,"12.2-12.5":0.23648,"13.0-13.1":0.00375,"13.2":0.00375,"13.3":0.01501,"13.4-13.7":0.04504,"14.0-14.4":0.09947,"14.5-14.8":0.24962,"15.0-15.1":0.06194,"15.2-15.3":0.08633,"15.4":0.11449,"15.5":0.24399,"15.6":0.57431,"16.0":1.18052,"16.1":2.55623,"16.2":1.34193,"16.3":6.93109,"16.4":3.4008,"16.5":0.14452},P:{"4":0.10336,"20":2.60468,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02067,"12.0":0,"13.0":0.02067,"14.0":0.03101,"15.0":0.01034,"16.0":0.04134,"17.0":0.05168,"18.0":0.03101,"19.0":0.17571},I:{"0":0,"3":0,"4":0.00985,"2.1":0,"2.2":0.01478,"2.3":0.00985,"4.1":0.01971,"4.2-4.3":0.03942,"4.4":0,"4.4.3-4.4.4":0.28085},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.04533,"9":0.00567,"10":0.06232,"11":0.12465,"5.5":0},S:{"2.5":0.00447,_:"3.0-3.1"},J:{"7":0,"10":0.00447},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.35281},Q:{"13.1":0},O:{"0":0.18311},H:{"0":0.48201},L:{"0":47.13285}}; diff --git a/node_modules/caniuse-lite/data/regions/DE.js b/node_modules/caniuse-lite/data/regions/DE.js new file mode 100644 index 0000000..2851b3b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00548,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00548,"35":0,"36":0,"37":0,"38":0.00548,"39":0,"40":0.01096,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00548,"49":0,"50":0,"51":0,"52":0.04933,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.01096,"60":0.00548,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00548,"67":0,"68":0.01096,"69":0,"70":0,"71":0,"72":0.00548,"73":0,"74":0,"75":0,"76":0,"77":0.00548,"78":0.02741,"79":0.00548,"80":0.00548,"81":0.00548,"82":0.00548,"83":0.00548,"84":0.00548,"85":0,"86":0.01096,"87":0.00548,"88":0.00548,"89":0.00548,"90":0,"91":0.02192,"92":0,"93":0,"94":0.00548,"95":0.00548,"96":0.01096,"97":0.00548,"98":0.01096,"99":0.00548,"100":0.00548,"101":0.00548,"102":0.2302,"103":0.01096,"104":0.01096,"105":0.01644,"106":0.01644,"107":0.01644,"108":0.02741,"109":0.04385,"110":0.0877,"111":2.53222,"112":2.2801,"113":0.00548,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00548,"35":0.01096,"36":0,"37":0,"38":0.00548,"39":0.00548,"40":0.00548,"41":0.00548,"42":0.00548,"43":0.03289,"44":0.01644,"45":0.02192,"46":0,"47":0.00548,"48":0,"49":0.01096,"50":0,"51":0,"52":0.01096,"53":0,"54":0,"55":0,"56":0.00548,"57":0,"58":0,"59":0,"60":0.01644,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.04933,"67":0.00548,"68":0,"69":0.00548,"70":0.00548,"71":0.01096,"72":0.01096,"73":0,"74":0.00548,"75":0.77282,"76":0.00548,"77":0.00548,"78":0.00548,"79":0.04385,"80":0.03837,"81":0.03289,"83":0.01644,"84":0.03289,"85":0.03837,"86":0.03289,"87":0.03289,"88":0.01096,"89":0.01644,"90":0.01644,"91":0.07673,"92":0.01096,"93":0.10962,"94":0.01644,"95":0.00548,"96":0.03837,"97":0.00548,"98":0.00548,"99":0.07673,"100":0.08222,"101":0.01096,"102":0.01644,"103":0.05481,"104":0.02192,"105":0.05481,"106":0.06577,"107":0.04933,"108":0.12606,"109":0.78926,"110":0.21376,"111":4.3848,"112":5.05896,"113":0.01096,"114":0.00548,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00548,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00548,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00548,"69":0.02192,"70":0,"71":0,"72":0,"73":0,"74":0.01096,"75":0.00548,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00548,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00548,"95":0.04933,"96":0.48781,"97":1.24419,"98":0.04385,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00548,"18":0.01096,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00548,"86":0.00548,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00548,"93":0,"94":0,"95":0,"96":0.00548,"97":0.00548,"98":0,"99":0.00548,"100":0,"101":0.00548,"102":0,"103":0.01096,"104":0.00548,"105":0.00548,"106":0.00548,"107":0.01644,"108":0.02741,"109":0.10414,"110":0.07125,"111":1.26063,"112":2.9707,"113":0},E:{"4":0,"5":0,"6":0,"7":0.00548,"8":0.00548,"9":0,"10":0,"11":0,"12":0,"13":0.00548,"14":0.03837,"15":0.01096,_:"0","3.1":0,"3.2":0,"5.1":0.00548,"6.1":0,"7.1":0,"9.1":0.00548,"10.1":0,"11.1":0.01096,"12.1":0.01644,"13.1":0.07125,"14.1":0.10962,"15.1":0.01644,"15.2-15.3":0.01644,"15.4":0.04933,"15.5":0.07125,"15.6":0.36175,"16.0":0.07125,"16.1":0.15895,"16.2":0.21376,"16.3":1.05235,"16.4":0.59195,"16.5":0.00548},G:{"8":0.01723,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01149,"6.0-6.1":0.00862,"7.0-7.1":0.03159,"8.1-8.4":0.11774,"9.0-9.2":0.02585,"9.3":0.07754,"10.0-10.2":0.00287,"10.3":0.08615,"11.0-11.2":0.01436,"11.3-11.4":0.07179,"12.0-12.1":0.00862,"12.2-12.5":0.36471,"13.0-13.1":0.00862,"13.2":0.00574,"13.3":0.02297,"13.4-13.7":0.07467,"14.0-14.4":0.18092,"14.5-14.8":0.40779,"15.0-15.1":0.12061,"15.2-15.3":0.16369,"15.4":0.19241,"15.5":0.36471,"15.6":1.12572,"16.0":1.9614,"16.1":3.51214,"16.2":2.02171,"16.3":10.68289,"16.4":5.70616,"16.5":0.12636},P:{"4":0.17548,"20":4.15982,"5.0-5.4":0.01032,"6.2-6.4":0,"7.2-7.4":0.02064,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01032,"12.0":0.01032,"13.0":0.04129,"14.0":0.03097,"15.0":0.01032,"16.0":0.03097,"17.0":0.05161,"18.0":0.04129,"19.0":0.15483},I:{"0":0,"3":0,"4":0.01203,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02004,"4.2-4.3":0.10021,"4.4":0,"4.4.3-4.4.4":0.17638},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00568,"9":0.00568,"10":0.00568,"11":0.13642,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":1.02129},Q:{"13.1":0.00452},O:{"0":0.15365},H:{"0":0.50912},L:{"0":34.23592}}; diff --git a/node_modules/caniuse-lite/data/regions/DJ.js b/node_modules/caniuse-lite/data/regions/DJ.js new file mode 100644 index 0000000..270243e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DJ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00411,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00411,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00823,"108":0,"109":0.01234,"110":0.00411,"111":0.45254,"112":0.5883,"113":0.00411,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00411,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01646,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00823,"66":0,"67":0.06582,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00823,"80":0,"81":0.01234,"83":0.00411,"84":0,"85":0.00411,"86":0.00823,"87":0.00823,"88":0,"89":0.00411,"90":0,"91":0,"92":0,"93":0.00411,"94":0.05348,"95":0.00411,"96":0,"97":0.00823,"98":0,"99":0.01646,"100":0,"101":0,"102":0.00411,"103":0.01646,"104":0.00823,"105":0.00411,"106":0.00823,"107":0.01234,"108":0.04114,"109":0.97913,"110":0.02057,"111":3.02379,"112":3.93298,"113":0.00411,"114":0.00411,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00411,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00823,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00411,"69":0.09462,"70":0,"71":0,"72":0,"73":0,"74":0.00823,"75":0,"76":0,"77":0.03291,"78":0,"79":0.00411,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00411,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.19747,"96":0.00823,"97":0.10285,"98":0.00823,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0.01646,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.01234,"15":0,"16":0,"17":0.00411,"18":0.01234,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00411,"90":0,"91":0,"92":0.00411,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00411,"102":0,"103":0,"104":0,"105":0.01646,"106":0,"107":0.00411,"108":0.05348,"109":0.01234,"110":0.04937,"111":0.35792,"112":0.74052,"113":0.00411},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00823,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.04525,"14.1":0.01234,"15.1":0.00823,"15.2-15.3":0,"15.4":0,"15.5":0.00411,"15.6":0.05348,"16.0":0,"16.1":0.00823,"16.2":0.00823,"16.3":0.01646,"16.4":0.0288,"16.5":0.00411},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01493,"8.1-8.4":0,"9.0-9.2":0.00498,"9.3":0.00871,"10.0-10.2":0,"10.3":0.61585,"11.0-11.2":0.00124,"11.3-11.4":0,"12.0-12.1":0.00124,"12.2-12.5":0.12566,"13.0-13.1":0.04977,"13.2":0,"13.3":0,"13.4-13.7":0.01369,"14.0-14.4":0.1692,"14.5-14.8":0.32099,"15.0-15.1":0.07962,"15.2-15.3":0.05723,"15.4":0.09829,"15.5":0.45038,"15.6":0.7104,"16.0":0.902,"16.1":1.34118,"16.2":1.1135,"16.3":2.80552,"16.4":2.37505,"16.5":0.0112},P:{"4":0.10099,"20":2.13079,"5.0-5.4":0.0101,"6.2-6.4":0.0101,"7.2-7.4":0.61601,"8.2":0,"9.2":0.05049,"10.1":0,"11.1-11.2":0.20197,"12.0":0.0101,"13.0":0.30296,"14.0":0.30296,"15.0":0.0101,"16.0":0.26256,"17.0":0.04039,"18.0":0.05049,"19.0":1.00985},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.10405},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00411,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00589},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09418},Q:{"13.1":0},O:{"0":0.94765},H:{"0":0.62969},L:{"0":67.59935}}; diff --git a/node_modules/caniuse-lite/data/regions/DK.js b/node_modules/caniuse-lite/data/regions/DK.js new file mode 100644 index 0000000..b5df2f7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02796,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01398,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.02097,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.04892,"103":0,"104":0,"105":0,"106":0.00699,"107":0,"108":0.00699,"109":0.02796,"110":0.01398,"111":0.8247,"112":0.67094,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00699,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02097,"50":0,"51":0,"52":0.01398,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.01398,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.01398,"77":0,"78":0,"79":0.02796,"80":0,"81":0,"83":0,"84":0.00699,"85":0.01398,"86":0.00699,"87":0.02796,"88":0.02796,"89":0.02097,"90":0.23763,"91":0.02796,"92":0.03495,"93":0.08387,"94":0.06989,"95":0.00699,"96":0.01398,"97":0.02097,"98":0.01398,"99":0.02097,"100":0.02796,"101":0.01398,"102":0.01398,"103":0.25859,"104":0.02796,"105":0.05591,"106":0.03495,"107":0.09785,"108":0.16075,"109":1.07631,"110":0.60105,"111":13.64253,"112":16.61285,"113":0.01398,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00699,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02097,"96":0.26558,"97":0.62202,"98":0.01398,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00699,"93":0,"94":0,"95":0,"96":0,"97":0.00699,"98":0,"99":0,"100":0.00699,"101":0.00699,"102":0.01398,"103":0.00699,"104":0,"105":0.02097,"106":0.00699,"107":0.05591,"108":0.05591,"109":0.09086,"110":0.06989,"111":1.79617,"112":4.50092,"113":0},E:{"4":0,"5":0.00699,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00699,"14":0.09086,"15":0.02097,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.02097,"13.1":0.09785,"14.1":0.29354,"15.1":0.04193,"15.2-15.3":0.03495,"15.4":0.07688,"15.5":0.1258,"15.6":0.60105,"16.0":0.07688,"16.1":0.18171,"16.2":0.27257,"16.3":1.57951,"16.4":0.67094,"16.5":0.00699},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.03475,"9.3":0.09384,"10.0-10.2":0,"10.3":0.12164,"11.0-11.2":0,"11.3-11.4":0.0278,"12.0-12.1":0.00348,"12.2-12.5":0.39272,"13.0-13.1":0,"13.2":0,"13.3":0.0139,"13.4-13.7":0.05213,"14.0-14.4":0.15292,"14.5-14.8":0.57691,"15.0-15.1":0.13206,"15.2-15.3":0.1981,"15.4":0.21895,"15.5":0.49698,"15.6":1.74464,"16.0":2.16864,"16.1":4.60836,"16.2":2.26595,"16.3":14.52364,"16.4":5.45288,"16.5":0.09384},P:{"4":0.02079,"20":1.424,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0.01039,"15.0":0,"16.0":0,"17.0":0.01039,"18.0":0.01039,"19.0":0.04158},I:{"0":0,"3":0,"4":0.01014,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00507,"4.2-4.3":0.01522,"4.4":0,"4.4.3-4.4.4":0.12172},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.03661,"9":0.00732,"10":0.00732,"11":0.10251,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.29207},Q:{"13.1":0},O:{"0":0.00903},H:{"0":0.09692},L:{"0":15.89257}}; diff --git a/node_modules/caniuse-lite/data/regions/DM.js b/node_modules/caniuse-lite/data/regions/DM.js new file mode 100644 index 0000000..2c1bbd6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0104,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.0104,"107":0,"108":0,"109":0,"110":0.01561,"111":0.23409,"112":0.21328,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.0052,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0052,"50":0,"51":0,"52":0.0052,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.0052,"70":0,"71":0,"72":0.0052,"73":0,"74":0.04682,"75":0.02601,"76":0.5254,"77":0.06242,"78":0,"79":0,"80":0,"81":0.01561,"83":0.0052,"84":0,"85":0,"86":0.07283,"87":0,"88":0.03121,"89":0,"90":0,"91":0,"92":0,"93":0.03121,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.0052,"100":0.02081,"101":0,"102":0.0052,"103":0.20808,"104":0.01561,"105":0.16126,"106":0.0104,"107":0.0052,"108":0.02601,"109":0.89474,"110":0.15606,"111":5.78983,"112":6.22679,"113":0,"114":0.0052,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.08843,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01561,"70":0,"71":0,"72":0,"73":0,"74":0.01561,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.01561,"86":0,"87":0.0052,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0052,"96":0.09884,"97":0.79591,"98":0.0104,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.0104,"106":0,"107":0.0052,"108":0.0104,"109":0.02601,"110":0.0052,"111":1.20166,"112":2.41373,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0052,"14":0.02081,"15":0.01561,_:"0","3.1":0,"3.2":0,"5.1":0.0052,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0052,"13.1":0.02601,"14.1":0.06242,"15.1":0,"15.2-15.3":0.0052,"15.4":0,"15.5":0.0052,"15.6":0.2653,"16.0":0.02081,"16.1":0.05722,"16.2":0.06763,"16.3":0.65025,"16.4":0.04162,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02823,"10.0-10.2":0,"10.3":0.02118,"11.0-11.2":0.00282,"11.3-11.4":0.00424,"12.0-12.1":0.00565,"12.2-12.5":0.44469,"13.0-13.1":0,"13.2":0.00706,"13.3":0.00706,"13.4-13.7":0.072,"14.0-14.4":0.05223,"14.5-14.8":0.15529,"15.0-15.1":0.02259,"15.2-15.3":0.06917,"15.4":0.05788,"15.5":0.6635,"15.6":0.46022,"16.0":1.03478,"16.1":0.87244,"16.2":0.67762,"16.3":5.63273,"16.4":2.56367,"16.5":0.10164},P:{"4":0.08343,"20":4.69296,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.09386,"8.2":0,"9.2":0.01043,"10.1":0,"11.1-11.2":0,"12.0":0.01043,"13.0":0.02086,"14.0":0,"15.0":0.01043,"16.0":0.02086,"17.0":0.04172,"18.0":0.04172,"19.0":0.26072},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.10361,"4.4":0,"4.4.3-4.4.4":0.68386},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0104,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.19672},Q:{"13.1":0},O:{"0":0.36465},H:{"0":0.268},L:{"0":56.20485}}; diff --git a/node_modules/caniuse-lite/data/regions/DO.js b/node_modules/caniuse-lite/data/regions/DO.js new file mode 100644 index 0000000..e178b03 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00516,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.03096,"74":0,"75":0,"76":0,"77":0,"78":0.01032,"79":0,"80":0.01032,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00516,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00516,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00516,"103":0,"104":0.11868,"105":0,"106":0.01548,"107":0,"108":0,"109":0.00516,"110":0.01548,"111":0.27348,"112":0.30444,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00516,"44":0,"45":0,"46":0,"47":0.00516,"48":0.00516,"49":0.02064,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00516,"65":0.01032,"66":0,"67":0,"68":0.01032,"69":0.774,"70":0.00516,"71":0,"72":0.00516,"73":0.04644,"74":0.00516,"75":0.00516,"76":0.2322,"77":0.01032,"78":0,"79":0.04128,"80":0.00516,"81":0.02064,"83":0.01032,"84":0.04128,"85":0.13416,"86":0.02064,"87":0.03612,"88":0.01032,"89":0.01032,"90":0.01032,"91":0.10836,"92":0.01548,"93":0.2064,"94":0.3354,"95":0.01032,"96":0.01032,"97":0.03096,"98":0.01548,"99":0.03096,"100":0.01032,"101":0.01032,"102":0.01548,"103":0.23736,"104":0.01548,"105":0.03096,"106":0.03612,"107":0.0516,"108":0.08256,"109":1.09908,"110":0.17028,"111":5.5212,"112":8.62236,"113":0.01032,"114":0.00516,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00516,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00516,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00516,"68":0.00516,"69":0.01032,"70":0.00516,"71":0,"72":0,"73":0,"74":0,"75":0.00516,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00516,"86":0,"87":0,"88":0,"89":0,"90":0.00516,"91":0,"92":0,"93":0,"94":0,"95":0.03096,"96":0.21672,"97":0.57792,"98":0.02064,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00516,"18":0.04128,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0.00516,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01548,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00516,"105":0.00516,"106":0,"107":0.00516,"108":0.01032,"109":0.04644,"110":0.03096,"111":0.52116,"112":1.55316,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.04128,"15":0.00516,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01032,"13.1":0.03612,"14.1":0.06192,"15.1":0.01032,"15.2-15.3":0.00516,"15.4":0.02064,"15.5":0.0516,"15.6":0.18576,"16.0":0.01548,"16.1":0.06708,"16.2":0.08256,"16.3":0.40248,"16.4":0.17028,"16.5":0.02064},G:{"8":0,"3.2":0.00287,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00573,"6.0-6.1":0,"7.0-7.1":0.0602,"8.1-8.4":0,"9.0-9.2":0.00573,"9.3":0.05733,"10.0-10.2":0,"10.3":0.05446,"11.0-11.2":0.01147,"11.3-11.4":0.0172,"12.0-12.1":0.06593,"12.2-12.5":0.58191,"13.0-13.1":0.0172,"13.2":0.00573,"13.3":0.04587,"13.4-13.7":0.129,"14.0-14.4":0.39272,"14.5-14.8":0.71951,"15.0-15.1":0.19779,"15.2-15.3":0.29526,"15.4":0.26372,"15.5":0.51885,"15.6":1.59668,"16.0":1.79161,"16.1":3.21916,"16.2":1.88047,"16.3":9.48835,"16.4":3.84407,"16.5":0.18346},P:{"4":0.13555,"20":1.0844,"5.0-5.4":0.02085,"6.2-6.4":0.01043,"7.2-7.4":0.08342,"8.2":0,"9.2":0.01043,"10.1":0,"11.1-11.2":0.05213,"12.0":0,"13.0":0.01043,"14.0":0.02085,"15.0":0.01043,"16.0":0.06256,"17.0":0.03128,"18.0":0.04171,"19.0":0.1147},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.2512,"4.4":0,"4.4.3-4.4.4":0.44484},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00631,"9":0.00631,"10":0.00631,"11":0.03784,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.35332},Q:{"13.1":0},O:{"0":0.06776},H:{"0":0.16496},L:{"0":46.74136}}; diff --git a/node_modules/caniuse-lite/data/regions/DZ.js b/node_modules/caniuse-lite/data/regions/DZ.js new file mode 100644 index 0000000..48ce76c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/DZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0.00382,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00382,"39":0,"40":0,"41":0.00382,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00765,"48":0.00765,"49":0,"50":0,"51":0,"52":0.04205,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00382,"69":0,"70":0,"71":0,"72":0.00382,"73":0,"74":0,"75":0.00382,"76":0,"77":0,"78":0.00382,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00382,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00765,"100":0.00382,"101":0.00382,"102":0.01529,"103":0.00765,"104":0.00382,"105":0.00382,"106":0.00765,"107":0.00382,"108":0.00765,"109":0.01147,"110":0.02294,"111":0.45876,"112":0.39759,"113":0.00765,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00382,"30":0,"31":0,"32":0.01147,"33":0.00765,"34":0,"35":0,"36":0,"37":0,"38":0.00382,"39":0,"40":0.00765,"41":0,"42":0,"43":0.03823,"44":0,"45":0,"46":0,"47":0.00382,"48":0,"49":0.03823,"50":0.00382,"51":0,"52":0,"53":0,"54":0,"55":0.00382,"56":0.00765,"57":0,"58":0.00382,"59":0,"60":0.00382,"61":0.00382,"62":0,"63":0.01147,"64":0.00382,"65":0.00382,"66":0.00382,"67":0.00382,"68":0.01529,"69":0.00765,"70":0.00765,"71":0.00765,"72":0.00765,"73":0.00382,"74":0.01147,"75":0.00382,"76":0.00765,"77":0.00382,"78":0.00382,"79":0.02676,"80":0.00765,"81":0.02294,"83":0.01147,"84":0.00765,"85":0.02294,"86":0.00765,"87":0.01912,"88":0.00765,"89":0.00765,"90":0.00382,"91":0.01147,"92":0.00765,"93":0.00382,"94":0.00765,"95":0.02294,"96":0.01147,"97":0.01147,"98":0.02676,"99":0.01147,"100":0.01529,"101":0.01147,"102":0.02676,"103":0.03058,"104":0.01529,"105":0.03058,"106":0.02676,"107":0.04205,"108":0.08793,"109":3.52481,"110":0.07646,"111":1.90768,"112":2.27086,"113":0.00765,"114":0.00382,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00382,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00382,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00382,"62":0,"63":0.00382,"64":0.00382,"65":0,"66":0,"67":0.00382,"68":0.00765,"69":0.03441,"70":0.00382,"71":0,"72":0,"73":0,"74":0.00382,"75":0.00765,"76":0,"77":0,"78":0,"79":0.01529,"80":0,"81":0,"82":0,"83":0,"84":0.00382,"85":0.01912,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.14145,"96":0.11087,"97":0.32113,"98":0.01147,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00382,"13":0,"14":0.00382,"15":0,"16":0,"17":0,"18":0.00382,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01147,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00382,"107":0.00382,"108":0.00382,"109":0.04205,"110":0.02294,"111":0.23703,"112":0.45876,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00765,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00382,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00382,"14.1":0.01147,"15.1":0.00382,"15.2-15.3":0.00382,"15.4":0.00382,"15.5":0.00765,"15.6":0.02676,"16.0":0.00382,"16.1":0.01147,"16.2":0.01147,"16.3":0.0497,"16.4":0.03823,"16.5":0},G:{"8":0.00081,"3.2":0.00162,"4.0-4.1":0,"4.2-4.3":0.00081,"5.0-5.1":0.00728,"6.0-6.1":0.00728,"7.0-7.1":0.07203,"8.1-8.4":0.00566,"9.0-9.2":0.00162,"9.3":0.08416,"10.0-10.2":0,"10.3":0.06151,"11.0-11.2":0.02832,"11.3-11.4":0.00566,"12.0-12.1":0.00647,"12.2-12.5":0.22498,"13.0-13.1":0.00486,"13.2":0.00486,"13.3":0.01699,"13.4-13.7":0.05341,"14.0-14.4":0.12706,"14.5-14.8":0.16671,"15.0-15.1":0.09307,"15.2-15.3":0.14567,"15.4":0.15376,"15.5":0.22255,"15.6":0.33504,"16.0":0.76396,"16.1":0.75182,"16.2":0.50661,"16.3":1.92204,"16.4":1.31589,"16.5":0.02994},P:{"4":0.13148,"20":1.06197,"5.0-5.4":0.01011,"6.2-6.4":0.02023,"7.2-7.4":0.10114,"8.2":0,"9.2":0.02023,"10.1":0.01011,"11.1-11.2":0.02023,"12.0":0.01011,"13.0":0.04046,"14.0":0.03034,"15.0":0.02023,"16.0":0.08091,"17.0":0.06068,"18.0":0.0708,"19.0":0.1416},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01105,"4.2-4.3":0.03038,"4.4":0,"4.4.3-4.4.4":0.22091},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01997,"9":0.00799,"10":0.00399,"11":0.22767,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12972},Q:{"13.1":0},O:{"0":0.4571},H:{"0":0.59065},L:{"0":76.54553}}; diff --git a/node_modules/caniuse-lite/data/regions/EC.js b/node_modules/caniuse-lite/data/regions/EC.js new file mode 100644 index 0000000..186e470 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/EC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01134,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00567,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00567,"73":0.01134,"74":0,"75":0.00567,"76":0,"77":0,"78":0.01701,"79":0.00567,"80":0,"81":0,"82":0.00567,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.02836,"89":0.01134,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00567,"96":0.00567,"97":0,"98":0,"99":0.00567,"100":0.00567,"101":0,"102":0.03403,"103":0.00567,"104":0.02268,"105":0.00567,"106":0.01134,"107":0.01134,"108":0.01134,"109":0.03403,"110":0.04537,"111":0.90736,"112":0.92437,"113":0.00567,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.01701,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.01701,"48":0,"49":0.01134,"50":0,"51":0,"52":0,"53":0.00567,"54":0,"55":0.01134,"56":0.00567,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00567,"65":0.00567,"66":0,"67":0,"68":0.01134,"69":0.00567,"70":0.00567,"71":0.00567,"72":0,"73":0.00567,"74":0.01134,"75":0.00567,"76":0.00567,"77":0,"78":0.00567,"79":0.1758,"80":0.00567,"81":0.01134,"83":0.00567,"84":0.01134,"85":0.01701,"86":0.01134,"87":0.03403,"88":0.00567,"89":0.00567,"90":0.00567,"91":0.08507,"92":0.01701,"93":0.00567,"94":0.11909,"95":0.00567,"96":0.05104,"97":0.03403,"98":0.02268,"99":0.02836,"100":0.03403,"101":0.01701,"102":0.0397,"103":0.10775,"104":0.05671,"105":0.03403,"106":0.03403,"107":0.05671,"108":0.11342,"109":1.62191,"110":0.16446,"111":8.1152,"112":10.65581,"113":0.02268,"114":0.00567,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01134,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00567,"69":0.01134,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00567,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04537,"96":0.33459,"97":0.90169,"98":0.02268,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00567,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00567,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00567,"104":0.00567,"105":0.00567,"106":0.00567,"107":0.05104,"108":0.01134,"109":0.0397,"110":0.03403,"111":0.55576,"112":1.38372,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01701,"15":0.00567,_:"0","3.1":0,"3.2":0,"5.1":0.01134,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00567,"13.1":0.03403,"14.1":0.04537,"15.1":0.00567,"15.2-15.3":0.01134,"15.4":0.01134,"15.5":0.02836,"15.6":0.10775,"16.0":0.02268,"16.1":0.06805,"16.2":0.05671,"16.3":0.28355,"16.4":0.1361,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02089,"6.0-6.1":0.00522,"7.0-7.1":0.01175,"8.1-8.4":0.00131,"9.0-9.2":0.00261,"9.3":0.02742,"10.0-10.2":0,"10.3":0.0248,"11.0-11.2":0.00653,"11.3-11.4":0.00522,"12.0-12.1":0.00522,"12.2-12.5":0.29374,"13.0-13.1":0.00522,"13.2":0,"13.3":0.00914,"13.4-13.7":0.03917,"14.0-14.4":0.0705,"14.5-14.8":0.20366,"15.0-15.1":0.07833,"15.2-15.3":0.05222,"15.4":0.06005,"15.5":0.13838,"15.6":0.48696,"16.0":1.07444,"16.1":1.34468,"16.2":0.83161,"16.3":4.61631,"16.4":2.59537,"16.5":0.0705},P:{"4":0.22551,"20":1.28132,"5.0-5.4":0.01025,"6.2-6.4":0,"7.2-7.4":0.11276,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01025,"12.0":0.01025,"13.0":0.0205,"14.0":0.03075,"15.0":0.01025,"16.0":0.03075,"17.0":0.10251,"18.0":0.041,"19.0":0.09225},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03096,"4.2-4.3":0.03096,"4.4":0,"4.4.3-4.4.4":0.16717},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00567,"9":0,"10":0,"11":0.0397,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.17316},Q:{"13.1":0},O:{"0":0.03463},H:{"0":0.13935},L:{"0":55.13786}}; diff --git a/node_modules/caniuse-lite/data/regions/EE.js b/node_modules/caniuse-lite/data/regions/EE.js new file mode 100644 index 0000000..a4d1140 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/EE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01531,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00766,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.09186,"88":0,"89":0,"90":0,"91":0,"92":0.02297,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.5282,"103":0.00766,"104":0.01531,"105":0.00766,"106":0,"107":0.00766,"108":0.02297,"109":0.01531,"110":0.05359,"111":2.41133,"112":1.79127,"113":0.00766,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00766,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.02297,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00766,"78":0.04593,"79":0.01531,"80":0.00766,"81":0.02297,"83":0.00766,"84":0,"85":0.01531,"86":0.00766,"87":0.02297,"88":0.01531,"89":0.00766,"90":0.00766,"91":0.00766,"92":0,"93":0.14545,"94":0.39041,"95":0.05359,"96":0.01531,"97":0.00766,"98":0.00766,"99":0.02297,"100":0.00766,"101":0.00766,"102":0.03828,"103":0.08421,"104":0.01531,"105":0.04593,"106":0.13779,"107":0.08421,"108":0.23731,"109":1.78362,"110":0.39041,"111":19.27529,"112":17.95863,"113":0.01531,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00766,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.11483,"96":0.57413,"97":2.81704,"98":0.14545,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00766,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0.03828,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00766,"93":0,"94":0,"95":0,"96":0.01531,"97":0.00766,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00766,"105":0,"106":0,"107":0.00766,"108":0.00766,"109":0.08421,"110":0.03828,"111":1.57693,"112":2.99311,"113":0.00766},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00766,"14":0.03828,"15":0.00766,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00766,"10.1":0,"11.1":0,"12.1":0.01531,"13.1":0.05359,"14.1":0.13014,"15.1":0.01531,"15.2-15.3":0.02297,"15.4":0.05359,"15.5":0.05359,"15.6":0.26793,"16.0":0.03828,"16.1":0.12248,"16.2":0.16076,"16.3":0.56647,"16.4":0.28324,"16.5":0.00766},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00666,"6.0-6.1":0,"7.0-7.1":0.00166,"8.1-8.4":0.00499,"9.0-9.2":0,"9.3":0.01664,"10.0-10.2":0.01997,"10.3":0.26955,"11.0-11.2":0.00832,"11.3-11.4":0.00499,"12.0-12.1":0.00166,"12.2-12.5":0.16639,"13.0-13.1":0.00333,"13.2":0.00499,"13.3":0.02163,"13.4-13.7":0.11315,"14.0-14.4":0.12147,"14.5-14.8":0.2812,"15.0-15.1":0.0782,"15.2-15.3":0.10982,"15.4":0.12313,"15.5":0.26623,"15.6":0.64726,"16.0":1.41266,"16.1":2.41433,"16.2":1.20301,"16.3":5.91519,"16.4":2.6739,"16.5":0.1015},P:{"4":0.02054,"20":1.38652,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01027,"12.0":0.01027,"13.0":0.01027,"14.0":0.01027,"15.0":0.02054,"16.0":0.02054,"17.0":0.02054,"18.0":0.03081,"19.0":0.08216},I:{"0":0,"3":0,"4":0.00935,"2.1":0.00156,"2.2":0.00623,"2.3":0.00935,"4.1":0.00935,"4.2-4.3":0.0296,"4.4":0,"4.4.3-4.4.4":0.09504},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.03317,"9":0.00829,"10":0.00829,"11":0.04976,"5.5":0},S:{"2.5":0.00235,_:"3.0-3.1"},J:{"7":0,"10":0.00469},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.17119},Q:{"13.1":0},O:{"0":0.02345},H:{"0":0.17095},L:{"0":23.31968}}; diff --git a/node_modules/caniuse-lite/data/regions/EG.js b/node_modules/caniuse-lite/data/regions/EG.js new file mode 100644 index 0000000..7a46864 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/EG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02234,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00319,"69":0,"70":0,"71":0,"72":0.00319,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00319,"79":0,"80":0.00319,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00319,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00319,"97":0,"98":0,"99":0.00319,"100":0,"101":0,"102":0.00958,"103":0.00319,"104":0,"105":0.00319,"106":0.00319,"107":0.00319,"108":0.00319,"109":0.00638,"110":0.01596,"111":0.28409,"112":0.2809,"113":0.00638,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00319,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00319,"34":0.00319,"35":0,"36":0,"37":0,"38":0.00319,"39":0,"40":0.00638,"41":0,"42":0,"43":0.04788,"44":0,"45":0,"46":0.00319,"47":0.00319,"48":0.00319,"49":0.00958,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00319,"61":0,"62":0.00319,"63":0.00319,"64":0.00319,"65":0,"66":0.00319,"67":0,"68":0.00319,"69":0.00638,"70":0.00319,"71":0.00319,"72":0.00319,"73":0,"74":0.00638,"75":0.00319,"76":0.00638,"77":0.00319,"78":0.00319,"79":0.0383,"80":0.00958,"81":0.01596,"83":0.00319,"84":0.00638,"85":0.00958,"86":0.01277,"87":0.00958,"88":0.00958,"89":0.00638,"90":0.02234,"91":0.02873,"92":0.02554,"93":0.02234,"94":0.03192,"95":0.00638,"96":0.00638,"97":0.00958,"98":0.01915,"99":0.01596,"100":0.01277,"101":0.00638,"102":0.01915,"103":0.02234,"104":0.01277,"105":0.01596,"106":0.01277,"107":0.02234,"108":0.05107,"109":1.33426,"110":0.05426,"111":1.8737,"112":2.29824,"113":0.00638,"114":0.00319,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.00319,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0.00638,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00319,"71":0,"72":0.00319,"73":0.00958,"74":0.00958,"75":0.00319,"76":0.00319,"77":0,"78":0,"79":0.01277,"80":0,"81":0.00319,"82":0.00319,"83":0.00319,"84":0.00319,"85":0.00319,"86":0,"87":0,"88":0,"89":0.00319,"90":0.00319,"91":0.00319,"92":0.00319,"93":0.00958,"94":0.00958,"95":0.01915,"96":0.01596,"97":0.01596,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00319,"15":0,"16":0,"17":0,"18":0.00319,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00638,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00319,"108":0.00638,"109":0.02234,"110":0.01596,"111":0.21067,"112":0.49157,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00319,"15":0.00319,_:"0","3.1":0,"3.2":0,"5.1":0.0798,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00319,"13.1":0.00638,"14.1":0.01277,"15.1":0.00319,"15.2-15.3":0,"15.4":0.00319,"15.5":0.00319,"15.6":0.02554,"16.0":0.00319,"16.1":0.00958,"16.2":0.00958,"16.3":0.05426,"16.4":0.02554,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00127,"7.0-7.1":0.02154,"8.1-8.4":0.00127,"9.0-9.2":0.00634,"9.3":0.05069,"10.0-10.2":0.00634,"10.3":0.05196,"11.0-11.2":0.00634,"11.3-11.4":0.00507,"12.0-12.1":0.01774,"12.2-12.5":0.62223,"13.0-13.1":0.01014,"13.2":0.0038,"13.3":0.03168,"13.4-13.7":0.0735,"14.0-14.4":0.2712,"14.5-14.8":0.29654,"15.0-15.1":0.08364,"15.2-15.3":0.10772,"15.4":0.13687,"15.5":0.23825,"15.6":0.51832,"16.0":1.00748,"16.1":1.18997,"16.2":0.67419,"16.3":3.34434,"16.4":2.69803,"16.5":0.05323},P:{"4":0.205,"20":1.88605,"5.0-5.4":0,"6.2-6.4":0.01025,"7.2-7.4":0.1025,"8.2":0,"9.2":0.01025,"10.1":0,"11.1-11.2":0.041,"12.0":0.01025,"13.0":0.05125,"14.0":0.041,"15.0":0.0205,"16.0":0.07175,"17.0":0.09225,"18.0":0.05125,"19.0":0.13325},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01902,"4.2-4.3":0.01902,"4.4":0,"4.4.3-4.4.4":0.23964},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00676,"9":0,"10":0.00338,"11":0.04732,"5.5":0},S:{"2.5":0.00681,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21105},Q:{"13.1":0},O:{"0":0.54464},H:{"0":0.44473},L:{"0":74.30401}}; diff --git a/node_modules/caniuse-lite/data/regions/ER.js b/node_modules/caniuse-lite/data/regions/ER.js new file mode 100644 index 0000000..ca97303 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ER.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.01306,"34":0,"35":0,"36":0.09792,"37":0,"38":0,"39":0,"40":0,"41":0.01306,"42":0,"43":0,"44":0,"45":0.01306,"46":0.08486,"47":0.00653,"48":0,"49":0,"50":0,"51":0,"52":0.01306,"53":0,"54":0,"55":0.15667,"56":0.9792,"57":0.07181,"58":0,"59":0.00653,"60":0.00653,"61":0,"62":0.00653,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.01958,"95":0,"96":0,"97":0.00653,"98":0.00653,"99":0.00653,"100":0.00653,"101":0,"102":0.0457,"103":0,"104":0.01306,"105":0,"106":0.02611,"107":0,"108":0.03264,"109":0.1632,"110":0.00653,"111":1.0967,"112":0.85517,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0.03917,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.05222,"44":0,"45":0,"46":0,"47":0.00653,"48":0,"49":0,"50":0.01306,"51":0,"52":0,"53":0.02611,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0.00653,"62":0,"63":0,"64":0,"65":0.01306,"66":0.01958,"67":0.00653,"68":0,"69":0.05222,"70":0,"71":0.01306,"72":0,"73":0.02611,"74":0.05875,"75":0.00653,"76":0,"77":0.01306,"78":0.05222,"79":0,"80":0.16973,"81":0,"83":0.01958,"84":0,"85":0.08486,"86":0.0457,"87":0.03264,"88":0.10445,"89":0,"90":0.01306,"91":0.02611,"92":0.16973,"93":0,"94":0,"95":0,"96":0.01306,"97":0.03264,"98":0.38515,"99":0.01306,"100":0.07834,"101":0.01958,"102":0.02611,"103":0.03264,"104":0.00653,"105":0.25459,"106":0.07181,"107":0.12403,"108":0.88128,"109":6.95232,"110":0.2089,"111":8.32973,"112":9.23059,"113":0.01306,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0.01306,"28":0,"29":0,"30":0,"31":0,"32":0.00653,"33":0,"34":0.01306,"35":0,"36":0,"37":0,"38":0.05222,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01306,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0.00653,"63":0,"64":0.01306,"65":0,"66":0,"67":0.03264,"68":0.02611,"69":0.02611,"70":0,"71":0.00653,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.03264,"80":0,"81":0,"82":0.07834,"83":0,"84":0.01958,"85":0.00653,"86":0.01958,"87":0,"88":0.00653,"89":0,"90":0.01306,"91":0,"92":0,"93":0.00653,"94":0,"95":0.15014,"96":0.01958,"97":0.4439,"98":0.02611,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00653,"13":0.01306,"14":0,"15":0.20237,"16":0.02611,"17":0.03264,"18":0.14362,"79":0,"80":0.00653,"81":0,"83":0,"84":0.01306,"85":0,"86":0,"87":0,"88":0,"89":0.05222,"90":0.02611,"91":0,"92":0.07834,"93":0,"94":0,"95":0,"96":0,"97":0.00653,"98":0,"99":0,"100":0.00653,"101":0,"102":0,"103":0,"104":0,"105":0.00653,"106":0,"107":0,"108":0.05222,"109":0.33293,"110":0.09139,"111":1.91923,"112":5.47699,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0.00653,"16.3":0,"16.4":0.00653,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.09536,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0.04085,"15.0-15.1":0.01362,"15.2-15.3":0.05447,"15.4":0,"15.5":0.04085,"15.6":0,"16.0":0.01362,"16.1":0.02723,"16.2":0.06813,"16.3":0.04085,"16.4":0.04085,"16.5":0},P:{"4":0.16038,"20":0,"5.0-5.4":6.7261,"6.2-6.4":0,"7.2-7.4":0.02005,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.01002,"14.0":0.01002,"15.0":0,"16.0":0.44106,"17.0":0.02005,"18.0":0.02005,"19.0":0.02005},I:{"0":0,"3":0,"4":0.00133,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.07867},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.2807,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.01042},Q:{"13.1":0.01042},O:{"0":4.69067},H:{"0":1.09131},L:{"0":35.35459}}; diff --git a/node_modules/caniuse-lite/data/regions/ES.js b/node_modules/caniuse-lite/data/regions/ES.js new file mode 100644 index 0000000..dd9432e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ES.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01665,"53":0,"54":0,"55":0,"56":0.00416,"57":0,"58":0,"59":0.00416,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00416,"68":0.00416,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01665,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00416,"89":0,"90":0,"91":0.00416,"92":0,"93":0,"94":0.02081,"95":0.00416,"96":0,"97":0,"98":0,"99":0,"100":0.00416,"101":0.00416,"102":0.0333,"103":0,"104":0.00416,"105":0.00416,"106":0.00416,"107":0.00416,"108":0.00416,"109":0.02497,"110":0.01665,"111":0.54522,"112":0.47863,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00416,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02913,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00416,"61":0,"62":0,"63":0.00416,"64":0.00416,"65":0.00416,"66":0.02081,"67":0.00416,"68":0.00416,"69":0,"70":0,"71":0,"72":0,"73":0.00416,"74":0.00416,"75":0.00832,"76":0.00416,"77":0,"78":0.00416,"79":0.04994,"80":0.00832,"81":0.00832,"83":0.00416,"84":0.00832,"85":0.00832,"86":0.00832,"87":0.02497,"88":0.00416,"89":0.00832,"90":0.00832,"91":0.01665,"92":0.01249,"93":0.02497,"94":0.01665,"95":0.00832,"96":0.00832,"97":0.00832,"98":0.00832,"99":0.02081,"100":0.01665,"101":0.00832,"102":0.01249,"103":0.07492,"104":0.00832,"105":0.02497,"106":0.02081,"107":0.03746,"108":0.06243,"109":0.64927,"110":0.12486,"111":3.6251,"112":4.67393,"113":0.00416,"114":0.00416,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00416,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00416,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00416,"69":0.00832,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00416,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01665,"96":0.14567,"97":0.3829,"98":0.01249,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00416,"18":0.00416,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00416,"93":0,"94":0,"95":0,"96":0,"97":0.00416,"98":0,"99":0,"100":0.00416,"101":0,"102":0,"103":0.00416,"104":0.00416,"105":0,"106":0,"107":0.00416,"108":0.00832,"109":0.02913,"110":0.02497,"111":0.37458,"112":0.9531,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00832,"14":0.0333,"15":0.00832,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00416,"12.1":0.01249,"13.1":0.04578,"14.1":0.07908,"15.1":0.01249,"15.2-15.3":0.01249,"15.4":0.02497,"15.5":0.03746,"15.6":0.16648,"16.0":0.02081,"16.1":0.05827,"16.2":0.09156,"16.3":0.37874,"16.4":0.17064,"16.5":0.00416},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00189,"6.0-6.1":0,"7.0-7.1":0.00757,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07376,"10.0-10.2":0,"10.3":0.10213,"11.0-11.2":0.00757,"11.3-11.4":0.04917,"12.0-12.1":0.01135,"12.2-12.5":0.38016,"13.0-13.1":0.00757,"13.2":0.00378,"13.3":0.02459,"13.4-13.7":0.07187,"14.0-14.4":0.17968,"14.5-14.8":0.41042,"15.0-15.1":0.10591,"15.2-15.3":0.13996,"15.4":0.17589,"15.5":0.33098,"15.6":0.86622,"16.0":1.16505,"16.1":2.6138,"16.2":1.37499,"16.3":6.91088,"16.4":2.93533,"16.5":0.05863},P:{"4":0.11377,"20":2.45123,"5.0-5.4":0.01034,"6.2-6.4":0,"7.2-7.4":0.01034,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02069,"12.0":0.01034,"13.0":0.04137,"14.0":0.03103,"15.0":0.01034,"16.0":0.04137,"17.0":0.04137,"18.0":0.05171,"19.0":0.15514},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02413,"4.2-4.3":0.01448,"4.4":0,"4.4.3-4.4.4":0.10134},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00416,"9":0,"10":0,"11":0.06243,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.2919},Q:{"13.1":0},O:{"0":0.02919},H:{"0":0.21555},L:{"0":62.25547}}; diff --git a/node_modules/caniuse-lite/data/regions/ET.js b/node_modules/caniuse-lite/data/regions/ET.js new file mode 100644 index 0000000..0b2f620 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ET.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00411,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00822,"48":0,"49":0,"50":0,"51":0,"52":0.02056,"53":0,"54":0,"55":0,"56":0.00411,"57":0.00411,"58":0,"59":0,"60":0.00411,"61":0,"62":0,"63":0,"64":0,"65":0.00411,"66":0,"67":0,"68":0.00411,"69":0,"70":0.00411,"71":0,"72":0.00822,"73":0,"74":0,"75":0,"76":0,"77":0.07402,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.0329,"85":0,"86":0,"87":0,"88":0.02467,"89":0.03701,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.06168,"96":0,"97":0.00411,"98":0,"99":0,"100":0,"101":0,"102":0.0329,"103":0.01234,"104":0.00411,"105":0.00822,"106":0.00411,"107":0.02056,"108":0.02467,"109":0.00822,"110":0.0329,"111":0.62914,"112":0.65381,"113":0.14803,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00822,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00411,"34":0,"35":0.00411,"36":0.00411,"37":0.00411,"38":0.02467,"39":0,"40":0.00822,"41":0,"42":0,"43":0.04112,"44":0,"45":0,"46":0.00411,"47":0,"48":0,"49":0.00411,"50":0.00411,"51":0,"52":0,"53":0.00822,"54":0,"55":0.00411,"56":0.00411,"57":0,"58":0.01234,"59":0,"60":0,"61":0,"62":0,"63":0.00822,"64":0.00411,"65":0.01645,"66":0.00411,"67":0,"68":0.00822,"69":0.01234,"70":0.00822,"71":0.00822,"72":0.01645,"73":0.00822,"74":0.01234,"75":0.01645,"76":0.00411,"77":0.01234,"78":0.00822,"79":0.47288,"80":0.00822,"81":0.06579,"83":0.01234,"84":0,"85":0.00411,"86":0.01234,"87":0.01234,"88":0.01234,"89":0.00822,"90":0.02878,"91":0.04112,"92":0.01234,"93":0.02878,"94":0.01234,"95":0.02056,"96":0.02467,"97":0.00822,"98":0.14392,"99":0.00822,"100":0.01645,"101":0.00822,"102":0.01645,"103":0.05346,"104":0.02056,"105":0.01234,"106":0.02467,"107":0.02878,"108":0.0699,"109":1.79694,"110":0.08224,"111":2.69336,"112":3.49109,"113":0.00822,"114":0.00411,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0.00411,"20":0,"21":0,"22":0,"23":0,"24":0.00411,"25":0,"26":0,"27":0.00411,"28":0.00822,"29":0,"30":0.00822,"31":0,"32":0.01234,"33":0.00411,"34":0,"35":0,"36":0.00411,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00822,"43":0,"44":0,"45":0,"46":0.02056,"47":0,"48":0,"49":0,"50":0.01645,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00411,"60":0.02467,"62":0,"63":0.00822,"64":0.00411,"65":0,"66":0.00411,"67":0.02878,"68":0.06579,"69":0.11514,"70":0.00411,"71":0,"72":0,"73":0,"74":0.00411,"75":0.00411,"76":0,"77":0,"78":0,"79":0.00822,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00411,"86":0.00411,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.02878,"93":0,"94":0.00411,"95":0.13981,"96":0.06579,"97":0.40298,"98":0.02467,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01234},B:{"12":0.00822,"13":0.00822,"14":0.00411,"15":0.00411,"16":0.00411,"17":0.00411,"18":0.0329,"79":0,"80":0,"81":0,"83":0,"84":0.00411,"85":0,"86":0,"87":0,"88":0,"89":0.00411,"90":0.00411,"91":0,"92":0.01234,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02056,"103":0.00411,"104":0.00411,"105":0,"106":0.00411,"107":0.00411,"108":0.01645,"109":0.04112,"110":0.04112,"111":0.42765,"112":0.91286,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00411,"14":0.00411,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00822,"14.1":0.00822,"15.1":0.00411,"15.2-15.3":0,"15.4":0,"15.5":0.00411,"15.6":0.04523,"16.0":0,"16.1":0,"16.2":0,"16.3":0.00411,"16.4":0.00411,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00106,"5.0-5.1":0.00884,"6.0-6.1":0.01697,"7.0-7.1":0.39522,"8.1-8.4":0.0198,"9.0-9.2":0.15837,"9.3":0.47829,"10.0-10.2":0.00318,"10.3":0.18559,"11.0-11.2":0.0152,"11.3-11.4":0.02828,"12.0-12.1":0.06186,"12.2-12.5":0.39133,"13.0-13.1":0.01909,"13.2":0.01768,"13.3":0.08802,"13.4-13.7":0.04489,"14.0-14.4":0.12938,"14.5-14.8":0.15059,"15.0-15.1":0.05444,"15.2-15.3":0.06469,"15.4":0.12125,"15.5":0.076,"15.6":0.12267,"16.0":0.0958,"16.1":0.10959,"16.2":0.08378,"16.3":0.2114,"16.4":0.15483,"16.5":0.00566},P:{"4":0.89069,"20":0.49713,"5.0-5.4":0.02071,"6.2-6.4":0.04143,"7.2-7.4":0.23821,"8.2":0.02071,"9.2":0.02071,"10.1":0,"11.1-11.2":0.01036,"12.0":0,"13.0":0.02071,"14.0":0.01036,"15.0":0.01036,"16.0":0.06214,"17.0":0.05178,"18.0":0.04143,"19.0":0.08285},I:{"0":0,"3":0,"4":0.0007,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0042,"4.2-4.3":0.09199,"4.4":0,"4.4.3-4.4.4":0.44282},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02056,"5.5":0},S:{"2.5":0.45338,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.05888},Q:{"13.1":0.00589},O:{"0":0.54758},H:{"0":5.66357},L:{"0":66.3359}}; diff --git a/node_modules/caniuse-lite/data/regions/FI.js b/node_modules/caniuse-lite/data/regions/FI.js new file mode 100644 index 0000000..e74b586 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00659,"51":0,"52":0.01978,"53":0.00659,"54":0,"55":0.01319,"56":0.00659,"57":0,"58":0,"59":0.01319,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00659,"69":0,"70":0,"71":0,"72":0.00659,"73":0,"74":0,"75":0.00659,"76":0,"77":0,"78":0.02637,"79":0.00659,"80":0.00659,"81":0.00659,"82":0.00659,"83":0.01319,"84":0.00659,"85":0,"86":0,"87":0,"88":0.00659,"89":0,"90":0,"91":0.00659,"92":0,"93":0,"94":0,"95":0.00659,"96":0.00659,"97":0,"98":0,"99":0,"100":0.00659,"101":0.00659,"102":0.15823,"103":0.00659,"104":0.01978,"105":0.01978,"106":0.01319,"107":0.02637,"108":0.03956,"109":0.05274,"110":0.06593,"111":1.48343,"112":1.24608,"113":0.01978,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00659,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00659,"39":0,"40":0,"41":0,"42":0.01978,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00659,"49":0.00659,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00659,"56":0.00659,"57":0.00659,"58":0,"59":0,"60":0.01978,"61":0,"62":0,"63":0,"64":0.00659,"65":0,"66":0.0923,"67":0,"68":0.01319,"69":0.00659,"70":0.01319,"71":0.01978,"72":0.01978,"73":0.00659,"74":0.01319,"75":0.01319,"76":0.01978,"77":0.01319,"78":0.01978,"79":0.05934,"80":0.01978,"81":0.02637,"83":0.03956,"84":0.04615,"85":0.08571,"86":0.16483,"87":0.08571,"88":0.01978,"89":0.03297,"90":0.02637,"91":0.54063,"92":0.00659,"93":0.04615,"94":0.10549,"95":0.01319,"96":0.02637,"97":0.00659,"98":0.01319,"99":0.13186,"100":1.18015,"101":0.22416,"102":0.15164,"103":0.43514,"104":0.13186,"105":0.15823,"106":0.05934,"107":0.08571,"108":0.64611,"109":0.91643,"110":0.46151,"111":11.24766,"112":12.85635,"113":0.01978,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00659,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00659,"69":0.01978,"70":0,"71":0,"72":0.00659,"73":0,"74":0.00659,"75":0.00659,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00659,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00659,"95":0.02637,"96":0.29009,"97":0.63293,"98":0.01978,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00659},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.01319,"18":0.00659,"79":0,"80":0.00659,"81":0,"83":0,"84":0.00659,"85":0.00659,"86":0.00659,"87":0.00659,"88":0,"89":0,"90":0,"91":0,"92":0.02637,"93":0,"94":0,"95":0.00659,"96":0,"97":0,"98":0.00659,"99":0,"100":0,"101":0,"102":0.01978,"103":0.00659,"104":0,"105":0.01319,"106":0.01319,"107":0.01978,"108":0.01978,"109":0.06593,"110":0.05274,"111":1.10762,"112":2.94048,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01319,"14":0.03297,"15":0.00659,_:"0","3.1":0,"3.2":0,"5.1":0.01319,"6.1":0,"7.1":0,"9.1":0.06593,"10.1":0,"11.1":0.01319,"12.1":0.00659,"13.1":0.06593,"14.1":0.08571,"15.1":0.01978,"15.2-15.3":0.01319,"15.4":0.03956,"15.5":0.03956,"15.6":0.27691,"16.0":0.05274,"16.1":0.06593,"16.2":0.13186,"16.3":0.64611,"16.4":0.45492,"16.5":0.00659},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00809,"9.0-9.2":0.00809,"9.3":0.03035,"10.0-10.2":0.00405,"10.3":0.05261,"11.0-11.2":0.01619,"11.3-11.4":0.13153,"12.0-12.1":0.01821,"12.2-12.5":0.27317,"13.0-13.1":0.00809,"13.2":0.01012,"13.3":0.02024,"13.4-13.7":0.07689,"14.0-14.4":0.20235,"14.5-14.8":0.43505,"15.0-15.1":0.20437,"15.2-15.3":0.19426,"15.4":0.26913,"15.5":0.39054,"15.6":0.99557,"16.0":1.52168,"16.1":2.83696,"16.2":1.43467,"16.3":6.69579,"16.4":3.51281,"16.5":0.05261},P:{"4":0.0515,"20":1.63786,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.0103,"8.2":0,"9.2":0.0103,"10.1":0,"11.1-11.2":0.0103,"12.0":0.0103,"13.0":0.0206,"14.0":0.0309,"15.0":0.0206,"16.0":0.07211,"17.0":0.0412,"18.0":0.09271,"19.0":0.17512},I:{"0":0,"3":0,"4":0.01804,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00722,"4.2-4.3":0.01444,"4.4":0,"4.4.3-4.4.4":0.05052},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.02776,"9":0.00694,"10":0.00694,"11":0.09022,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.62348},Q:{"13.1":0},O:{"0":0.21123},H:{"0":0.34513},L:{"0":33.39179}}; diff --git a/node_modules/caniuse-lite/data/regions/FJ.js b/node_modules/caniuse-lite/data/regions/FJ.js new file mode 100644 index 0000000..0fa9f78 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FJ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00369,"53":0,"54":0,"55":0,"56":0.00369,"57":0,"58":0,"59":0,"60":0.00369,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00739,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01108,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00739,"103":0,"104":0,"105":0,"106":0.01847,"107":0,"108":0.00369,"109":0.00369,"110":0.00739,"111":0.27336,"112":0.29183,"113":0.00369,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.00369,"46":0,"47":0,"48":0,"49":0.00739,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00369,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00369,"68":0.01478,"69":0.02955,"70":0,"71":0,"72":0.00369,"73":0.00739,"74":0.00739,"75":0.00369,"76":0.00739,"77":0.00369,"78":0,"79":0.01847,"80":0,"81":0.02955,"83":0.00369,"84":0,"85":0,"86":0.01847,"87":0.01478,"88":0.01108,"89":0,"90":0.00739,"91":0.00369,"92":0.02586,"93":0.00739,"94":0.00369,"95":0.00369,"96":0.00369,"97":0.00369,"98":0.00369,"99":0.00369,"100":0.00369,"101":0.04063,"102":0.00739,"103":0.04063,"104":0.02216,"105":0.02955,"106":0.02216,"107":0.01847,"108":0.06649,"109":0.36571,"110":0.08866,"111":3.13251,"112":3.16945,"113":0,"114":0.00369,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00369,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00369,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0.00369,"65":0,"66":0,"67":0.01108,"68":0.00739,"69":0.05541,"70":0.00369,"71":0,"72":0,"73":0,"74":0.00739,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02586,"96":0.00739,"97":0.0591,"98":0.00739,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0.00369,"14":0,"15":0.00739,"16":0,"17":0.00369,"18":0.01478,"79":0,"80":0,"81":0,"83":0,"84":0.00369,"85":0.00369,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00739,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00369,"104":0,"105":0.01108,"106":0,"107":0.00369,"108":0.01108,"109":0.01478,"110":0.02216,"111":0.4285,"112":0.96044,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00369,"14":0.00369,"15":0.00369,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.02586,"14.1":0.01847,"15.1":0.00369,"15.2-15.3":0,"15.4":0,"15.5":0.01478,"15.6":0.10343,"16.0":0.00369,"16.1":0.02216,"16.2":0.04433,"16.3":0.1847,"16.4":0.08127,"16.5":0},G:{"8":0.00118,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00473,"6.0-6.1":0,"7.0-7.1":0.04727,"8.1-8.4":0.00236,"9.0-9.2":0,"9.3":0.09455,"10.0-10.2":0,"10.3":0.08864,"11.0-11.2":0.00236,"11.3-11.4":0.01418,"12.0-12.1":0.00118,"12.2-12.5":0.39473,"13.0-13.1":0.00236,"13.2":0.00236,"13.3":0.19737,"13.4-13.7":0.03309,"14.0-14.4":0.25646,"14.5-14.8":0.22691,"15.0-15.1":0.12527,"15.2-15.3":0.18909,"15.4":0.14182,"15.5":0.35573,"15.6":0.40419,"16.0":0.4621,"16.1":1.30947,"16.2":0.68428,"16.3":3.67549,"16.4":2.02211,"16.5":0.01064},P:{"4":0.2974,"20":3.60983,"5.0-5.4":0.02051,"6.2-6.4":0.01026,"7.2-7.4":0.70761,"8.2":0,"9.2":0.03077,"10.1":0.01026,"11.1-11.2":0.25638,"12.0":0.04102,"13.0":0.22561,"14.0":0.10255,"15.0":0.13332,"16.0":0.52302,"17.0":0.21536,"18.0":0.26664,"19.0":0.64608},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.05063},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00739,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08828},Q:{"13.1":0},O:{"0":0.9459},H:{"0":0.56716},L:{"0":67.08543}}; diff --git a/node_modules/caniuse-lite/data/regions/FK.js b/node_modules/caniuse-lite/data/regions/FK.js new file mode 100644 index 0000000..c9f96e7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00778,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00778,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00778,"98":0,"99":0,"100":0.04668,"101":0,"102":0,"103":0.07002,"104":0,"105":0,"106":26.49868,"107":0,"108":0.28786,"109":0.01556,"110":0.02334,"111":0.45902,"112":0.49014,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00778,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.01556,"104":0,"105":0,"106":26.48312,"107":0,"108":0.00778,"109":0.21784,"110":0.05446,"111":1.3615,"112":1.13588,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00778,"97":0.05446,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00778,"90":0,"91":0.01556,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.01556,"106":0,"107":0.0778,"108":0.01556,"109":0.14782,"110":0.00778,"111":0.43568,"112":1.07364,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.05446,"14":0.00778,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0.00778,"15.1":0.00778,"15.2-15.3":0,"15.4":0.0389,"15.5":0.00778,"15.6":0.09336,"16.0":0.01556,"16.1":0,"16.2":0.0389,"16.3":0.1167,"16.4":0.08558,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0102,"10.0-10.2":0,"10.3":0.0102,"11.0-11.2":0,"11.3-11.4":0.0102,"12.0-12.1":0,"12.2-12.5":0.09098,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.21258,"14.0-14.4":0.09183,"14.5-14.8":0.07143,"15.0-15.1":0.08078,"15.2-15.3":0.08163,"15.4":0.02041,"15.5":0.04081,"15.6":1.24655,"16.0":0.11139,"16.1":0.70915,"16.2":0.26359,"16.3":3.74984,"16.4":1.58072,"16.5":0},P:{"4":0,"20":6.40727,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.01009,"13.0":0,"14.0":2.0584,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0.02018},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01556,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15318},Q:{"13.1":0},O:{"0":0.0555},H:{"0":0},L:{"0":16.61192}}; diff --git a/node_modules/caniuse-lite/data/regions/FM.js b/node_modules/caniuse-lite/data/regions/FM.js new file mode 100644 index 0000000..bec3839 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00589,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00589,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00589,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00589,"106":0,"107":0.01766,"108":0,"109":0,"110":0.02354,"111":1.38321,"112":1.48327,"113":0.01766,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02943,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.01177,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.00589,"88":0.08829,"89":0,"90":0,"91":0,"92":0,"93":0.00589,"94":0.01766,"95":0,"96":0,"97":0.00589,"98":0,"99":0.01766,"100":0,"101":0,"102":0.00589,"103":0.52385,"104":0,"105":0.13538,"106":0.01766,"107":0.01177,"108":0.01177,"109":2.99597,"110":0.08829,"111":5.43278,"112":6.1803,"113":0,"114":0.00589,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00589,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.08829,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.02354,"97":0.3767,"98":0.00589,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0.00589,"14":0,"15":0.01766,"16":0,"17":0.00589,"18":0,"79":0,"80":0.00589,"81":0,"83":0,"84":0,"85":0,"86":0.03532,"87":0,"88":0,"89":0.00589,"90":0,"91":0,"92":0,"93":0.00589,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.02354,"105":0.00589,"106":0,"107":0.07652,"108":0.02943,"109":0.05886,"110":0.01177,"111":2.60161,"112":7.8637,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.03532,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00589,"13.1":0.05297,"14.1":0.01177,"15.1":0.00589,"15.2-15.3":0.17069,"15.4":0.02943,"15.5":0.03532,"15.6":0.03532,"16.0":0,"16.1":0.03532,"16.2":0.05297,"16.3":0.0412,"16.4":0.15892,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0566,"10.0-10.2":0,"10.3":0.68594,"11.0-11.2":0,"11.3-11.4":0.03622,"12.0-12.1":0,"12.2-12.5":0.30562,"13.0-13.1":0,"13.2":0,"13.3":0.35316,"13.4-13.7":0.90779,"14.0-14.4":0.05433,"14.5-14.8":0.80818,"15.0-15.1":0.50936,"15.2-15.3":0.12904,"15.4":0.25128,"15.5":1.8835,"15.6":0.41654,"16.0":0.70405,"16.1":1.38093,"16.2":0.60218,"16.3":5.45355,"16.4":3.35725,"16.5":0.23091},P:{"4":0,"20":0.2343,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.10187,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02037,"12.0":0.01019,"13.0":0,"14.0":0,"15.0":0,"16.0":0.02037,"17.0":0.02037,"18.0":0.01019,"19.0":0.01019},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.31696,"4.4":0,"4.4.3-4.4.4":0.31696},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01766,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.03291},Q:{"13.1":0.00411},O:{"0":0.24273},H:{"0":0.22201},L:{"0":48.36104}}; diff --git a/node_modules/caniuse-lite/data/regions/FO.js b/node_modules/caniuse-lite/data/regions/FO.js new file mode 100644 index 0000000..9be9658 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0477,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.14607,"112":0.09539,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00298,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.00298,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.02087,"104":0,"105":0.00298,"106":0.00298,"107":0.00298,"108":0.01192,"109":0.07453,"110":0.05366,"111":0.90324,"112":1.01056,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.0477,"97":0.08943,"98":0.00298,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00298,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00596,"110":0.00894,"111":0.16992,"112":0.35474,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.04472,"15":0.00596,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00596,"14.1":0.02683,"15.1":0.01491,"15.2-15.3":0.03577,"15.4":0.07453,"15.5":0.18482,"15.6":1.07614,"16.0":0.04472,"16.1":0.21761,"16.2":0.54552,"16.3":2.26556,"16.4":0.8943,"16.5":0.00894},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01842,"10.0-10.2":0,"10.3":0.00921,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.19341,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.21183,"14.5-14.8":0.25789,"15.0-15.1":0.17499,"15.2-15.3":0.34078,"15.4":0.59866,"15.5":1.63942,"15.6":6.90766,"16.0":5.62744,"16.1":14.34951,"16.2":7.28528,"16.3":36.42638,"16.4":11.88117,"16.5":0.16578},P:{"4":0.01036,"20":1.06722,"5.0-5.4":0.01036,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00298,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04913},Q:{"13.1":0},O:{"0":0},H:{"0":0.00665},L:{"0":3.75719}}; diff --git a/node_modules/caniuse-lite/data/regions/FR.js b/node_modules/caniuse-lite/data/regions/FR.js new file mode 100644 index 0000000..2907fc0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/FR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.0049,"45":0.0049,"46":0,"47":0.00979,"48":0.0049,"49":0,"50":0,"51":0,"52":0.02448,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.02937,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00979,"69":0,"70":0,"71":0,"72":0.0049,"73":0,"74":0,"75":0.0049,"76":0,"77":0.0049,"78":0.06364,"79":0.00979,"80":0.00979,"81":0.00979,"82":0.00979,"83":0.0049,"84":0,"85":0,"86":0,"87":0,"88":0.0049,"89":0.0049,"90":0.0049,"91":0.03427,"92":0,"93":0.00979,"94":0.01469,"95":0,"96":0,"97":0,"98":0,"99":0.0049,"100":0.00979,"101":0.0049,"102":0.15664,"103":0.27412,"104":0.00979,"105":0.01469,"106":0.00979,"107":0.01469,"108":0.01958,"109":0.03427,"110":0.05874,"111":1.36571,"112":1.21886,"113":0.0049,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.02448,"45":0,"46":0,"47":0,"48":0.0049,"49":0.02937,"50":0,"51":0.00979,"52":0.0049,"53":0,"54":0,"55":0,"56":0.05385,"57":0,"58":0,"59":0,"60":0.04895,"61":0,"62":0,"63":0.0049,"64":0,"65":0.0049,"66":0.11748,"67":0.00979,"68":0,"69":0,"70":0.0049,"71":0.00979,"72":0.0049,"73":0,"74":0.0049,"75":0.0049,"76":0.0049,"77":0.00979,"78":0.00979,"79":0.02937,"80":0.00979,"81":0.02937,"83":0.04406,"84":0.08322,"85":0.0979,"86":0.10769,"87":0.11748,"88":0.1028,"89":0.0049,"90":0.00979,"91":0.00979,"92":0.00979,"93":0.01958,"94":0.12727,"95":0.02448,"96":0.01958,"97":0.01469,"98":0.00979,"99":0.01958,"100":0.01958,"101":0.02937,"102":0.02448,"103":0.09301,"104":0.02448,"105":0.08322,"106":0.13706,"107":0.08811,"108":0.13217,"109":0.86642,"110":0.20559,"111":4.13628,"112":4.82647,"113":0.0049,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.0049,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0049,"68":0.01469,"69":0.02937,"70":0.0049,"71":0.0049,"72":0.0049,"73":0,"74":0.0049,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.0049,"90":0,"91":0.0049,"92":0.0049,"93":0.0049,"94":0.0049,"95":0.02448,"96":0.15664,"97":0.44055,"98":0.01958,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.0049,"15":0,"16":0,"17":0.01469,"18":0.01469,"79":0,"80":0,"81":0,"83":0,"84":0.0049,"85":0.0049,"86":0.0049,"87":0.0049,"88":0,"89":0,"90":0,"91":0,"92":0.0049,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.0049,"100":0,"101":0,"102":0,"103":0.0049,"104":0.0049,"105":0.0049,"106":0.00979,"107":0.01958,"108":0.04406,"109":0.07343,"110":0.05385,"111":0.82236,"112":1.84052,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00979,"14":0.04895,"15":0.01469,_:"0","3.1":0,"3.2":0,"5.1":0.0049,"6.1":0,"7.1":0,"9.1":0.0049,"10.1":0,"11.1":0.02937,"12.1":0.02937,"13.1":0.1028,"14.1":0.15664,"15.1":0.02448,"15.2-15.3":0.01958,"15.4":0.03916,"15.5":0.06853,"15.6":0.32307,"16.0":0.04895,"16.1":0.0979,"16.2":0.14196,"16.3":0.61677,"16.4":0.28391,"16.5":0.0049},G:{"8":0.00586,"3.2":0,"4.0-4.1":0.00586,"4.2-4.3":0,"5.0-5.1":0.01466,"6.0-6.1":0,"7.0-7.1":0.0088,"8.1-8.4":0,"9.0-9.2":0.03225,"9.3":0.1202,"10.0-10.2":0.01759,"10.3":0.12314,"11.0-11.2":0.0645,"11.3-11.4":0.04984,"12.0-12.1":0.03225,"12.2-12.5":0.63327,"13.0-13.1":0.03518,"13.2":0.01173,"13.3":0.05864,"13.4-13.7":0.24041,"14.0-14.4":0.43391,"14.5-14.8":0.70657,"15.0-15.1":0.20816,"15.2-15.3":0.23748,"15.4":0.26386,"15.5":0.49548,"15.6":1.43366,"16.0":2.28682,"16.1":3.76445,"16.2":2.40409,"16.3":9.93006,"16.4":4.05763,"16.5":0.129},P:{"4":0.07281,"20":2.69397,"5.0-5.4":0.0208,"6.2-6.4":0,"7.2-7.4":0.0104,"8.2":0,"9.2":0.0312,"10.1":0,"11.1-11.2":0.04161,"12.0":0.0208,"13.0":0.0312,"14.0":0.0312,"15.0":0.0208,"16.0":0.06241,"17.0":0.05201,"18.0":0.06241,"19.0":0.17682},I:{"0":0,"3":0,"4":0.02527,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01516,"4.2-4.3":0.10614,"4.4":0,"4.4.3-4.4.4":0.18196},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01018,"9":0.02036,"10":0,"11":0.09673,"5.5":0},S:{"2.5":0.01021,_:"3.0-3.1"},J:{"7":0,"10":0.00511},N:{"10":0.01021,"11":0},R:{_:"0"},M:{"0":0.59218},Q:{"13.1":0.00511},O:{"0":0.39309},H:{"0":0.43498},L:{"0":42.79976}}; diff --git a/node_modules/caniuse-lite/data/regions/GA.js b/node_modules/caniuse-lite/data/regions/GA.js new file mode 100644 index 0000000..34db7cb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00382,"35":0,"36":0,"37":0.00382,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00382,"49":0,"50":0,"51":0.09553,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00382,"88":0.01528,"89":0,"90":0,"91":0.00382,"92":0.00382,"93":0,"94":0,"95":0,"96":0,"97":0.00382,"98":0,"99":0,"100":0,"101":0,"102":0.00764,"103":0,"104":0,"105":0,"106":0,"107":0.00764,"108":0.00382,"109":0,"110":0.00382,"111":0.49673,"112":0.38592,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00382,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00382,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00382,"56":0.00764,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.02293,"70":0,"71":0,"72":0.00382,"73":0.00382,"74":0.00764,"75":0.00382,"76":0,"77":0,"78":0,"79":0.08788,"80":0,"81":0.27511,"83":0.01528,"84":0.01911,"85":0,"86":0,"87":0.11845,"88":0.01528,"89":0.00382,"90":0,"91":0,"92":0,"93":0.00382,"94":0,"95":0.04203,"96":0,"97":0,"98":0.00764,"99":0.00382,"100":0.00382,"101":0,"102":0.01528,"103":0.02675,"104":0.01146,"105":0.02293,"106":0.06114,"107":0.00764,"108":0.03821,"109":1.33353,"110":0.08406,"111":2.41869,"112":3.03005,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01528,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00382,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00382,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.02293,"62":0,"63":0.02675,"64":0.00764,"65":0,"66":0.00764,"67":0.25219,"68":0.12609,"69":0.30186,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00764,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.01528,"86":0,"87":0,"88":0,"89":0.01146,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04203,"96":0.04967,"97":0.55405,"98":0.01528,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00382},B:{"12":0.00382,"13":0.00382,"14":0,"15":0,"16":0,"17":0,"18":0.00382,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00764,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01146,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00382,"106":0.00382,"107":0,"108":0.01911,"109":0.05349,"110":0.01146,"111":0.49291,"112":1.12337,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00382,"15":0.00382,_:"0","3.1":0,"3.2":0,"5.1":0.00382,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01146,"14.1":0.00764,"15.1":0,"15.2-15.3":0,"15.4":0.00382,"15.5":0.00382,"15.6":0.06878,"16.0":0,"16.1":0.00764,"16.2":0.01528,"16.3":0.03057,"16.4":0.00764,"16.5":0},G:{"8":0.00165,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00494,"6.0-6.1":0,"7.0-7.1":0.03948,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04771,"10.0-10.2":0,"10.3":0.10199,"11.0-11.2":0.07567,"11.3-11.4":0,"12.0-12.1":0.22372,"12.2-12.5":4.57319,"13.0-13.1":0.01316,"13.2":0,"13.3":0.00658,"13.4-13.7":0.04113,"14.0-14.4":0.16121,"14.5-14.8":0.36026,"15.0-15.1":0.45732,"15.2-15.3":0.06251,"15.4":0.20563,"15.5":0.34546,"15.6":0.40139,"16.0":0.3652,"16.1":1.1252,"16.2":0.45238,"16.3":2.20105,"16.4":1.56278,"16.5":0.03948},P:{"4":0.34639,"20":1.41613,"5.0-5.4":0.01019,"6.2-6.4":0.01019,"7.2-7.4":0.40752,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.06113,"12.0":0,"13.0":0.14263,"14.0":0.02038,"15.0":0.16301,"16.0":0.37696,"17.0":0.09169,"18.0":0.23432,"19.0":0.14263},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01389,"4.4":0,"4.4.3-4.4.4":0.23806},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01528,"5.5":0},S:{"2.5":0.0309,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.51904},Q:{"13.1":0},O:{"0":0.30277},H:{"0":2.45695},L:{"0":65.82939}}; diff --git a/node_modules/caniuse-lite/data/regions/GB.js b/node_modules/caniuse-lite/data/regions/GB.js new file mode 100644 index 0000000..9e91fcd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GB.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00517,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00517,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00517,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00517,"49":0,"50":0,"51":0,"52":0.01034,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.01034,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00517,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0155,"79":0,"80":0,"81":0,"82":0,"83":0.00517,"84":0,"85":0,"86":0,"87":0.00517,"88":0,"89":0.00517,"90":0.00517,"91":0,"92":0,"93":0.00517,"94":0.00517,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02067,"103":0,"104":0.00517,"105":0.00517,"106":0.00517,"107":0,"108":0.00517,"109":0.02067,"110":0.02067,"111":0.55814,"112":0.42378,"113":0.00517,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00517,"39":0,"40":0.10853,"41":0.00517,"42":0.00517,"43":0.00517,"44":0.01034,"45":0.0155,"46":0,"47":0,"48":0,"49":0.0155,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.05168,"57":0,"58":0.02584,"59":0,"60":0.01034,"61":0,"62":0,"63":0,"64":0,"65":0.00517,"66":0.04134,"67":0.00517,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00517,"75":0.00517,"76":0.01034,"77":0.01034,"78":0.00517,"79":0.04651,"80":0.02067,"81":0.02067,"83":0.03101,"84":0.0155,"85":0.0155,"86":0.0155,"87":0.03618,"88":0.00517,"89":0.01034,"90":0.01034,"91":0.02584,"92":0.0155,"93":0.06718,"94":0.0155,"95":0.01034,"96":0.04651,"97":0.01034,"98":0.01034,"99":0.01034,"100":0.01034,"101":0.02067,"102":0.02067,"103":0.21189,"104":0.04134,"105":0.04651,"106":0.04134,"107":0.04134,"108":0.12403,"109":0.62533,"110":0.28424,"111":5.25069,"112":6.64605,"113":0.01034,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00517,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00517,"69":0.01034,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00517,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02067,"96":0.13437,"97":0.32042,"98":0.01034,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00517,"18":0.02067,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00517,"93":0,"94":0,"95":0.00517,"96":0.00517,"97":0,"98":0,"99":0,"100":0,"101":0.00517,"102":0,"103":0,"104":0,"105":0.00517,"106":0.00517,"107":0.00517,"108":0.0155,"109":0.06202,"110":0.05685,"111":1.24032,"112":2.88374,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.00517,"9":0,"10":0,"11":0,"12":0,"13":0.01034,"14":0.07235,"15":0.0155,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.01034,"12.1":0.02067,"13.1":0.09302,"14.1":0.19122,"15.1":0.02584,"15.2-15.3":0.02067,"15.4":0.05685,"15.5":0.08786,"15.6":0.5323,"16.0":0.05168,"16.1":0.13437,"16.2":0.30491,"16.3":1.31267,"16.4":0.53747,"16.5":0.00517},G:{"8":0.0083,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0083,"7.0-7.1":0.03318,"8.1-8.4":0.1037,"9.0-9.2":0.00415,"9.3":0.28207,"10.0-10.2":0,"10.3":0.24473,"11.0-11.2":0.01659,"11.3-11.4":0.07466,"12.0-12.1":0.03318,"12.2-12.5":1.17804,"13.0-13.1":0.01244,"13.2":0.00415,"13.3":0.02904,"13.4-13.7":0.09955,"14.0-14.4":0.26547,"14.5-14.8":0.80057,"15.0-15.1":0.15763,"15.2-15.3":0.23644,"15.4":0.24473,"15.5":0.51436,"15.6":2.1155,"16.0":2.45564,"16.1":5.55837,"16.2":3.01148,"16.3":15.37263,"16.4":5.96073,"16.5":0.112},P:{"4":0.1274,"20":3.29114,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01062,"12.0":0.01062,"13.0":0.02123,"14.0":0.02123,"15.0":0.01062,"16.0":0.02123,"17.0":0.03185,"18.0":0.03185,"19.0":0.13802},I:{"0":0,"3":0,"4":0.21479,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02148,"4.2-4.3":0.18043,"4.4":0,"4.4.3-4.4.4":0.24057},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01034,"9":0.01034,"10":0.00517,"11":0.08269,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.3624},Q:{"13.1":0},O:{"0":0.09664},H:{"0":0.18299},L:{"0":29.6463}}; diff --git a/node_modules/caniuse-lite/data/regions/GD.js b/node_modules/caniuse-lite/data/regions/GD.js new file mode 100644 index 0000000..ec732c5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00514,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01541,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.03597,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01541,"103":0.00514,"104":0.00514,"105":0.00514,"106":0,"107":0,"108":0.01028,"109":0.00514,"110":0.0411,"111":0.43159,"112":0.33911,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00514,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.01028,"71":0,"72":0,"73":0.01028,"74":0,"75":0,"76":0.03083,"77":0,"78":0,"79":0.03083,"80":0,"81":0,"83":0.00514,"84":0,"85":0,"86":0.01028,"87":0.07193,"88":0.02569,"89":0.01028,"90":0.02055,"91":0,"92":0.01028,"93":0.03083,"94":0.00514,"95":0.02569,"96":0.03083,"97":0.00514,"98":0.00514,"99":0.00514,"100":0.00514,"101":0.00514,"102":0.01541,"103":0.13873,"104":0.00514,"105":0.00514,"106":0.02569,"107":0.02569,"108":0.11304,"109":0.53949,"110":0.16442,"111":6.19643,"112":6.62802,"113":0.01028,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00514,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00514,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00514,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.15928,"97":0.23635,"98":0.01028,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0.00514,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00514,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.01028,"108":0,"109":0.02055,"110":0.02569,"111":1.25881,"112":2.24531,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.11304,"15":0.01028,_:"0","3.1":0,"3.2":0,"5.1":0.00514,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00514,"13.1":0.05652,"14.1":0.15414,"15.1":0.01028,"15.2-15.3":0.01028,"15.4":0.07193,"15.5":0.04624,"15.6":0.33911,"16.0":0.01541,"16.1":0.28259,"16.2":0.53435,"16.3":1.19715,"16.4":0.33911,"16.5":0.00514},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0978,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03954,"10.0-10.2":0.01457,"10.3":0.0437,"11.0-11.2":0.02081,"11.3-11.4":0.01665,"12.0-12.1":0,"12.2-12.5":0.40162,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.00624,"14.0-14.4":0.12278,"14.5-14.8":0.49735,"15.0-15.1":0.0541,"15.2-15.3":0.08948,"15.4":0.13318,"15.5":0.29341,"15.6":0.51608,"16.0":0.97389,"16.1":2.3265,"16.2":1.71679,"16.3":8.02831,"16.4":3.53554,"16.5":0.09364},P:{"4":0.2081,"20":2.79893,"5.0-5.4":0,"6.2-6.4":0.02081,"7.2-7.4":0.14567,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.08324,"12.0":0,"13.0":0.03121,"14.0":0.0104,"15.0":0,"16.0":0.07283,"17.0":0.02081,"18.0":0.02081,"19.0":0.23931},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.84667},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00514,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.13614},Q:{"13.1":0},O:{"0":0.12641},H:{"0":0.21174},L:{"0":51.09498}}; diff --git a/node_modules/caniuse-lite/data/regions/GE.js b/node_modules/caniuse-lite/data/regions/GE.js new file mode 100644 index 0000000..c66ffc8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00474,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00474,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01898,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.06642,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00949,"100":0,"101":0,"102":0.00474,"103":0,"104":0.00474,"105":0.00474,"106":0.00474,"107":0,"108":0.00474,"109":0.00474,"110":0.0427,"111":0.3131,"112":0.32259,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00474,"39":0,"40":0.00474,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00949,"48":0,"49":0.02846,"50":0.00474,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00474,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00949,"64":0,"65":0,"66":0.00949,"67":0.00474,"68":0.01423,"69":0,"70":0.00474,"71":0.00474,"72":0,"73":0.00949,"74":0.00949,"75":0,"76":0,"77":0.00474,"78":0.00474,"79":0.09014,"80":0.00474,"81":0.01423,"83":0.07116,"84":0.00474,"85":0.00949,"86":0.00949,"87":0.05218,"88":0.01423,"89":0.00474,"90":0.00949,"91":0.00949,"92":0.00949,"93":0.00474,"94":0.14232,"95":0.01898,"96":0.01898,"97":0.00949,"98":0.03795,"99":0.00949,"100":0.00949,"101":0.00949,"102":0.02372,"103":0.06642,"104":0.00949,"105":0.02372,"106":0.03321,"107":0.02846,"108":0.09488,"109":2.82742,"110":0.15181,"111":4.85786,"112":5.98693,"113":0.00949,"114":0.00474,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01423,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01423,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00474,"64":0,"65":0,"66":0,"67":0,"68":0.00474,"69":0.01423,"70":0,"71":0,"72":0,"73":0,"74":0.00474,"75":0,"76":0,"77":0,"78":0,"79":0.00474,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.02372,"86":0.00474,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00474,"95":0.36054,"96":0.22771,"97":0.83969,"98":0.03795,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00474,"13":0.00949,"14":0.04744,"15":0.00474,"16":0.02846,"17":0,"18":0.02372,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00949,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00474,"100":0,"101":0.00949,"102":0,"103":0,"104":0,"105":0.00474,"106":0.00474,"107":0.00949,"108":0.01423,"109":0.02846,"110":0.03795,"111":0.45068,"112":0.86815,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.05693,"15":0.00474,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00474,"13.1":0.02372,"14.1":0.04744,"15.1":0.00474,"15.2-15.3":0.00474,"15.4":0.01423,"15.5":0.01898,"15.6":0.10911,"16.0":0.00949,"16.1":0.0759,"16.2":0.05693,"16.3":0.20874,"16.4":0.11386,"16.5":0.00474},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03592,"6.0-6.1":0,"7.0-7.1":0.13571,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05588,"10.0-10.2":0.00599,"10.3":0.10578,"11.0-11.2":0.03992,"11.3-11.4":0.01796,"12.0-12.1":0.01796,"12.2-12.5":0.70051,"13.0-13.1":0.00998,"13.2":0.00399,"13.3":0.03992,"13.4-13.7":0.12972,"14.0-14.4":0.24548,"14.5-14.8":0.65261,"15.0-15.1":0.1417,"15.2-15.3":0.18561,"15.4":0.25745,"15.5":0.40913,"15.6":0.87614,"16.0":1.84608,"16.1":1.92591,"16.2":1.12561,"16.3":5.23688,"16.4":3.66821,"16.5":0.07384},P:{"4":0.56237,"20":1.22888,"5.0-5.4":0.01041,"6.2-6.4":0,"7.2-7.4":0.0729,"8.2":0,"9.2":0.01041,"10.1":0,"11.1-11.2":0.02083,"12.0":0.01041,"13.0":0.04166,"14.0":0,"15.0":0.01041,"16.0":0.05207,"17.0":0.04166,"18.0":0.03124,"19.0":0.13538},I:{"0":0,"3":0,"4":0.04484,"2.1":0,"2.2":0,"2.3":0.01495,"4.1":0.04484,"4.2-4.3":0.13451,"4.4":0,"4.4.3-4.4.4":0.70246},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00949,"9":0,"10":0,"11":0.02372,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00526},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12614},Q:{"13.1":0},O:{"0":0.05782},H:{"0":0.34832},L:{"0":56.69224}}; diff --git a/node_modules/caniuse-lite/data/regions/GF.js b/node_modules/caniuse-lite/data/regions/GF.js new file mode 100644 index 0000000..ce6af0f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00427,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01282,"79":0,"80":0,"81":0,"82":0.00427,"83":0,"84":0,"85":0,"86":0.00854,"87":0.00427,"88":0,"89":0,"90":0,"91":0.00427,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00427,"101":0,"102":0.05554,"103":0,"104":0.02563,"105":0.00427,"106":0,"107":0,"108":0.00427,"109":0.00427,"110":0.00854,"111":1.02101,"112":0.91421,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00427,"48":0,"49":0.00854,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00427,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00854,"77":0.00427,"78":0,"79":0.00427,"80":0,"81":0.00427,"83":0,"84":0,"85":0.00427,"86":0,"87":0.00427,"88":0,"89":0.00427,"90":0.00427,"91":0,"92":0,"93":0,"94":0.01282,"95":0.00427,"96":0,"97":0,"98":0.02136,"99":0.17515,"100":0,"101":0,"102":0.00427,"103":0.01709,"104":0.05981,"105":0.00854,"106":0.00854,"107":0.00854,"108":0.03418,"109":0.34176,"110":0.08544,"111":2.97758,"112":4.54541,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01282,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00427,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00427,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02136,"96":0.20078,"97":0.23496,"98":0.00854,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00854,"16":0,"17":0,"18":0.00427,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00427,"92":0.00427,"93":0.00427,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00854,"103":0,"104":0,"105":0,"106":0,"107":0.01282,"108":0.00427,"109":0.01709,"110":0.03845,"111":1.05946,"112":2.61874,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01282,"14":0.01282,"15":0.00427,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00427,"13.1":0.02563,"14.1":0.06408,"15.1":0.00427,"15.2-15.3":0.00854,"15.4":0.01282,"15.5":0.02563,"15.6":0.10253,"16.0":0.0299,"16.1":0.14098,"16.2":0.22642,"16.3":0.55963,"16.4":0.14952,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.29413,"10.0-10.2":0,"10.3":0.01337,"11.0-11.2":0.00891,"11.3-11.4":0.01114,"12.0-12.1":0.00668,"12.2-12.5":0.15152,"13.0-13.1":0.02451,"13.2":0.0156,"13.3":0.01114,"13.4-13.7":0.03342,"14.0-14.4":0.56153,"14.5-14.8":0.27631,"15.0-15.1":0.26739,"15.2-15.3":0.17826,"15.4":0.205,"15.5":0.24065,"15.6":0.79327,"16.0":2.66057,"16.1":2.91013,"16.2":1.57762,"16.3":8.09534,"16.4":2.93019,"16.5":0.06016},P:{"4":0.05104,"20":3.33816,"5.0-5.4":0.02042,"6.2-6.4":0.01021,"7.2-7.4":0.09188,"8.2":0,"9.2":0.09188,"10.1":0,"11.1-11.2":0.04083,"12.0":0.01021,"13.0":0.01021,"14.0":0.09188,"15.0":0.01021,"16.0":0.245,"17.0":0.05104,"18.0":0.05104,"19.0":0.23479},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.14534},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00854,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.37805},Q:{"13.1":0},O:{"0":0.03437},H:{"0":0.09761},L:{"0":55.36989}}; diff --git a/node_modules/caniuse-lite/data/regions/GG.js b/node_modules/caniuse-lite/data/regions/GG.js new file mode 100644 index 0000000..31dddb6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01471,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02452,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00981,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.09806,"103":0.0049,"104":0,"105":0,"106":0.0049,"107":0,"108":0,"109":0.0049,"110":0.0049,"111":0.42656,"112":0.37263,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0049,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.03922,"77":0.00981,"78":0,"79":0.0049,"80":0,"81":0,"83":0,"84":0.28928,"85":0,"86":0.0049,"87":0,"88":0,"89":0.0049,"90":0,"91":0.0049,"92":0.0049,"93":0.01471,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00981,"100":0.0049,"101":0,"102":0,"103":0.04903,"104":0.0049,"105":0.0049,"106":0.01471,"107":0.00981,"108":0.00981,"109":0.44127,"110":0.26967,"111":4.03517,"112":4.27542,"113":0.0049,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.12258,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.0049,"91":0,"92":0,"93":0,"94":0,"95":0.00981,"96":0.04413,"97":0.19122,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.0049,"104":0,"105":0,"106":0,"107":0.0049,"108":0,"109":0.01471,"110":0.05393,"111":1.02963,"112":2.15732,"113":0.0049},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0049,"14":0.04903,"15":0.00981,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.02452,"12.1":0.01471,"13.1":0.21573,"14.1":0.26967,"15.1":0.00981,"15.2-15.3":0.03432,"15.4":0.17161,"15.5":0.12258,"15.6":0.9806,"16.0":0.05884,"16.1":0.17651,"16.2":0.59817,"16.3":3.79002,"16.4":1.00512,"16.5":0.0049},G:{"8":0.05732,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00521,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.33352,"10.0-10.2":0,"10.3":0.42211,"11.0-11.2":0.17197,"11.3-11.4":0.01563,"12.0-12.1":0.03127,"12.2-12.5":1.47479,"13.0-13.1":0,"13.2":0,"13.3":0.01042,"13.4-13.7":0.07817,"14.0-14.4":0.21366,"14.5-14.8":1.54775,"15.0-15.1":0.11465,"15.2-15.3":0.06775,"15.4":0.26577,"15.5":0.77648,"15.6":2.89225,"16.0":2.70986,"16.1":5.8731,"16.2":3.77817,"16.3":21.12126,"16.4":7.48338,"16.5":0.04169},P:{"4":0.05346,"20":4.61863,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01069,"12.0":0,"13.0":0.04277,"14.0":0.01069,"15.0":0,"16.0":0.01069,"17.0":0.02138,"18.0":0.01069,"19.0":0.04277},I:{"0":0,"3":0,"4":0.06541,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.32703},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.09806,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.70848},Q:{"13.1":0},O:{"0":0.0051},H:{"0":0.43912},L:{"0":19.38848}}; diff --git a/node_modules/caniuse-lite/data/regions/GH.js b/node_modules/caniuse-lite/data/regions/GH.js new file mode 100644 index 0000000..727301b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00276,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00276,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00276,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00553,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00553,"103":0,"104":0.00276,"105":0.00276,"106":0,"107":0.00276,"108":0.00276,"109":0.01106,"110":0.01935,"111":0.24323,"112":0.18242,"113":0.01382,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00276,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00276,"41":0,"42":0,"43":0.00276,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00276,"50":0.00276,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00276,"65":0.00276,"66":0,"67":0,"68":0.00276,"69":0.00276,"70":0.00276,"71":0.00276,"72":0,"73":0.00276,"74":0.00829,"75":0.00276,"76":0.00276,"77":0.00276,"78":0.00276,"79":0.01658,"80":0.00829,"81":0.01106,"83":0.00276,"84":0.00276,"85":0.00829,"86":0.00553,"87":0.00829,"88":0.00553,"89":0.00276,"90":0.00276,"91":0.00553,"92":0.00276,"93":0.00829,"94":0.00276,"95":0.01106,"96":0.00276,"97":0.00276,"98":0.00553,"99":0.01106,"100":0.00553,"101":0.00553,"102":0.01106,"103":0.03593,"104":0.01382,"105":0.01658,"106":0.01382,"107":0.01382,"108":0.03593,"109":0.61914,"110":0.05528,"111":1.41517,"112":1.56442,"113":0.00553,"114":0.00276,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00276,"25":0,"26":0.00276,"27":0.00553,"28":0.00276,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00276,"43":0,"44":0,"45":0,"46":0.00276,"47":0,"48":0,"49":0,"50":0.00276,"51":0,"52":0,"53":0,"54":0.00553,"55":0.00276,"56":0,"57":0.00276,"58":0.01382,"60":0.05252,"62":0,"63":0.07463,"64":0.02764,"65":0.02211,"66":0.35379,"67":0.445,"68":0.50305,"69":0.61084,"70":0.00276,"71":0,"72":0.00276,"73":0.00829,"74":0.06634,"75":0.00829,"76":0,"77":0,"78":0,"79":0.00553,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00276,"86":0.00276,"87":0,"88":0,"89":0.00276,"90":0,"91":0,"92":0,"93":0,"94":0.00276,"95":0.03593,"96":0.04146,"97":0.19901,"98":0.00553,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00829},B:{"12":0.00553,"13":0.00276,"14":0.00553,"15":0.00553,"16":0.00276,"17":0.00276,"18":0.01658,"79":0,"80":0,"81":0,"83":0,"84":0.00553,"85":0,"86":0,"87":0,"88":0,"89":0.00829,"90":0.00829,"91":0,"92":0.02211,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00276,"101":0,"102":0,"103":0.00276,"104":0.00276,"105":0.00276,"106":0.00276,"107":0.00553,"108":0.01106,"109":0.01935,"110":0.02764,"111":0.27087,"112":0.40631,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00276,"14":0.00553,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00553,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00276,"12.1":0.00276,"13.1":0.01382,"14.1":0.01106,"15.1":0.00276,"15.2-15.3":0.00276,"15.4":0.00276,"15.5":0.01106,"15.6":0.02488,"16.0":0.00553,"16.1":0.01382,"16.2":0.01382,"16.3":0.06081,"16.4":0.02764,"16.5":0},G:{"8":0.00513,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00256,"6.0-6.1":0,"7.0-7.1":0.03333,"8.1-8.4":0.00513,"9.0-9.2":0,"9.3":0.11025,"10.0-10.2":0.01538,"10.3":0.24613,"11.0-11.2":0.0282,"11.3-11.4":0.00769,"12.0-12.1":0.11537,"12.2-12.5":1.76395,"13.0-13.1":0.05897,"13.2":0.03333,"13.3":0.09743,"13.4-13.7":0.21024,"14.0-14.4":1.42296,"14.5-14.8":1.41527,"15.0-15.1":0.93069,"15.2-15.3":0.83839,"15.4":0.63841,"15.5":1.05119,"15.6":1.03325,"16.0":1.91522,"16.1":1.86651,"16.2":1.43065,"16.3":3.97146,"16.4":2.65619,"16.5":0.05128},P:{"4":0.15294,"20":0.91766,"5.0-5.4":0.02039,"6.2-6.4":0,"7.2-7.4":0.18353,"8.2":0,"9.2":0.04078,"10.1":0,"11.1-11.2":0.03059,"12.0":0.0102,"13.0":0.02039,"14.0":0.02039,"15.0":0.02039,"16.0":0.09177,"17.0":0.04078,"18.0":0.07137,"19.0":0.17334},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00492,"4.2-4.3":0.01182,"4.4":0,"4.4.3-4.4.4":0.09748},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00553,"9":0,"10":0.00276,"11":0.01106,"5.5":0},S:{"2.5":0.00724,_:"3.0-3.1"},J:{"7":0,"10":0.00724},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21708},Q:{"13.1":0.01447},O:{"0":1.21565},H:{"0":13.23532},L:{"0":49.57733}}; diff --git a/node_modules/caniuse-lite/data/regions/GI.js b/node_modules/caniuse-lite/data/regions/GI.js new file mode 100644 index 0000000..981889b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.01212,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01818,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01212,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00606,"103":0,"104":0.00606,"105":0,"106":0.00606,"107":0.00606,"108":0.01212,"109":0.01212,"110":0.82416,"111":1.1514,"112":0.3636,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.02424,"66":0,"67":0,"68":0,"69":0.00606,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.01212,"80":0.00606,"81":0.01212,"83":0,"84":0,"85":0,"86":0.00606,"87":0.00606,"88":0,"89":0,"90":0.01818,"91":0.00606,"92":0.10908,"93":0,"94":0,"95":0,"96":0,"97":0.01818,"98":0.00606,"99":0,"100":0.00606,"101":0.00606,"102":0,"103":0.08484,"104":0.00606,"105":0.00606,"106":0.08484,"107":0.12726,"108":6.68418,"109":1.55136,"110":0.50298,"111":6.47814,"112":7.3629,"113":0,"114":0.00606,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.08484,"69":0.03636,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00606,"95":0.00606,"96":0.23028,"97":0.49086,"98":0.00606,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00606,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00606,"108":0.01212,"109":0.04242,"110":0.09696,"111":1.35744,"112":2.69064,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.00606,"9":0,"10":0,"11":0,"12":0,"13":0.06666,"14":0.12726,"15":0.02424,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.05454,"13.1":0.08484,"14.1":0.1515,"15.1":0.01212,"15.2-15.3":0.03636,"15.4":0.01212,"15.5":0.11514,"15.6":0.58176,"16.0":0.02424,"16.1":0.2424,"16.2":0.22422,"16.3":1.4241,"16.4":0.76962,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01654,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04962,"10.0-10.2":0.00331,"10.3":0.05955,"11.0-11.2":0.01323,"11.3-11.4":0,"12.0-12.1":0.00992,"12.2-12.5":0.54586,"13.0-13.1":0.00662,"13.2":0,"13.3":0.01323,"13.4-13.7":0.02316,"14.0-14.4":0.08601,"14.5-14.8":0.53263,"15.0-15.1":0.06616,"15.2-15.3":0.41022,"15.4":0.19849,"15.5":0.44992,"15.6":1.63758,"16.0":2.44148,"16.1":4.77378,"16.2":3.58944,"16.3":12.90874,"16.4":3.735,"16.5":0.05955},P:{"4":0.12396,"20":2.48943,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.01033,"17.0":0.02066,"18.0":0.01033,"19.0":0.07231},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.11878},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01818,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.30338},Q:{"13.1":0.00394},O:{"0":0.03546},H:{"0":0.39166},L:{"0":27.84398}}; diff --git a/node_modules/caniuse-lite/data/regions/GL.js b/node_modules/caniuse-lite/data/regions/GL.js new file mode 100644 index 0000000..707c54b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.01641,"3":0,"4":0.01094,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00547,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00547,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.00547,"32":0,"33":0,"34":0,"35":0,"36":0.00547,"37":0.00547,"38":0.00547,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00547,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00547,"99":0,"100":0,"101":0.00547,"102":0.00547,"103":0,"104":0,"105":0.00547,"106":0,"107":0,"108":0.00547,"109":0,"110":0,"111":0.40485,"112":0.61822,"113":0,"114":0,"3.5":0,"3.6":0.01094},D:{"4":0.00547,"5":0,"6":0.00547,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.01094,"27":0,"28":0.00547,"29":0,"30":0,"31":0.00547,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.02736,"40":0.02736,"41":0.02736,"42":0.00547,"43":0.04377,"44":0.07659,"45":0.09848,"46":0.02188,"47":0.03283,"48":0,"49":0.00547,"50":0,"51":0.02188,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00547,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.01094,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00547,"80":0.43221,"81":0.00547,"83":0,"84":0,"85":0,"86":0,"87":0.09848,"88":0.01641,"89":0.00547,"90":0.00547,"91":0,"92":0,"93":0,"94":0.01094,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.01094,"101":0,"102":0,"103":0.02188,"104":0,"105":0.59087,"106":0.00547,"107":0.03283,"108":0.0383,"109":0.2462,"110":0.18601,"111":4.85825,"112":4.38774,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0.01641,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0.00547,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00547,"27":0.00547,"28":0.01094,"29":0.01641,"30":0.0383,"31":0.01641,"32":0.03283,"33":0,"34":0,"35":0,"36":0.01641,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00547,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01094,"70":0,"71":0,"72":0,"73":0,"74":0.01641,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00547,"95":0,"96":0.77141,"97":3.23336,"98":0.01641,"9.5-9.6":0.00547,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0.00547,"11.5":0,"11.6":0.00547,"12.1":0.05471},B:{"12":0.05471,"13":0,"14":0.0383,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00547,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.01641,"108":0.00547,"109":0.01641,"110":0.05471,"111":0.68935,"112":2.42365,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.07659,"15":0.00547,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01094,"13.1":0.09301,"14.1":0.19149,"15.1":0.01641,"15.2-15.3":0.01094,"15.4":0.02736,"15.5":0.20243,"15.6":0.43768,"16.0":0.02736,"16.1":0.12583,"16.2":0.21884,"16.3":1.61395,"16.4":0.74406,"16.5":0.01094},G:{"8":0.02309,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01649,"6.0-6.1":0,"7.0-7.1":0.22097,"8.1-8.4":0.36938,"9.0-9.2":0.03628,"9.3":0.09234,"10.0-10.2":0,"10.3":0.04287,"11.0-11.2":0,"11.3-11.4":0.00989,"12.0-12.1":0,"12.2-12.5":0.21767,"13.0-13.1":0,"13.2":0,"13.3":0.00989,"13.4-13.7":0.0066,"14.0-14.4":0.05607,"14.5-14.8":0.37268,"15.0-15.1":0.04617,"15.2-15.3":0.19458,"15.4":0.1715,"15.5":0.11213,"15.6":1.3357,"16.0":4.62714,"16.1":3.73007,"16.2":1.72157,"16.3":9.54451,"16.4":7.09407,"16.5":0.08575},P:{"4":0.45391,"20":3.63125,"5.0-5.4":0,"6.2-6.4":0.08253,"7.2-7.4":0.01032,"8.2":0,"9.2":0,"10.1":0.05158,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0.01032,"16.0":0,"17.0":0,"18.0":0,"19.0":0.02063},I:{"0":0,"3":0.02517,"4":0.26428,"2.1":0.04877,"2.2":0.10383,"2.3":0.21866,"4.1":0.37755,"4.2-4.3":0.62452,"4.4":0,"4.4.3-4.4.4":1.63603},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0723,"7":0.12791,"8":1.36809,"9":0.22245,"10":0.27251,"11":0.78415,"5.5":0.01112},S:{"2.5":0.05888,_:"3.0-3.1"},J:{"7":0,"10":0.10417},N:{"10":0.17172,"11":0.12266},R:{_:"0"},M:{"0":0.2491},Q:{"13.1":0},O:{"0":0.58877},H:{"0":0.61315},L:{"0":28.19119}}; diff --git a/node_modules/caniuse-lite/data/regions/GM.js b/node_modules/caniuse-lite/data/regions/GM.js new file mode 100644 index 0000000..184bb10 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00213,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00213,"59":0.00213,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00213,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00213,"80":0.00213,"81":0,"82":0,"83":0.00213,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.01067,"98":0,"99":0,"100":0,"101":0,"102":0.02988,"103":0,"104":0,"105":0.00213,"106":0,"107":0.00213,"108":0,"109":0,"110":0.0064,"111":0.08963,"112":0.09816,"113":0.00213,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00854,"34":0.00213,"35":0,"36":0.00427,"37":0,"38":0,"39":0,"40":0.00427,"41":0,"42":0,"43":0.00213,"44":0,"45":0.00213,"46":0,"47":0,"48":0,"49":0.01067,"50":0.00213,"51":0,"52":0,"53":0.00213,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00213,"61":0.00213,"62":0,"63":0.00213,"64":0.00213,"65":0,"66":0.00213,"67":0.00213,"68":0.00213,"69":0.00427,"70":0.00213,"71":0.00213,"72":0.00213,"73":0.00213,"74":0.00213,"75":0.0064,"76":0.00213,"77":0.00213,"78":0.00427,"79":0.01921,"80":0.0128,"81":0.03414,"83":0.00427,"84":0.0064,"85":0.00427,"86":0.00427,"87":0.00427,"88":0.00213,"89":0.00427,"90":0.00427,"91":0.00213,"92":0,"93":0.02134,"94":0,"95":0.00854,"96":0,"97":0,"98":0.00213,"99":0.00213,"100":0,"101":0.00213,"102":0,"103":0.00427,"104":0.00213,"105":0,"106":0.0064,"107":0.03841,"108":0.00427,"109":0.37345,"110":0.06189,"111":0.29022,"112":0.40119,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00427,"62":0,"63":0.00427,"64":0,"65":0,"66":0.00427,"67":0.0064,"68":0.0128,"69":0.02561,"70":0,"71":0,"72":0,"73":0,"74":0.00427,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0064,"96":0.00213,"97":0.03414,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00213},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.0064,"79":0.00213,"80":0.00213,"81":0.00213,"83":0.00213,"84":0.00213,"85":0.00854,"86":0.00427,"87":0.0064,"88":0,"89":0,"90":0.00213,"91":0,"92":0.0064,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.01494,"111":0.10243,"112":0.14938,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00213,"13":0.00213,"14":0.00213,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00213,"6.1":0,"7.1":0,"9.1":0.0064,"10.1":0,"11.1":0,"12.1":0.00213,"13.1":0.00427,"14.1":0.00427,"15.1":0,"15.2-15.3":0,"15.4":0.00213,"15.5":0,"15.6":0.03628,"16.0":0.00213,"16.1":0.00427,"16.2":0.00213,"16.3":0.02134,"16.4":0.0064,"16.5":0},G:{"8":0.00499,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.369,"8.1-8.4":0,"9.0-9.2":0.00499,"9.3":0.47123,"10.0-10.2":0,"10.3":0.40889,"11.0-11.2":0.00997,"11.3-11.4":0.01247,"12.0-12.1":0.21442,"12.2-12.5":4.22108,"13.0-13.1":0.58342,"13.2":0.06981,"13.3":0.4064,"13.4-13.7":0.26428,"14.0-14.4":1.53834,"14.5-14.8":1.61563,"15.0-15.1":0.50364,"15.2-15.3":0.31914,"15.4":0.60586,"15.5":0.9624,"15.6":1.26408,"16.0":0.87763,"16.1":1.72533,"16.2":0.94993,"16.3":2.82735,"16.4":1.25161,"16.5":0.02244},P:{"4":1.2869,"20":1.33838,"5.0-5.4":0.29856,"6.2-6.4":0.0103,"7.2-7.4":0.07207,"8.2":0,"9.2":0.02059,"10.1":0,"11.1-11.2":0.08236,"12.0":0,"13.0":0.07207,"14.0":0,"15.0":0,"16.0":0.11325,"17.0":0.05148,"18.0":0.04118,"19.0":0.11325},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00553,"4.2-4.3":0.01561,"4.4":0,"4.4.3-4.4.4":0.11342},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00213,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.03146},Q:{"13.1":0},O:{"0":0.61355},H:{"0":0.7447},L:{"0":70.04454}}; diff --git a/node_modules/caniuse-lite/data/regions/GN.js b/node_modules/caniuse-lite/data/regions/GN.js new file mode 100644 index 0000000..28f38ab --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00113,"109":0,"110":0.00226,"111":0.02375,"112":0.0147,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00566,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00113,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00226,"70":0,"71":0,"72":0.00113,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0.00452,"83":0,"84":0,"85":0,"86":0,"87":0.00452,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00226,"100":0,"101":0,"102":0.00113,"103":0.00113,"104":0,"105":0.00113,"106":0,"107":0,"108":0.00226,"109":0.01583,"110":0.00226,"111":0.08596,"112":0.08822,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0.00113,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.01244,"55":0,"56":0,"57":0,"58":0,"60":0.00792,"62":0,"63":0.00452,"64":0.02714,"65":0.00113,"66":0.00566,"67":0.00905,"68":0.00452,"69":0.00792,"70":0,"71":0,"72":0.00226,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00113,"96":0.00113,"97":0.01018,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00113,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00452,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00226,"86":0,"87":0,"88":0,"89":0.00226,"90":0,"91":0,"92":0.00113,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00113,"106":0,"107":0.00113,"108":0,"109":0,"110":0.00226,"111":0.02262,"112":0.04185,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00113,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00113,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.00452,"16.0":0,"16.1":0,"16.2":0,"16.3":0.00113,"16.4":0.00113,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.04115,"8.1-8.4":0.02305,"9.0-9.2":0,"9.3":0.05268,"10.0-10.2":0.03622,"10.3":0.45599,"11.0-11.2":0.06091,"11.3-11.4":0.22388,"12.0-12.1":0.22552,"12.2-12.5":2.4429,"13.0-13.1":0.33252,"13.2":0.07902,"13.3":0.29137,"13.4-13.7":0.49056,"14.0-14.4":1.35808,"14.5-14.8":0.6848,"15.0-15.1":0.90045,"15.2-15.3":0.57616,"15.4":0.39837,"15.5":0.75723,"15.6":0.72266,"16.0":0.9202,"16.1":0.97947,"16.2":0.53829,"16.3":1.92436,"16.4":0.80991,"16.5":0.00823},P:{"4":0.31166,"20":0.59315,"5.0-5.4":0.12064,"6.2-6.4":0.10053,"7.2-7.4":0.2815,"8.2":0.08043,"9.2":0.1508,"10.1":0.03016,"11.1-11.2":0.10053,"12.0":0.04021,"13.0":0.02011,"14.0":0.21112,"15.0":0.04021,"16.0":0.50267,"17.0":0.08043,"18.0":0.18096,"19.0":0.24128},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00251,"4.4":0,"4.4.3-4.4.4":0.09541},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00226,"5.5":0},S:{"2.5":0.23059,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.01774},Q:{"13.1":0.00887},O:{"0":0.08869},H:{"0":8.07753},L:{"0":70.79339}}; diff --git a/node_modules/caniuse-lite/data/regions/GP.js b/node_modules/caniuse-lite/data/regions/GP.js new file mode 100644 index 0000000..982f4a9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GP.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.0046,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.0046,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0184,"79":0,"80":0.0046,"81":0,"82":0,"83":0.0046,"84":0.0138,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.0092,"92":0,"93":0,"94":0,"95":0,"96":0.0046,"97":0.0046,"98":0,"99":0,"100":0.0092,"101":0,"102":0.0184,"103":0,"104":0,"105":0,"106":0,"107":0.0046,"108":0.0046,"109":0.03221,"110":0.05521,"111":0.80518,"112":0.78677,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0046,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.05521,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.0046,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.0046,"76":0,"77":0,"78":0,"79":0.0092,"80":0.0046,"81":0.0046,"83":0,"84":0,"85":0,"86":0,"87":0.0092,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0046,"96":0,"97":0,"98":0.0046,"99":0.0046,"100":0.0046,"101":0,"102":0.0092,"103":0.09202,"104":0.0046,"105":0.0046,"106":0.0092,"107":0.0138,"108":0.02761,"109":0.4785,"110":0.12883,"111":4.1593,"112":4.78504,"113":0.03681,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02301,"96":0.30367,"97":0.60273,"98":0.0092,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.0046,"18":0.0046,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.0046,"91":0,"92":0.0046,"93":0,"94":0,"95":0,"96":0,"97":0.05521,"98":0,"99":0.0046,"100":0.0046,"101":0,"102":0.0092,"103":0,"104":0,"105":0.0092,"106":0.0092,"107":0.0046,"108":0.0138,"109":0.11042,"110":0.06441,"111":0.96621,"112":2.52595,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0046,"14":0.04141,"15":0.03221,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.02301,"13.1":0.22545,"14.1":0.10122,"15.1":0.0184,"15.2-15.3":0.0138,"15.4":0.07822,"15.5":0.03681,"15.6":0.24385,"16.0":0.0184,"16.1":0.10122,"16.2":0.17944,"16.3":0.51991,"16.4":0.33127,"16.5":0.0046},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01814,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00302,"9.0-9.2":0,"9.3":0.03628,"10.0-10.2":0,"10.3":0.04233,"11.0-11.2":0,"11.3-11.4":0.00605,"12.0-12.1":0.02117,"12.2-12.5":0.34772,"13.0-13.1":0.00907,"13.2":0,"13.3":0.02419,"13.4-13.7":0.02721,"14.0-14.4":0.39006,"14.5-14.8":0.7529,"15.0-15.1":0.20863,"15.2-15.3":0.19654,"15.4":0.22678,"15.5":1.79607,"15.6":1.74769,"16.0":2.39174,"16.1":3.83403,"16.2":2.04401,"16.3":9.66068,"16.4":4.89232,"16.5":0.58962},P:{"4":0.02073,"20":3.88635,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05182,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02073,"12.0":0.01036,"13.0":0.03109,"14.0":0.02073,"15.0":0.02073,"16.0":0.07255,"17.0":0.02073,"18.0":0.09327,"19.0":0.25909},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02235,"4.4":0,"4.4.3-4.4.4":0.15967},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02761,"5.5":0},S:{"2.5":0.0054,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.30774},Q:{"13.1":0},O:{"0":0},H:{"0":0.13801},L:{"0":44.63216}}; diff --git a/node_modules/caniuse-lite/data/regions/GQ.js b/node_modules/caniuse-lite/data/regions/GQ.js new file mode 100644 index 0000000..9fdc186 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GQ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00812,"53":0,"54":0,"55":0,"56":0.01624,"57":0.01624,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00812,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0.00812,"72":0.00812,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00812,"94":0,"95":0,"96":0,"97":0.00812,"98":0,"99":0.00812,"100":0.01624,"101":0,"102":0.03249,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.32488,"112":0.28427,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00812,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01624,"53":0.00812,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00812,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":1.2914,"75":0,"76":0.00812,"77":0,"78":0,"79":0.03249,"80":0,"81":0,"83":0,"84":0.01624,"85":0,"86":0,"87":0.00812,"88":0.06498,"89":0.00812,"90":0,"91":0,"92":0.00812,"93":0,"94":0.01624,"95":0,"96":0,"97":0.00812,"98":0,"99":0.02437,"100":0.22742,"101":0,"102":0.00812,"103":0.02437,"104":0,"105":0,"106":0,"107":0.02437,"108":0.00812,"109":3.11073,"110":0.04873,"111":6.37577,"112":8.34942,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00812,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.01624,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.12995,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00812,"13":0.00812,"14":0,"15":0,"16":0,"17":0,"18":0.04873,"79":0,"80":0,"81":0,"83":0,"84":0.00812,"85":0,"86":0,"87":0,"88":0,"89":0.03249,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.01624,"101":0,"102":0,"103":0,"104":0.00812,"105":0.00812,"106":0,"107":0,"108":0.01624,"109":0.91779,"110":1.06398,"111":11.45202,"112":30.02703,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00812,"15":0.00812,_:"0","3.1":0,"3.2":0,"5.1":0.00812,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00812,"13.1":0,"14.1":0.00812,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.04873,"16.0":0.00812,"16.1":0,"16.2":0,"16.3":0.02437,"16.4":0.00812,"16.5":0},G:{"8":0.00322,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.34082,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07395,"10.0-10.2":0,"10.3":0.00322,"11.0-11.2":0.04073,"11.3-11.4":0,"12.0-12.1":1.14893,"12.2-12.5":3.18312,"13.0-13.1":0.02894,"13.2":0.00429,"13.3":0.06966,"13.4-13.7":0.0836,"14.0-14.4":0.66342,"14.5-14.8":1.59692,"15.0-15.1":0.10396,"15.2-15.3":0.10503,"15.4":0.06538,"15.5":0.08145,"15.6":0.29152,"16.0":0.24007,"16.1":0.31938,"16.2":0.28402,"16.3":0.43406,"16.4":0.27759,"16.5":0.00322},P:{"4":0.31667,"20":0.15833,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.02111,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.06333,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0.03167,"18.0":0,"19.0":0.02111},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00718,"4.4":0,"4.4.3-4.4.4":0.19353},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01624,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.02254},Q:{"13.1":0.00188},O:{"0":0.07888},H:{"0":0.06756},L:{"0":24.40308}}; diff --git a/node_modules/caniuse-lite/data/regions/GR.js b/node_modules/caniuse-lite/data/regions/GR.js new file mode 100644 index 0000000..685476b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.07023,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00468,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00468,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00468,"87":0.00468,"88":0.01405,"89":0,"90":0,"91":0.00468,"92":0,"93":0,"94":0.00468,"95":0,"96":0,"97":0,"98":0,"99":0.00468,"100":0,"101":0,"102":0.01405,"103":0.00468,"104":0,"105":0.04682,"106":0.00468,"107":0.00936,"108":0.00936,"109":0.01405,"110":0.03277,"111":1.10027,"112":1.03472,"113":0.00468,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.04682,"35":0,"36":0,"37":0,"38":0.0515,"39":0.03746,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.0515,"48":0,"49":0.05618,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.01405,"57":0,"58":0.01405,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00468,"77":0,"78":0,"79":0.12173,"80":0,"81":0.01873,"83":0.00468,"84":0.00468,"85":0.00468,"86":0.00936,"87":0.00936,"88":0.06087,"89":0.01873,"90":0.00468,"91":0.05618,"92":0.15451,"93":0.00936,"94":0.01405,"95":0.01405,"96":0.00468,"97":0.00468,"98":0.00468,"99":0.01405,"100":0.01405,"101":0.00936,"102":0.06555,"103":0.03277,"104":0.00936,"105":0.01873,"106":0.0515,"107":0.01405,"108":0.02809,"109":2.82325,"110":0.103,"111":3.99843,"112":4.682,"113":0.00468,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.03277,"26":0,"27":0,"28":0.00468,"29":0,"30":0,"31":0.21069,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.19196,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.1311,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00468,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00468,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02341,"96":0.07491,"97":0.27624,"98":0.01405,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.0515,"16":0,"17":0,"18":0.00468,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00468,"108":0.01405,"109":0.03746,"110":0.00936,"111":0.35583,"112":0.76785,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00936,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00468,"13.1":0.01405,"14.1":0.03277,"15.1":0.00468,"15.2-15.3":0.00468,"15.4":0.00936,"15.5":0.00936,"15.6":0.06087,"16.0":0.00936,"16.1":0.01873,"16.2":0.02809,"16.3":0.15919,"16.4":0.08428,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00096,"6.0-6.1":0,"7.0-7.1":0.24502,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03747,"10.0-10.2":0.00096,"10.3":0.049,"11.0-11.2":0.00288,"11.3-11.4":0.00577,"12.0-12.1":0.0048,"12.2-12.5":0.26135,"13.0-13.1":0.00192,"13.2":0.00096,"13.3":0.00769,"13.4-13.7":0.03459,"14.0-14.4":0.07591,"14.5-14.8":0.18929,"15.0-15.1":0.04324,"15.2-15.3":0.06438,"15.4":0.0711,"15.5":0.13068,"15.6":0.39875,"16.0":0.40644,"16.1":0.97238,"16.2":0.56498,"16.3":3.33512,"16.4":1.85349,"16.5":0.03747},P:{"4":0.17765,"20":1.88104,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0209,"12.0":0,"13.0":0.0209,"14.0":0.03135,"15.0":0.01045,"16.0":0.0418,"17.0":0.03135,"18.0":0.0418,"19.0":0.13585},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.06473,"4.2-4.3":0.23303,"4.4":0,"4.4.3-4.4.4":0.56964},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01405,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.20208},Q:{"13.1":0},O:{"0":0.0585},H:{"0":0.19132},L:{"0":67.692}}; diff --git a/node_modules/caniuse-lite/data/regions/GT.js b/node_modules/caniuse-lite/data/regions/GT.js new file mode 100644 index 0000000..76dc50a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00405,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.07697,"74":0,"75":0,"76":0,"77":0,"78":0.00405,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0081,"103":0,"104":0.01215,"105":0.00405,"106":0,"107":0,"108":0.00405,"109":0.0081,"110":0.02431,"111":0.26332,"112":0.27547,"113":0.00405,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00405,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00405,"50":0.00405,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00405,"77":0,"78":0.00405,"79":0.04051,"80":0,"81":0.0081,"83":0,"84":0.00405,"85":0,"86":0,"87":0.0081,"88":0.00405,"89":0.00405,"90":0.00405,"91":0.0162,"92":0.00405,"93":0.02026,"94":0.00405,"95":0.00405,"96":0.00405,"97":0.0081,"98":0.0081,"99":0.01215,"100":0.0081,"101":0.01215,"102":0.0081,"103":0.03241,"104":0.01215,"105":0.0162,"106":0.0162,"107":0.0162,"108":0.03241,"109":0.74538,"110":0.08912,"111":3.18004,"112":4.75182,"113":0.00405,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00405,"69":0.01215,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0162,"96":0.22686,"97":0.54689,"98":0.01215,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00405,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.0081,"99":0,"100":0.00405,"101":0,"102":0,"103":0,"104":0,"105":0.00405,"106":0,"107":0.00405,"108":0.00405,"109":0.02026,"110":0.02836,"111":0.33218,"112":0.84666,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0081,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0162,"14.1":0.02836,"15.1":0.00405,"15.2-15.3":0.0081,"15.4":0.0081,"15.5":0.0162,"15.6":0.08912,"16.0":0.01215,"16.1":0.03646,"16.2":0.05266,"16.3":0.22686,"16.4":0.13773,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00162,"6.0-6.1":0.01938,"7.0-7.1":0.00646,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01777,"10.0-10.2":0,"10.3":0.02261,"11.0-11.2":0.00323,"11.3-11.4":0,"12.0-12.1":0.00323,"12.2-12.5":0.15666,"13.0-13.1":0,"13.2":0,"13.3":0.00646,"13.4-13.7":0.03715,"14.0-14.4":0.08075,"14.5-14.8":0.21157,"15.0-15.1":0.04038,"15.2-15.3":0.10013,"15.4":0.09206,"15.5":0.1502,"15.6":0.53458,"16.0":0.90766,"16.1":1.75395,"16.2":1.14507,"16.3":5.88202,"16.4":4.1523,"16.5":0.12597},P:{"4":0.12124,"20":2.63689,"5.0-5.4":0.0101,"6.2-6.4":0,"7.2-7.4":0.16165,"8.2":0,"9.2":0.02021,"10.1":0,"11.1-11.2":0.04041,"12.0":0.0101,"13.0":0.03031,"14.0":0.05052,"15.0":0.03031,"16.0":0.10103,"17.0":0.05052,"18.0":0.06062,"19.0":0.18185},I:{"0":0,"3":0,"4":0.02036,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.08825},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0081,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.24986},Q:{"13.1":0},O:{"0":0.06544},H:{"0":0.28724},L:{"0":65.87536}}; diff --git a/node_modules/caniuse-lite/data/regions/GU.js b/node_modules/caniuse-lite/data/regions/GU.js new file mode 100644 index 0000000..7519205 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0.00475,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.05229,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00475,"85":0,"86":0,"87":0.00475,"88":0.00475,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00475,"99":0,"100":0,"101":0,"102":0.00951,"103":0,"104":0,"105":0,"106":0,"107":0.00475,"108":0,"109":0.05229,"110":0.01902,"111":0.52769,"112":0.43737,"113":0.00475,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01902,"50":0,"51":0,"52":0,"53":0.00475,"54":0,"55":0.00475,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00475,"74":0,"75":0.00475,"76":0,"77":0,"78":0,"79":0.08082,"80":0,"81":0,"83":0.00951,"84":0.01426,"85":0,"86":0,"87":0.02377,"88":0.00475,"89":0,"90":0,"91":0.00951,"92":0.01902,"93":0.00951,"94":0,"95":0,"96":0.00475,"97":0.00475,"98":0.00951,"99":0.05229,"100":0,"101":0.00951,"102":0.00475,"103":0.1759,"104":0.01426,"105":0.01426,"106":0.00951,"107":0.01426,"108":0.03803,"109":0.56097,"110":0.24721,"111":4.83006,"112":5.83316,"113":0.04279,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00475,"96":0.09983,"97":0.2377,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00475,"79":0,"80":0,"81":0,"83":0,"84":0.00475,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00475,"98":0,"99":0,"100":0,"101":0.00475,"102":0,"103":0,"104":0,"105":0,"106":0.02377,"107":0.01426,"108":0.00475,"109":0.03328,"110":0.07606,"111":1.28358,"112":1.54505,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00475,"14":0.07131,"15":0.01902,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.07131,"13.1":0.09033,"14.1":0.19491,"15.1":0.01426,"15.2-15.3":0.03328,"15.4":0.04279,"15.5":0.09983,"15.6":0.59425,"16.0":0.04279,"16.1":0.14737,"16.2":0.42786,"16.3":1.31686,"16.4":0.35655,"16.5":0.00475},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.48394,"10.0-10.2":0,"10.3":0.03618,"11.0-11.2":0,"11.3-11.4":0.14925,"12.0-12.1":0.02261,"12.2-12.5":0.6332,"13.0-13.1":0.02261,"13.2":0,"13.3":0.03618,"13.4-13.7":0.04071,"14.0-14.4":0.43419,"14.5-14.8":0.80054,"15.0-15.1":0.46585,"15.2-15.3":0.50656,"15.4":0.29398,"15.5":1.06739,"15.6":3.45092,"16.0":3.37855,"16.1":5.63545,"16.2":3.67706,"16.3":15.52687,"16.4":6.57167,"16.5":0.04975},P:{"4":0.26098,"20":3.3718,"5.0-5.4":0.04176,"6.2-6.4":0,"7.2-7.4":0.01044,"8.2":0.01044,"9.2":0,"10.1":0,"11.1-11.2":0.01044,"12.0":0,"13.0":0,"14.0":0.01044,"15.0":0.02088,"16.0":0.06263,"17.0":0.08351,"18.0":0.04176,"19.0":0.19834},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.16688},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02377,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.58755},Q:{"13.1":0},O:{"0":0.01049},H:{"0":0.15893},L:{"0":27.92752}}; diff --git a/node_modules/caniuse-lite/data/regions/GW.js b/node_modules/caniuse-lite/data/regions/GW.js new file mode 100644 index 0000000..1ea8dcc --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00357,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.01786,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00357,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.01786,"112":0.00714,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.00357,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00357,"41":0,"42":0,"43":0.00357,"44":0,"45":0,"46":0.00357,"47":0,"48":0,"49":0.01786,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.01071,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00357,"65":0,"66":0,"67":0,"68":0.01428,"69":0,"70":0,"71":0,"72":0,"73":0.00714,"74":0,"75":0,"76":0,"77":0,"78":0.02143,"79":0.01071,"80":0,"81":0.02143,"83":0,"84":0,"85":0,"86":0,"87":0.00357,"88":0.00714,"89":0,"90":0.11784,"91":0,"92":0.01786,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.01071,"100":0,"101":0,"102":0.01071,"103":0.00357,"104":0,"105":0.04642,"106":0,"107":0,"108":0.03571,"109":3.46387,"110":0.01071,"111":1.33913,"112":2.65682,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00714,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00357,"64":0,"65":0,"66":0,"67":0,"68":0.01071,"69":0.00357,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00357,"96":0.00714,"97":0.09285,"98":0.00714,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00357,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00357,"79":0,"80":0,"81":0,"83":0,"84":0.02143,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00357,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00357,"108":0.00357,"109":0.03214,"110":0.34282,"111":0.25711,"112":0.96417,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00714,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0.00357,"16.3":0.01786,"16.4":0.00357,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.05809,"6.0-6.1":0,"7.0-7.1":3.28262,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.26342,"10.0-10.2":0,"10.3":0.06079,"11.0-11.2":0.08916,"11.3-11.4":0,"12.0-12.1":0.04998,"12.2-12.5":0.9321,"13.0-13.1":0.22695,"13.2":0.00135,"13.3":0.04188,"13.4-13.7":0.36609,"14.0-14.4":0.6241,"14.5-14.8":0.88212,"15.0-15.1":0.28774,"15.2-15.3":0.10402,"15.4":0.44579,"15.5":0.22154,"15.6":0.83754,"16.0":0.96452,"16.1":0.32826,"16.2":0.21884,"16.3":1.001,"16.4":0.18507,"16.5":0},P:{"4":0.904,"20":0.72117,"5.0-5.4":0.01016,"6.2-6.4":0.02031,"7.2-7.4":0.6196,"8.2":0,"9.2":0.05079,"10.1":0.19299,"11.1-11.2":0.02031,"12.0":0,"13.0":0,"14.0":0.01016,"15.0":0.01016,"16.0":0.04063,"17.0":0.01016,"18.0":0.03047,"19.0":0.09142},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00117,"4.4":0,"4.4.3-4.4.4":0.06454},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00357,"5.5":0},S:{"2.5":1.57511,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0.01286},H:{"0":0.5417},L:{"0":72.07309}}; diff --git a/node_modules/caniuse-lite/data/regions/GY.js b/node_modules/caniuse-lite/data/regions/GY.js new file mode 100644 index 0000000..42dded8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/GY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00427,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.0171,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00427,"103":0,"104":0,"105":0,"106":0,"107":0.01282,"108":0,"109":0,"110":0.00427,"111":0.50861,"112":0.3291,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00855,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00427,"59":0,"60":0,"61":0.00427,"62":0,"63":0,"64":0,"65":0.00427,"66":0,"67":0,"68":0,"69":0.00427,"70":0,"71":0,"72":0,"73":0.00855,"74":0,"75":0,"76":0.02564,"77":0,"78":0,"79":0.06411,"80":0,"81":0.00427,"83":0.00855,"84":0.00427,"85":0,"86":0.00855,"87":0.02137,"88":0.00427,"89":0.00427,"90":0.00427,"91":0.01282,"92":0.00427,"93":0.02564,"94":0,"95":0,"96":0.01282,"97":0.00427,"98":0.00427,"99":0.00427,"100":0.00427,"101":0.00427,"102":0.00427,"103":0.24789,"104":0.00427,"105":0.02992,"106":0.01282,"107":0.01282,"108":0.06838,"109":0.32055,"110":0.07693,"111":3.31235,"112":4.90228,"113":0.00427,"114":0.00427,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00855,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0.02137,"65":0,"66":0,"67":0,"68":0.00427,"69":0.03419,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00427,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00855,"96":0.08121,"97":0.22225,"98":0.0171,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0.00427,"14":0,"15":0.00427,"16":0,"17":0,"18":0.00855,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00427,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00427,"104":0,"105":0.00427,"106":0,"107":0.00427,"108":0.00427,"109":0.03419,"110":0.08121,"111":0.62828,"112":1.31212,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01282,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.01282,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0171,"14.1":0.03847,"15.1":0,"15.2-15.3":0,"15.4":0.02564,"15.5":0.03847,"15.6":0.07693,"16.0":0.0171,"16.1":0.0171,"16.2":0.02564,"16.3":0.28208,"16.4":0.12395,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01843,"6.0-6.1":0.00154,"7.0-7.1":0.09831,"8.1-8.4":0,"9.0-9.2":0.00768,"9.3":0.12597,"10.0-10.2":0,"10.3":0.02151,"11.0-11.2":0.03687,"11.3-11.4":0,"12.0-12.1":0.01075,"12.2-12.5":0.34871,"13.0-13.1":0.00461,"13.2":0.00922,"13.3":0.01229,"13.4-13.7":0.04455,"14.0-14.4":0.09985,"14.5-14.8":0.2719,"15.0-15.1":0.05991,"15.2-15.3":0.1275,"15.4":0.09524,"15.5":0.30723,"15.6":0.73736,"16.0":0.73122,"16.1":1.50698,"16.2":0.87715,"16.3":5.32128,"16.4":2.82347,"16.5":0.09831},P:{"4":0.39289,"20":3.71654,"5.0-5.4":0.02124,"6.2-6.4":0,"7.2-7.4":0.19114,"8.2":0,"9.2":0.01062,"10.1":0,"11.1-11.2":0.05309,"12.0":0,"13.0":0.02124,"14.0":0.03186,"15.0":0.04247,"16.0":0.15928,"17.0":0.11681,"18.0":0.07433,"19.0":0.27609},I:{"0":0,"3":0,"4":0.08035,"2.1":0,"2.2":0,"2.3":0,"4.1":0.12052,"4.2-4.3":0.08035,"4.4":0,"4.4.3-4.4.4":1.16502},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00427,"11":0.00427,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12025},Q:{"13.1":0},O:{"0":0.37219},H:{"0":0.309},L:{"0":62.90829}}; diff --git a/node_modules/caniuse-lite/data/regions/HK.js b/node_modules/caniuse-lite/data/regions/HK.js new file mode 100644 index 0000000..3bbad82 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.02796,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00559,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00559,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00559,"69":0,"70":0,"71":0,"72":0.08388,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01118,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00559,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02237,"103":0,"104":0,"105":0.00559,"106":0.00559,"107":0.00559,"108":0.00559,"109":0.01118,"110":0.01678,"111":0.40822,"112":0.36907,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00559,"23":0,"24":0,"25":0,"26":0.01118,"27":0,"28":0,"29":0,"30":0.00559,"31":0,"32":0,"33":0,"34":0.06151,"35":0,"36":0,"37":0,"38":0.12862,"39":0,"40":0,"41":0,"42":0.00559,"43":0.00559,"44":0.01118,"45":0.01678,"46":0,"47":0,"48":0,"49":0.03914,"50":0.00559,"51":0,"52":0,"53":0.03355,"54":0,"55":0.01678,"56":0.00559,"57":0.00559,"58":0.00559,"59":0,"60":0,"61":0.02796,"62":0.00559,"63":0.00559,"64":0,"65":0.00559,"66":0.00559,"67":0.01118,"68":0.00559,"69":0.01678,"70":0.01118,"71":0.00559,"72":0.00559,"73":0.04474,"74":0.02237,"75":0.01118,"76":0.00559,"77":0.00559,"78":0.02796,"79":0.60953,"80":0.01678,"81":0.02796,"83":0.05592,"84":0.01118,"85":0.01678,"86":0.03914,"87":0.13421,"88":0.01118,"89":0.10066,"90":0.01678,"91":0.02796,"92":0.02237,"93":0.00559,"94":0.08388,"95":0.02796,"96":0.02796,"97":0.06151,"98":0.03914,"99":0.12862,"100":0.05592,"101":0.03914,"102":0.03914,"103":0.18454,"104":0.04474,"105":0.0727,"106":0.08388,"107":0.08947,"108":0.19013,"109":1.35326,"110":0.30756,"111":5.51371,"112":7.10184,"113":0.01678,"114":0.01118,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01118,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.02796,"37":0,"38":0,"39":0,"40":0.00559,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.07829,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01118,"96":0.02237,"97":0.07829,"98":0.00559,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.01118,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00559,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00559,"106":0.00559,"107":0.01678,"108":0.03355,"109":0.06151,"110":0.0727,"111":0.80525,"112":1.89569,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.00559,"9":0,"10":0,"11":0,"12":0.00559,"13":0.03914,"14":0.15658,"15":0.03914,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00559,"10.1":0,"11.1":0.00559,"12.1":0.02796,"13.1":0.11184,"14.1":0.32993,"15.1":0.03914,"15.2-15.3":0.04474,"15.4":0.17335,"15.5":0.24605,"15.6":0.96182,"16.0":0.0671,"16.1":0.18454,"16.2":0.36907,"16.3":1.84536,"16.4":0.57598,"16.5":0.00559},G:{"8":0.00964,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00321,"5.0-5.1":0.02893,"6.0-6.1":0.0225,"7.0-7.1":0.06751,"8.1-8.4":0.12859,"9.0-9.2":0.0225,"9.3":0.31504,"10.0-10.2":0.01286,"10.3":0.1961,"11.0-11.2":0.03536,"11.3-11.4":0.03536,"12.0-12.1":0.05465,"12.2-12.5":1.12516,"13.0-13.1":0.03215,"13.2":0.01607,"13.3":0.07394,"13.4-13.7":0.16717,"14.0-14.4":0.5015,"14.5-14.8":0.83905,"15.0-15.1":0.32469,"15.2-15.3":0.36005,"15.4":0.59794,"15.5":0.75225,"15.6":2.07029,"16.0":1.60737,"16.1":3.54264,"16.2":2.16673,"16.3":10.9944,"16.4":4.33989,"16.5":0.05787},P:{"4":1.55251,"20":5.23295,"5.0-5.4":0.13028,"6.2-6.4":0.01086,"7.2-7.4":0.01086,"8.2":0,"9.2":0.04343,"10.1":0,"11.1-11.2":0.02171,"12.0":0.01086,"13.0":0.076,"14.0":0.03257,"15.0":0.02171,"16.0":0.05428,"17.0":0.11942,"18.0":0.09771,"19.0":0.19542},I:{"0":0,"3":0,"4":0.01403,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00561,"4.2-4.3":0.01403,"4.4":0,"4.4.3-4.4.4":0.10665},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0.09605,"10":0,"11":0.31217,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.19836},Q:{"13.1":0.07934},O:{"0":0.33942},H:{"0":0.08764},L:{"0":29.20483}}; diff --git a/node_modules/caniuse-lite/data/regions/HN.js b/node_modules/caniuse-lite/data/regions/HN.js new file mode 100644 index 0000000..cb6b230 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00451,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.04061,"74":0,"75":0,"76":0,"77":0,"78":0.01805,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02707,"103":0,"104":0,"105":0.01354,"106":0.01354,"107":0.00451,"108":0.00451,"109":0.00451,"110":0.09475,"111":0.38803,"112":0.25718,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00451,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00451,"48":0,"49":0.01354,"50":0,"51":0,"52":0,"53":0.00451,"54":0,"55":0,"56":0.00451,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00451,"64":0,"65":0.00451,"66":0.00451,"67":0,"68":0.00451,"69":0,"70":0.00451,"71":0,"72":0,"73":0,"74":0.00451,"75":0.00451,"76":0.01354,"77":0.00451,"78":0,"79":0.19402,"80":0.00451,"81":0.00902,"83":0.00451,"84":0,"85":0.00902,"86":0.00902,"87":0.02256,"88":0.01354,"89":0.00451,"90":0.00451,"91":0.0361,"92":0.01354,"93":0.05414,"94":0.00451,"95":0.00451,"96":0.00451,"97":0.01354,"98":0.00902,"99":0.03158,"100":0.01354,"101":0.00902,"102":0.01354,"103":0.08573,"104":0.00902,"105":0.01354,"106":0.03158,"107":0.04061,"108":0.72643,"109":0.90691,"110":0.31584,"111":4.13299,"112":5.43696,"113":0.00451,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00451,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00451,"69":0.01354,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00902,"95":0.0361,"96":0.20755,"97":0.56851,"98":0.01805,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00451,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00902,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00451,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00451,"108":0.00451,"109":0.03158,"110":0.03158,"111":0.50986,"112":1.34006,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00902,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00451,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.02707,"14.1":0.02707,"15.1":0,"15.2-15.3":0.01354,"15.4":0.01354,"15.5":0.01805,"15.6":0.07219,"16.0":0.01805,"16.1":0.03158,"16.2":0.05414,"16.3":0.40157,"16.4":0.10829,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00955,"6.0-6.1":0.04011,"7.0-7.1":0.01719,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.1127,"10.0-10.2":0,"10.3":0.0764,"11.0-11.2":0.00955,"11.3-11.4":0.00764,"12.0-12.1":0.00382,"12.2-12.5":0.45842,"13.0-13.1":0.03056,"13.2":0.00955,"13.3":0.05921,"13.4-13.7":0.37056,"14.0-14.4":0.09742,"14.5-14.8":0.33427,"15.0-15.1":0.06685,"15.2-15.3":0.18146,"15.4":0.13562,"15.5":0.21011,"15.6":0.64561,"16.0":1.21482,"16.1":1.82605,"16.2":1.36954,"16.3":6.45613,"16.4":3.51076,"16.5":0.10124},P:{"4":0.47216,"20":2.26841,"5.0-5.4":0.04106,"6.2-6.4":0,"7.2-7.4":0.1437,"8.2":0,"9.2":0.01026,"10.1":0,"11.1-11.2":0.09238,"12.0":0.02053,"13.0":0.04106,"14.0":0.02053,"15.0":0.02053,"16.0":0.08211,"17.0":0.06159,"18.0":0.08211,"19.0":0.20529},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.04069,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.22784},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01805,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15366},Q:{"13.1":0},O:{"0":0.12074},H:{"0":0.22341},L:{"0":59.43698}}; diff --git a/node_modules/caniuse-lite/data/regions/HR.js b/node_modules/caniuse-lite/data/regions/HR.js new file mode 100644 index 0000000..1bf86c7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00499,"49":0,"50":0,"51":0,"52":0.01497,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00998,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00998,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00499,"89":0.01497,"90":0,"91":0,"92":0.00499,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00499,"100":0,"101":0,"102":0.02496,"103":0.00499,"104":0.00499,"105":0.00499,"106":0.00499,"107":0.01996,"108":0.00998,"109":0.01497,"110":0.03993,"111":1.35256,"112":1.13296,"113":0.00499,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00499,"48":0,"49":0.01996,"50":0,"51":0,"52":0,"53":0.00499,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00499,"64":0,"65":0,"66":0.00499,"67":0.00499,"68":0,"69":0.00499,"70":0.00499,"71":0,"72":0,"73":0,"74":0,"75":0.00998,"76":0,"77":0.03993,"78":0,"79":0.07986,"80":0.00499,"81":0.0549,"83":0,"84":0.00998,"85":0.00499,"86":0.00998,"87":0.02496,"88":0.00499,"89":0.00499,"90":0.00499,"91":0.00998,"92":0.00499,"93":0.00998,"94":0.02995,"95":0.01497,"96":0.05989,"97":0.01996,"98":0.00499,"99":0.01497,"100":0.01497,"101":0.01497,"102":0.00499,"103":0.0549,"104":0.01996,"105":0.02496,"106":0.02995,"107":0.03993,"108":0.06488,"109":1.21281,"110":0.15472,"111":5.92432,"112":7.18704,"113":0.00499,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00499,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01497,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00499,"68":0.00499,"69":0.01996,"70":0,"71":0,"72":0,"73":0,"74":0.00499,"75":0.00499,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.03494,"92":0.00998,"93":0,"94":0,"95":0.0549,"96":0.2246,"97":0.74366,"98":0.02496,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0.09483,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00499,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00499,"106":0,"107":0.00499,"108":0.01497,"109":0.03993,"110":0.02496,"111":0.42424,"112":1.01317,"113":0.00499},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01497,"15":0.00499,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00499,"13.1":0.02995,"14.1":0.0549,"15.1":0.00499,"15.2-15.3":0.00499,"15.4":0.01497,"15.5":0.01497,"15.6":0.10481,"16.0":0.02496,"16.1":0.03494,"16.2":0.04492,"16.3":0.24955,"16.4":0.14474,"16.5":0.00499},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00859,"6.0-6.1":0,"7.0-7.1":0.00286,"8.1-8.4":0.00572,"9.0-9.2":0,"9.3":0.15312,"10.0-10.2":0,"10.3":0.04293,"11.0-11.2":0.00429,"11.3-11.4":0.00572,"12.0-12.1":0.00429,"12.2-12.5":0.22896,"13.0-13.1":0.00286,"13.2":0,"13.3":0.01002,"13.4-13.7":0.04722,"14.0-14.4":0.12307,"14.5-14.8":0.41785,"15.0-15.1":0.11734,"15.2-15.3":0.08157,"15.4":0.13022,"15.5":0.3091,"15.6":0.75557,"16.0":0.95734,"16.1":1.90322,"16.2":1.09328,"16.3":4.8568,"16.4":2.42411,"16.5":0.05581},P:{"4":0.21413,"20":3.57911,"5.0-5.4":0.0102,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0.0102,"11.1-11.2":0.03059,"12.0":0,"13.0":0.02039,"14.0":0.03059,"15.0":0.0102,"16.0":0.05098,"17.0":0.05098,"18.0":0.06118,"19.0":0.21413},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0237,"4.2-4.3":0.02963,"4.4":0,"4.4.3-4.4.4":0.10667},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01098,"9":0,"10":0,"11":0.04392,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.33059},Q:{"13.1":0},O:{"0":0.0551},H:{"0":0.46474},L:{"0":56.58201}}; diff --git a/node_modules/caniuse-lite/data/regions/HT.js b/node_modules/caniuse-lite/data/regions/HT.js new file mode 100644 index 0000000..63ac2bf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00146,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00146,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00146,"100":0,"101":0.00146,"102":0.00146,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00146,"110":0.00146,"111":0.02187,"112":0.01895,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00146,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00146,"39":0,"40":0,"41":0,"42":0.00437,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00146,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00292,"57":0,"58":0.00292,"59":0,"60":0,"61":0,"62":0,"63":0.00146,"64":0.00729,"65":0,"66":0,"67":0,"68":0.00583,"69":0.00146,"70":0.00146,"71":0,"72":0,"73":0,"74":0.00292,"75":0.01312,"76":0.01895,"77":0.00146,"78":0,"79":0.00146,"80":0.00146,"81":0.00729,"83":0,"84":0,"85":0,"86":0.00146,"87":0.00146,"88":0.00146,"89":0.00146,"90":0,"91":0.00146,"92":0.01458,"93":0.01021,"94":0.00292,"95":0.00292,"96":0.00146,"97":0.00146,"98":0,"99":0.00146,"100":0.00729,"101":0.00146,"102":0.00146,"103":0.01604,"104":0.00292,"105":0.01021,"106":0.00437,"107":0.00146,"108":0.00583,"109":0.0554,"110":0.00875,"111":0.2362,"112":0.35575,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0.00146,"65":0,"66":0,"67":0.00146,"68":0.00583,"69":0.00875,"70":0,"71":0,"72":0,"73":0,"74":0.00146,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00146,"96":0.00583,"97":0.03645,"98":0.00146,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00146,"13":0.00146,"14":0,"15":0.00146,"16":0.00146,"17":0,"18":0.00146,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00146,"90":0,"91":0,"92":0.00146,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00146,"104":0,"105":0.00146,"106":0.01458,"107":0.00146,"108":0.00146,"109":0.01021,"110":0.00437,"111":0.05249,"112":0.10352,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00146,"14":0.00583,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00146,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00146,"13.1":0.00437,"14.1":0.00292,"15.1":0,"15.2-15.3":0,"15.4":0.00146,"15.5":0.00146,"15.6":0.00875,"16.0":0.00146,"16.1":0,"16.2":0.01166,"16.3":0.01021,"16.4":0.00583,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02035,"8.1-8.4":0.00678,"9.0-9.2":0,"9.3":0.25776,"10.0-10.2":0,"10.3":0.21435,"11.0-11.2":0.00678,"11.3-11.4":0.00678,"12.0-12.1":0.33644,"12.2-12.5":2.31305,"13.0-13.1":0.12888,"13.2":0.01221,"13.3":0.2659,"13.4-13.7":0.51281,"14.0-14.4":1.16127,"14.5-14.8":1.14092,"15.0-15.1":0.28489,"15.2-15.3":0.67967,"15.4":0.47482,"15.5":0.89809,"15.6":0.40292,"16.0":0.29168,"16.1":0.48974,"16.2":0.4816,"16.3":1.26031,"16.4":0.46125,"16.5":0.01492},P:{"4":0.32858,"20":0.55449,"5.0-5.4":0.07188,"6.2-6.4":0.02054,"7.2-7.4":0.28751,"8.2":0.0308,"9.2":0.25671,"10.1":0.01027,"11.1-11.2":0.39019,"12.0":0.02054,"13.0":0.14376,"14.0":0.17456,"15.0":0.0308,"16.0":0.18483,"17.0":0.08215,"18.0":0.08215,"19.0":0.27724},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00502,"4.2-4.3":0.0067,"4.4":0,"4.4.3-4.4.4":0.13701},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00292,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08542},Q:{"13.1":0},O:{"0":0.11959},H:{"0":0.34774},L:{"0":82.37816}}; diff --git a/node_modules/caniuse-lite/data/regions/HU.js b/node_modules/caniuse-lite/data/regions/HU.js new file mode 100644 index 0000000..cc1a72b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/HU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02611,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00373,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00373,"76":0,"77":0,"78":0.00746,"79":0,"80":0,"81":0,"82":0,"83":0.00373,"84":0,"85":0,"86":0,"87":0,"88":0.00373,"89":0.00373,"90":0,"91":0.00373,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00373,"99":0.00373,"100":0,"101":0,"102":0.02238,"103":0.00373,"104":0.00746,"105":0.00373,"106":0.00373,"107":0.00373,"108":0.02984,"109":0.05968,"110":0.18277,"111":0.66021,"112":0.62664,"113":0.00373,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00373,"35":0,"36":0,"37":0,"38":0.00746,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01119,"50":0,"51":0,"52":0,"53":0.00373,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00373,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00373,"79":0.10817,"80":0,"81":0.00746,"83":0.00373,"84":0.00373,"85":0.00746,"86":0.00746,"87":0.01492,"88":0.00373,"89":0.00373,"90":0.00373,"91":0.00373,"92":0.00373,"93":0,"94":0.02238,"95":0.01119,"96":0.00373,"97":0.00373,"98":0.00373,"99":0.01119,"100":0.00746,"101":0.00373,"102":0.00373,"103":0.01865,"104":0.00373,"105":0.00746,"106":0.01865,"107":0.01119,"108":0.02984,"109":0.71989,"110":0.06341,"111":2.6483,"112":3.17796,"113":0.00373,"114":0.00373,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00373,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00373,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00373,"69":0.01119,"70":0,"71":0,"72":0,"73":0,"74":0.00373,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00373,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04849,"96":0.14174,"97":0.373,"98":0.01492,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00373,"108":0.00373,"109":0.10444,"110":0.05968,"111":0.32824,"112":0.56696,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00746,"15":0.00373,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00373,"13.1":0.01119,"14.1":0.01865,"15.1":0.00373,"15.2-15.3":0.00373,"15.4":0.00746,"15.5":0.01119,"15.6":0.05222,"16.0":0.00746,"16.1":0.02238,"16.2":0.02611,"16.3":0.13428,"16.4":0.08579,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00141,"6.0-6.1":0,"7.0-7.1":0.00282,"8.1-8.4":0,"9.0-9.2":0.00141,"9.3":0.02393,"10.0-10.2":0,"10.3":0.038,"11.0-11.2":0.00563,"11.3-11.4":0.00422,"12.0-12.1":0.00563,"12.2-12.5":0.18579,"13.0-13.1":0.00563,"13.2":0.00141,"13.3":0.00845,"13.4-13.7":0.038,"14.0-14.4":0.09008,"14.5-14.8":0.27447,"15.0-15.1":0.05208,"15.2-15.3":0.0746,"15.4":0.10134,"15.5":0.16468,"15.6":0.46026,"16.0":0.89941,"16.1":1.57502,"16.2":0.85859,"16.3":4.97981,"16.4":3.10921,"16.5":0.07319},P:{"4":0.25705,"20":3.07435,"5.0-5.4":0.01028,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01028,"12.0":0,"13.0":0.02056,"14.0":0.03085,"15.0":0.01028,"16.0":0.03085,"17.0":0.03085,"18.0":0.05141,"19.0":0.18508},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02455,"4.4":0,"4.4.3-4.4.4":0.11664},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01119,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.23826},Q:{"13.1":0},O:{"0":0.01881},H:{"0":0.30867},L:{"0":70.06219}}; diff --git a/node_modules/caniuse-lite/data/regions/ID.js b/node_modules/caniuse-lite/data/regions/ID.js new file mode 100644 index 0000000..91c2fcf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ID.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.0367,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00367,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00367,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00367,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00367,"89":0,"90":0,"91":0.00367,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00367,"100":0.00367,"101":0,"102":0.00734,"103":0,"104":0.00367,"105":0.00367,"106":0.00367,"107":0.00734,"108":0.00734,"109":0.00734,"110":0.02202,"111":0.5872,"112":0.28993,"113":0.00734,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.00367,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00367,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00367,"70":0.00367,"71":0.00367,"72":0.00367,"73":0,"74":0.01101,"75":0.00367,"76":0.00367,"77":0.00367,"78":0.00367,"79":0.01101,"80":0.0367,"81":0.01468,"83":0.01101,"84":0.01101,"85":0.00734,"86":0.00734,"87":0.01101,"88":0.00367,"89":0.00734,"90":0.00367,"91":0.00734,"92":0.00367,"93":0.00367,"94":0.00367,"95":0.00367,"96":0.00734,"97":0.00734,"98":0.00367,"99":0.01468,"100":0.02202,"101":0.00734,"102":0.01101,"103":0.02569,"104":0.00734,"105":0.01101,"106":0.01468,"107":0.01835,"108":0.04404,"109":0.72299,"110":0.12478,"111":4.15077,"112":2.91031,"113":0.00367,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.01101,"37":0.01468,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00367,"60":0.00367,"62":0,"63":0.00367,"64":0.00367,"65":0,"66":0.00367,"67":0.01101,"68":0.0367,"69":0.09909,"70":0,"71":0,"72":0,"73":0,"74":0.00734,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01101,"96":0.03303,"97":0.1101,"98":0.00367,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00367,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00367,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00367,"108":0.00367,"109":0.01101,"110":0.01468,"111":0.37067,"112":0.55784,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00367,"14":0.01101,"15":0.00367,_:"0","3.1":0,"3.2":0,"5.1":0.02202,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00367,"13.1":0.01468,"14.1":0.02569,"15.1":0.00734,"15.2-15.3":0.00367,"15.4":0.00734,"15.5":0.01101,"15.6":0.04037,"16.0":0.00734,"16.1":0.02202,"16.2":0.02202,"16.3":0.07707,"16.4":0.03303,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01231,"10.0-10.2":0,"10.3":0.01007,"11.0-11.2":0.00224,"11.3-11.4":0,"12.0-12.1":0.00783,"12.2-12.5":0.20817,"13.0-13.1":0.00783,"13.2":0.00783,"13.3":0.0235,"13.4-13.7":0.05596,"14.0-14.4":0.2216,"14.5-14.8":0.35591,"15.0-15.1":0.16117,"15.2-15.3":0.18691,"15.4":0.29547,"15.5":0.40963,"15.6":0.62228,"16.0":1.17069,"16.1":1.23113,"16.2":0.82486,"16.3":2.88308,"16.4":1.4393,"16.5":0.01791},P:{"4":0.15436,"20":1.14226,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05145,"8.2":0,"9.2":0.01029,"10.1":0,"11.1-11.2":0.03087,"12.0":0.01029,"13.0":0.03087,"14.0":0.03087,"15.0":0.02058,"16.0":0.07203,"17.0":0.07203,"18.0":0.06174,"19.0":0.15436},I:{"0":0,"3":0.01092,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03275},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01468,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08862},Q:{"13.1":0},O:{"0":1.3293},H:{"0":0.92889},L:{"0":72.82732}}; diff --git a/node_modules/caniuse-lite/data/regions/IE.js b/node_modules/caniuse-lite/data/regions/IE.js new file mode 100644 index 0000000..f2a5e25 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0039,"39":0,"40":0,"41":0,"42":0,"43":0.0039,"44":0.0117,"45":0.0039,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.0039,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0156,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.0078,"85":0,"86":0,"87":0.02731,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.0039,"94":0,"95":0.0078,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.0039,"102":0.02731,"103":0,"104":0,"105":0.0039,"106":0.0078,"107":0.0078,"108":0.0078,"109":0.0156,"110":0.0156,"111":0.3901,"112":0.30818,"113":0.0039,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.0039,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0039,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.0039,"48":0.03121,"49":0.0117,"50":0,"51":0,"52":0,"53":0.0039,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0039,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.03121,"75":0,"76":0.0039,"77":0,"78":0.0039,"79":0.02731,"80":0,"81":0.09753,"83":0.0039,"84":0.0039,"85":0.0039,"86":0.0039,"87":0.0117,"88":0.0039,"89":0.0117,"90":0.0039,"91":0.0039,"92":0.0039,"93":0.0078,"94":0.10923,"95":0.0039,"96":0.15994,"97":0.0039,"98":0.0039,"99":0.0039,"100":0.0078,"101":0.03121,"102":0.0117,"103":0.04681,"104":0.0117,"105":0.0156,"106":0.21846,"107":0.05852,"108":0.08582,"109":0.47982,"110":0.27307,"111":2.94916,"112":3.56551,"113":0.0039,"114":0.0039,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0039,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0039,"69":0.0078,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0117,"96":0.08582,"97":0.19895,"98":0.0039,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.0039,"104":0,"105":0,"106":0.0039,"107":0.0078,"108":0.0078,"109":0.01951,"110":0.06632,"111":0.48763,"112":1.01816,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.0039,"9":0.0039,"10":0,"11":0,"12":0,"13":0.0078,"14":0.05461,"15":0.0078,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0117,"13.1":0.05071,"14.1":0.10533,"15.1":0.01951,"15.2-15.3":0.0156,"15.4":0.03121,"15.5":0.05852,"15.6":0.30818,"16.0":0.02731,"16.1":0.06632,"16.2":0.13654,"16.3":0.64367,"16.4":0.19895,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00792,"8.1-8.4":0.0396,"9.0-9.2":0,"9.3":0.09503,"10.0-10.2":0.00792,"10.3":0.21382,"11.0-11.2":0.00792,"11.3-11.4":0.13463,"12.0-12.1":0.00792,"12.2-12.5":0.79984,"13.0-13.1":0.00792,"13.2":0.00792,"13.3":0.03564,"13.4-13.7":0.10691,"14.0-14.4":0.33261,"14.5-14.8":0.9899,"15.0-15.1":0.23362,"15.2-15.3":0.34449,"15.4":0.33261,"15.5":0.76024,"15.6":2.6569,"16.0":2.6569,"16.1":6.60858,"16.2":3.7933,"16.3":13.26072,"16.4":4.14175,"16.5":0.06731},P:{"4":0.06261,"20":3.86099,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.03131,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02087,"12.0":0,"13.0":0.03131,"14.0":0.04174,"15.0":0.02087,"16.0":0.06261,"17.0":0.04174,"18.0":0.06261,"19.0":0.24001},I:{"0":0,"3":0,"4":0.03571,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.05356,"4.4":0,"4.4.3-4.4.4":0.16068},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0039,"9":0.09362,"10":0,"11":0.02731,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.0061},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.5855},Q:{"13.1":0},O:{"0":0.03659},H:{"0":0.21364},L:{"0":41.54484}}; diff --git a/node_modules/caniuse-lite/data/regions/IL.js b/node_modules/caniuse-lite/data/regions/IL.js new file mode 100644 index 0000000..9471258 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.00434,"26":0.00867,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00867,"53":0,"54":0,"55":0,"56":0.00867,"57":0,"58":0,"59":0.00434,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00434,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00434,"79":0.04771,"80":0.01301,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00434,"98":0,"99":0,"100":0,"101":0,"102":0.00867,"103":0,"104":0,"105":0.00434,"106":0,"107":0.00434,"108":0.00434,"109":0.00434,"110":0.01735,"111":0.28191,"112":0.22552,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.01301,"32":0.00434,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00867,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00434,"50":0,"51":0,"52":0.00867,"53":0.00434,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0.00434,"62":0,"63":0.00434,"64":0,"65":0.00434,"66":0.02169,"67":0,"68":0.00434,"69":0,"70":0,"71":0.00434,"72":0,"73":0.00867,"74":0.00434,"75":0.00434,"76":0.00434,"77":0,"78":0.00434,"79":0.04337,"80":0.03903,"81":0.00867,"83":0.00867,"84":0.00434,"85":0.00867,"86":0.00867,"87":0.01735,"88":0.00434,"89":0.00867,"90":0.20384,"91":0.20384,"92":0.20384,"93":0.20384,"94":0.26456,"95":0.00867,"96":0.00867,"97":0.00434,"98":0.00867,"99":0.00434,"100":0.01301,"101":0.00434,"102":0.01301,"103":0.03036,"104":0.02169,"105":0.01735,"106":0.02602,"107":0.03036,"108":0.0824,"109":0.68525,"110":0.54213,"111":4.63625,"112":5.55136,"113":0.00867,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00434,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00434,"70":0,"71":0,"72":0,"73":0,"74":0.00434,"75":0.00434,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00434,"95":0.01301,"96":0.06939,"97":0.20818,"98":0.00867,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00434,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00434,"104":0,"105":0.00434,"106":0,"107":0.00434,"108":0.00867,"109":0.02602,"110":0.02169,"111":0.32528,"112":0.75898,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.06939,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01735,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0.00434,"7.1":0,"9.1":0.00434,"10.1":0,"11.1":0.00434,"12.1":0.00434,"13.1":0.02602,"14.1":0.06072,"15.1":0.00434,"15.2-15.3":0.00434,"15.4":0.00867,"15.5":0.02169,"15.6":0.09541,"16.0":0.01301,"16.1":0.02602,"16.2":0.04337,"16.3":0.20818,"16.4":0.09541,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01432,"8.1-8.4":0.00477,"9.0-9.2":0,"9.3":0.08116,"10.0-10.2":0.00716,"10.3":0.06922,"11.0-11.2":0.00955,"11.3-11.4":0.02148,"12.0-12.1":0.02864,"12.2-12.5":0.28406,"13.0-13.1":0.00955,"13.2":0.00955,"13.3":0.03581,"13.4-13.7":0.07639,"14.0-14.4":0.31987,"14.5-14.8":0.69702,"15.0-15.1":0.12174,"15.2-15.3":0.17187,"15.4":0.21245,"15.5":0.41296,"15.6":1.48475,"16.0":1.79507,"16.1":2.97667,"16.2":1.72824,"16.3":8.30699,"16.4":3.92911,"16.5":0.0931},P:{"4":0.06127,"20":5.1876,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01021,"8.2":0,"9.2":0.03064,"10.1":0.01021,"11.1-11.2":0.07148,"12.0":0.02042,"13.0":0.06127,"14.0":0.06127,"15.0":0.03064,"16.0":0.13275,"17.0":0.07148,"18.0":0.14297,"19.0":0.36763},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02452,"4.4":0,"4.4.3-4.4.4":0.05885},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00434,"9":0.00434,"10":0.00434,"11":0.04771,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.17555},Q:{"13.1":0},O:{"0":0.02832},H:{"0":0.2359},L:{"0":50.91203}}; diff --git a/node_modules/caniuse-lite/data/regions/IM.js b/node_modules/caniuse-lite/data/regions/IM.js new file mode 100644 index 0000000..7ae9fcd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00491,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.22082,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01472,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00491,"79":0,"80":0,"81":0,"82":0,"83":0.00981,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00491,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00491,"103":0,"104":0.00491,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00491,"111":0.69679,"112":0.47107,"113":0.00491,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.00491,"40":0,"41":0.00491,"42":0.00491,"43":0,"44":0.00491,"45":0.00981,"46":0,"47":0.00491,"48":0,"49":0.03926,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.01472,"66":0,"67":0.0687,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00491,"77":0,"78":0,"79":0.00491,"80":0.06379,"81":0,"83":0,"84":0,"85":0.00491,"86":0.00491,"87":0.01963,"88":0,"89":0,"90":0,"91":0.00491,"92":0,"93":0.00981,"94":0.28461,"95":0,"96":0,"97":0,"98":0.01472,"99":0.00491,"100":0.00491,"101":0,"102":0.00491,"103":0.11286,"104":0.00491,"105":0.11286,"106":0.00981,"107":0.01472,"108":0.0687,"109":0.52505,"110":0.10305,"111":3.24843,"112":4.21021,"113":0.00491,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00491,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00491,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00981,"95":0.00491,"96":0.07361,"97":0.33858,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00491,"13":0,"14":0.00491,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00981,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.03926,"108":0.00491,"109":0.03435,"110":0.03435,"111":1.57515,"112":3.06688,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00491,"14":0.11777,"15":0.01472,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.19137,"13.1":0.28461,"14.1":0.18156,"15.1":0.02454,"15.2-15.3":0.01963,"15.4":0.02454,"15.5":0.09323,"15.6":1.01084,"16.0":0.01963,"16.1":0.26498,"16.2":0.24535,"16.3":2.11492,"16.4":0.7704,"16.5":0},G:{"8":0.00972,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00972,"8.1-8.4":0.04375,"9.0-9.2":0,"9.3":0.71456,"10.0-10.2":0,"10.3":0.73887,"11.0-11.2":0.00972,"11.3-11.4":0.00972,"12.0-12.1":0.00486,"12.2-12.5":1.32704,"13.0-13.1":0,"13.2":0,"13.3":0.01944,"13.4-13.7":0.16041,"14.0-14.4":0.37429,"14.5-14.8":0.69026,"15.0-15.1":0.48124,"15.2-15.3":0.27707,"15.4":0.17013,"15.5":0.81664,"15.6":2.03188,"16.0":1.84717,"16.1":7.14561,"16.2":2.69783,"16.3":17.83487,"16.4":8.41919,"16.5":0.07778},P:{"4":0.11984,"20":3.63875,"5.0-5.4":0,"6.2-6.4":0.01089,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0.02179,"11.1-11.2":0,"12.0":0,"13.0":0.14163,"14.0":0,"15.0":0,"16.0":0,"17.0":0.01089,"18.0":0.08716,"19.0":0.11984},I:{"0":0,"3":0.00892,"4":0.22587,"2.1":0.01189,"2.2":0.04161,"2.3":0.05944,"4.1":0.09808,"4.2-4.3":0.21398,"4.4":0,"4.4.3-4.4.4":0.45471},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00981,"7":0.01472,"8":0.13249,"9":0.02454,"10":0.01963,"11":0.08342,"5.5":0.00491},S:{"2.5":0.01019,_:"3.0-3.1"},J:{"7":0,"10":0.01528},N:{"10":0.01358,"11":0.02716},R:{_:"0"},M:{"0":0.56532},Q:{"13.1":0},O:{"0":0.04584},H:{"0":0.05786},L:{"0":24.20222}}; diff --git a/node_modules/caniuse-lite/data/regions/IN.js b/node_modules/caniuse-lite/data/regions/IN.js new file mode 100644 index 0000000..d88c182 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00267,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00267,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00533,"103":0,"104":0.00267,"105":0,"106":0,"107":0.00267,"108":0.00267,"109":0.00267,"110":0.00533,"111":0.12264,"112":0.11464,"113":0.00533,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00267,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00267,"67":0,"68":0,"69":0.00267,"70":0.00267,"71":0.00267,"72":0,"73":0,"74":0.008,"75":0,"76":0,"77":0,"78":0,"79":0.00267,"80":0.00533,"81":0.00533,"83":0.00533,"84":0.00267,"85":0.00267,"86":0.00533,"87":0.01066,"88":0.00267,"89":0.00267,"90":0.00267,"91":0.00533,"92":0.00533,"93":0.00267,"94":0.008,"95":0.00267,"96":0.00533,"97":0.00533,"98":0.01866,"99":0.008,"100":0.00533,"101":0.008,"102":0.00533,"103":0.02133,"104":0.01333,"105":0.01333,"106":0.01333,"107":0.01866,"108":0.03466,"109":0.76514,"110":0.06132,"111":1.30634,"112":1.57294,"113":0.00267,"114":0.00267,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00267,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00267,"56":0,"57":0,"58":0,"60":0.00267,"62":0,"63":0.00533,"64":0.00533,"65":0.00267,"66":0.00267,"67":0.016,"68":0.07465,"69":0.17862,"70":0,"71":0,"72":0.00267,"73":0.00267,"74":0.03199,"75":0.01066,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.008,"96":0.008,"97":0.03199,"98":0.00267,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00267,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00267,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00267,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00267,"109":0.00533,"110":0.008,"111":0.07465,"112":0.15463,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00267,"14.1":0.00267,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00267,"15.6":0.008,"16.0":0.00267,"16.1":0.00533,"16.2":0.00533,"16.3":0.02133,"16.4":0.01333,"16.5":0},G:{"8":0.00101,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00268,"7.0-7.1":0.00771,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00603,"10.0-10.2":0,"10.3":0.00469,"11.0-11.2":0.00402,"11.3-11.4":0.00603,"12.0-12.1":0.00402,"12.2-12.5":0.06672,"13.0-13.1":0.00268,"13.2":0.00201,"13.3":0.00436,"13.4-13.7":0.01173,"14.0-14.4":0.04057,"14.5-14.8":0.06538,"15.0-15.1":0.04224,"15.2-15.3":0.03353,"15.4":0.02649,"15.5":0.05063,"15.6":0.0875,"16.0":0.15724,"16.1":0.2434,"16.2":0.22765,"16.3":1.05642,"16.4":0.94042,"16.5":0.02816},P:{"4":0.09212,"20":0.51177,"5.0-5.4":0,"6.2-6.4":0.01024,"7.2-7.4":0.06141,"8.2":0,"9.2":0.01024,"10.1":0,"11.1-11.2":0.01024,"12.0":0.01024,"13.0":0.01024,"14.0":0.02047,"15.0":0.01024,"16.0":0.03071,"17.0":0.03071,"18.0":0.03071,"19.0":0.09212},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04533},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.008,"5.5":0},S:{"2.5":0.48404,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15401},Q:{"13.1":0},O:{"0":1.95084},H:{"0":2.65236},L:{"0":84.07035}}; diff --git a/node_modules/caniuse-lite/data/regions/IQ.js b/node_modules/caniuse-lite/data/regions/IQ.js new file mode 100644 index 0000000..4a4d922 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IQ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.05492,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00366,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00366,"100":0,"101":0,"102":0.00732,"103":0,"104":0,"105":0,"106":0,"107":0.00366,"108":0.00366,"109":0.00366,"110":0.01831,"111":0.12081,"112":0.10983,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00366,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00732,"39":0,"40":0,"41":0,"42":0,"43":0.01831,"44":0,"45":0,"46":0,"47":0.00366,"48":0,"49":0.00366,"50":0,"51":0.00366,"52":0,"53":0,"54":0,"55":0,"56":0.00732,"57":0,"58":0,"59":0,"60":0.00366,"61":0,"62":0,"63":0.00366,"64":0.00366,"65":0.00366,"66":0,"67":0,"68":0.00366,"69":0.00366,"70":0.00366,"71":0.01098,"72":0.00366,"73":0.00366,"74":0.01098,"75":0,"76":0,"77":0.00366,"78":0.00366,"79":0.04027,"80":0.00732,"81":0.01831,"83":0.01098,"84":0.00366,"85":0.00366,"86":0.00366,"87":0.01098,"88":0.01098,"89":0.00366,"90":0.00366,"91":0.00366,"92":0.00366,"93":0.00366,"94":0.00366,"95":0.01098,"96":0.00732,"97":0.00732,"98":0.00732,"99":0.01831,"100":0.00732,"101":0.00366,"102":0.01464,"103":0.03295,"104":0.00366,"105":0.1501,"106":0.01098,"107":0.01098,"108":0.02929,"109":0.98115,"110":0.04027,"111":1.63647,"112":2.74575,"113":0.00366,"114":0.00366,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00366,"68":0.00732,"69":0.04027,"70":0,"71":0,"72":0,"73":0,"74":0.00732,"75":0.00732,"76":0,"77":0,"78":0,"79":0.00366,"80":0,"81":0,"82":0,"83":0,"84":0.00366,"85":0.00366,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03661,"96":0.04759,"97":0.15742,"98":0.00732,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00366,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00732,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00366,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00366,"108":0.00366,"109":0.01831,"110":0.01464,"111":0.20502,"112":0.41003,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00366,"14":0.03295,"15":0.00732,_:"0","3.1":0,"3.2":0,"5.1":0.09519,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01098,"14.1":0.11349,"15.1":0.00732,"15.2-15.3":0.01098,"15.4":0.04759,"15.5":0.10251,"15.6":0.4503,"16.0":0.01098,"16.1":0.16475,"16.2":0.2819,"16.3":1.65111,"16.4":0.57112,"16.5":0.00732},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00264,"6.0-6.1":0,"7.0-7.1":0.10021,"8.1-8.4":0,"9.0-9.2":0.00527,"9.3":0.06593,"10.0-10.2":0,"10.3":0.07911,"11.0-11.2":0.02373,"11.3-11.4":0.01319,"12.0-12.1":0.0211,"12.2-12.5":0.6461,"13.0-13.1":0.00791,"13.2":0.00527,"13.3":0.03428,"13.4-13.7":0.10285,"14.0-14.4":0.29272,"14.5-14.8":0.52479,"15.0-15.1":0.13186,"15.2-15.3":0.19779,"15.4":0.23471,"15.5":0.46941,"15.6":0.93883,"16.0":2.13082,"16.1":2.17037,"16.2":1.39769,"16.3":7.69521,"16.4":5.74899,"16.5":0.15295},P:{"4":0.10357,"20":2.16455,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.09321,"8.2":0,"9.2":0.01036,"10.1":0,"11.1-11.2":0.06214,"12.0":0.01036,"13.0":0.06214,"14.0":0.04143,"15.0":0.02071,"16.0":0.0725,"17.0":0.08285,"18.0":0.05178,"19.0":0.15535},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0026,"4.2-4.3":0.0078,"4.4":0,"4.4.3-4.4.4":0.10916},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00407,"9":0,"10":0,"11":0.03254,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08241},Q:{"13.1":0},O:{"0":0.44373},H:{"0":0.47411},L:{"0":59.87048}}; diff --git a/node_modules/caniuse-lite/data/regions/IR.js b/node_modules/caniuse-lite/data/regions/IR.js new file mode 100644 index 0000000..1395982 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00244,"48":0,"49":0,"50":0,"51":0,"52":0.01221,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01221,"69":0,"70":0,"71":0,"72":0.00244,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00244,"83":0.00244,"84":0.00244,"85":0,"86":0.00244,"87":0,"88":0.00244,"89":0.00244,"90":0.00244,"91":0.00244,"92":0.00244,"93":0.00244,"94":0.00732,"95":0.00244,"96":0.00244,"97":0.00244,"98":0.00244,"99":0.00488,"100":0.00488,"101":0.00488,"102":0.02197,"103":0.00732,"104":0.00976,"105":0.01221,"106":0.01221,"107":0.01221,"108":0.02197,"109":0.02685,"110":0.0415,"111":0.47111,"112":0.3808,"113":0.00244,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00244,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00488,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00244,"59":0,"60":0,"61":0,"62":0.00244,"63":0.00244,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00244,"70":0.00244,"71":0.00488,"72":0.00244,"73":0,"74":0.00244,"75":0.00244,"76":0,"77":0.00244,"78":0.00488,"79":0.00488,"80":0.00488,"81":0.00732,"83":0.00488,"84":0.00488,"85":0.00488,"86":0.00976,"87":0.00732,"88":0.00488,"89":0.00488,"90":0.00244,"91":0.00732,"92":0.00488,"93":0.00244,"94":0.00488,"95":0.00488,"96":0.00732,"97":0.00488,"98":0.00488,"99":0.00488,"100":0.00976,"101":0.00488,"102":0.00976,"103":0.01709,"104":0.01465,"105":0.01465,"106":0.01709,"107":0.01953,"108":0.03417,"109":0.92514,"110":0.03906,"111":0.9642,"112":1.09357,"113":0.00244,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0.00244,"65":0,"66":0,"67":0,"68":0,"69":0.00244,"70":0,"71":0,"72":0.00244,"73":0.00244,"74":0.00976,"75":0.00244,"76":0,"77":0,"78":0,"79":0.00244,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00732,"95":0.02197,"96":0.01465,"97":0.03173,"98":0.00244,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00244,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00488,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00244,"90":0.00244,"91":0,"92":0.01221,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00244,"101":0,"102":0,"103":0,"104":0,"105":0.00244,"106":0,"107":0.00244,"108":0.00244,"109":0.01953,"110":0.01221,"111":0.04882,"112":0.09764,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00244,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00244,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.00488,"16.0":0,"16.1":0.00244,"16.2":0.00244,"16.3":0.00732,"16.4":0.00488,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00222,"8.1-8.4":0,"9.0-9.2":0.00074,"9.3":0.00444,"10.0-10.2":0.00222,"10.3":0.02144,"11.0-11.2":0.00665,"11.3-11.4":0.00961,"12.0-12.1":0.02662,"12.2-12.5":0.49832,"13.0-13.1":0.01331,"13.2":0.01183,"13.3":0.04436,"13.4-13.7":0.08355,"14.0-14.4":0.25582,"14.5-14.8":0.25951,"15.0-15.1":0.17818,"15.2-15.3":0.20628,"15.4":0.19519,"15.5":0.28391,"15.6":0.34454,"16.0":0.48871,"16.1":0.55304,"16.2":0.50941,"16.3":1.10681,"16.4":1.23398,"16.5":0.00961},P:{"4":0.35264,"20":3.02266,"5.0-5.4":0.0403,"6.2-6.4":0.03023,"7.2-7.4":0.38287,"8.2":0.05038,"9.2":0.13098,"10.1":0.05038,"11.1-11.2":0.22166,"12.0":0.10076,"13.0":0.30227,"14.0":0.29219,"15.0":0.16121,"16.0":0.58438,"17.0":0.61461,"18.0":0.65491,"19.0":1.10831},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00464,"4.4":0,"4.4.3-4.4.4":0.02024},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00739,"9":0.00246,"10":0.00246,"11":0.55888,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.94488},Q:{"13.1":0},O:{"0":0.07559},H:{"0":0.43654},L:{"0":76.48786}}; diff --git a/node_modules/caniuse-lite/data/regions/IS.js b/node_modules/caniuse-lite/data/regions/IS.js new file mode 100644 index 0000000..e2f5daa --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01129,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.03386,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00564,"92":0,"93":0,"94":0,"95":0.02822,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.10159,"103":0,"104":0.02822,"105":0.00564,"106":0.00564,"107":0.00564,"108":0.00564,"109":0.02258,"110":0.01693,"111":1.18524,"112":0.7563,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00564,"50":0,"51":0,"52":0,"53":0.00564,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00564,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00564,"74":0,"75":0,"76":0,"77":0.00564,"78":0,"79":0.01129,"80":0,"81":0.00564,"83":0,"84":0,"85":0.01693,"86":0,"87":0.04515,"88":0.01129,"89":0,"90":0.00564,"91":0.01693,"92":0.00564,"93":0.00564,"94":0,"95":0.00564,"96":0.01693,"97":0.00564,"98":0.00564,"99":0,"100":0.00564,"101":0.00564,"102":0.00564,"103":0.15239,"104":0.00564,"105":0.01693,"106":0.01693,"107":0.05644,"108":0.09595,"109":0.42894,"110":0.32735,"111":8.03706,"112":8.37005,"113":0.01129,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00564,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00564,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00564,"86":0,"87":0,"88":0,"89":0.00564,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02822,"96":0.41766,"97":0.90304,"98":0.0508,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00564,"105":0,"106":0,"107":0.01129,"108":0.00564,"109":0.01693,"110":0.03951,"111":0.99899,"112":2.04877,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01693,"14":0.07337,"15":0.01693,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.03951,"13.1":0.22576,"14.1":0.34993,"15.1":0.03951,"15.2-15.3":0.03951,"15.4":0.08466,"15.5":0.14674,"15.6":0.79016,"16.0":0.12981,"16.1":0.18061,"16.2":0.39508,"16.3":1.52388,"16.4":0.68292,"16.5":0.00564},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00346,"9.0-9.2":0,"9.3":0.01383,"10.0-10.2":0,"10.3":0.05879,"11.0-11.2":0.01383,"11.3-11.4":0,"12.0-12.1":0.00692,"12.2-12.5":0.31124,"13.0-13.1":0.00346,"13.2":0,"13.3":0.01037,"13.4-13.7":0.02421,"14.0-14.4":0.13141,"14.5-14.8":0.57753,"15.0-15.1":0.09337,"15.2-15.3":0.13833,"15.4":0.25591,"15.5":0.55678,"15.6":2.33779,"16.0":2.85653,"16.1":5.00757,"16.2":2.87036,"16.3":13.95756,"16.4":4.42658,"16.5":0.11758},P:{"4":0.03082,"20":3.58511,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0.01027,"11.1-11.2":0,"12.0":0.01027,"13.0":0.14382,"14.0":0.01027,"15.0":0,"16.0":0.01027,"17.0":0.08218,"18.0":0.02055,"19.0":0.08218},I:{"0":0,"3":0,"4":0.00826,"2.1":0,"2.2":0,"2.3":0.00275,"4.1":0.01101,"4.2-4.3":0.01376,"4.4":0,"4.4.3-4.4.4":0.04679},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01129,"9":0,"10":0,"11":0.0508,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.50094},Q:{"13.1":0},O:{"0":0.00871},H:{"0":0.22269},L:{"0":28.77386}}; diff --git a/node_modules/caniuse-lite/data/regions/IT.js b/node_modules/caniuse-lite/data/regions/IT.js new file mode 100644 index 0000000..003daca --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/IT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00452,"48":0.00452,"49":0,"50":0,"51":0,"52":0.0271,"53":0,"54":0.00452,"55":0,"56":0,"57":0,"58":0,"59":0.01355,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00452,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0271,"79":0.00452,"80":0.00452,"81":0.00452,"82":0,"83":0.00452,"84":0,"85":0,"86":0,"87":0.00903,"88":0.00452,"89":0,"90":0,"91":0.00452,"92":0,"93":0.00452,"94":0.00452,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00452,"102":0.04065,"103":0.00452,"104":0.00452,"105":0.00452,"106":0.00452,"107":0.00452,"108":0.01355,"109":0.02259,"110":0.0271,"111":0.79951,"112":0.73175,"113":0.00903,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00452,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.03162,"50":0,"51":0,"52":0.00452,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00903,"61":0,"62":0,"63":0.09486,"64":0,"65":0.00452,"66":0.07227,"67":0.00452,"68":0,"69":0.00452,"70":0,"71":0,"72":0,"73":0,"74":0.00452,"75":0,"76":0,"77":0.00452,"78":0.00452,"79":0.0271,"80":0.00452,"81":0.01807,"83":0.01807,"84":0.0271,"85":0.04065,"86":0.03614,"87":0.04517,"88":0.00452,"89":0.00903,"90":0.00452,"91":0.00452,"92":0.04969,"93":0.00903,"94":0.02259,"95":0.00903,"96":0.00903,"97":0.00903,"98":0.02259,"99":0.01807,"100":0.01355,"101":0.00903,"102":0.00903,"103":0.06776,"104":0.01355,"105":0.02259,"106":0.03162,"107":0.03614,"108":0.09486,"109":0.91695,"110":0.13099,"111":4.39504,"112":5.48816,"113":0.00903,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00452,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00452,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00452,"69":0.00903,"70":0,"71":0,"72":0,"73":0,"74":0.00452,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00452,"95":0.01807,"96":0.09486,"97":0.31167,"98":0.01355,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00903,"18":0.00452,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00452,"86":0,"87":0,"88":0,"89":0,"90":0.00452,"91":0,"92":0.00452,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00452,"105":0,"106":0,"107":0.00903,"108":0.01355,"109":0.04969,"110":0.03162,"111":0.52849,"112":1.22411,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00903,"14":0.04517,"15":0.01355,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.01355,"12.1":0.01807,"13.1":0.08131,"14.1":0.10389,"15.1":0.01807,"15.2-15.3":0.01355,"15.4":0.03614,"15.5":0.04969,"15.6":0.22133,"16.0":0.03162,"16.1":0.09034,"16.2":0.12196,"16.3":0.54204,"16.4":0.32071,"16.5":0.00452},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0051,"6.0-6.1":0.04083,"7.0-7.1":0.0051,"8.1-8.4":0.00255,"9.0-9.2":0.00766,"9.3":0.08166,"10.0-10.2":0,"10.3":0.10207,"11.0-11.2":0.02041,"11.3-11.4":0.09187,"12.0-12.1":0.02552,"12.2-12.5":0.38533,"13.0-13.1":0.01786,"13.2":0.01276,"13.3":0.03828,"13.4-13.7":0.13525,"14.0-14.4":0.30112,"14.5-14.8":0.57161,"15.0-15.1":0.17353,"15.2-15.3":0.20415,"15.4":0.20925,"15.5":0.4134,"15.6":1.05391,"16.0":1.74036,"16.1":2.93207,"16.2":1.6638,"16.3":8.74518,"16.4":5.36398,"16.5":0.09697},P:{"4":0.11284,"20":3.0056,"5.0-5.4":0.01026,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0.02052,"10.1":0.01026,"11.1-11.2":0.05129,"12.0":0.01026,"13.0":0.04103,"14.0":0.03077,"15.0":0.02052,"16.0":0.07181,"17.0":0.05129,"18.0":0.06155,"19.0":0.22568},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02429,"4.2-4.3":0.01215,"4.4":0,"4.4.3-4.4.4":0.10325},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00473,"9":0.00473,"10":0,"11":0.08991,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.37284},Q:{"13.1":0},O:{"0":0.13159},H:{"0":0.26474},L:{"0":50.59562}}; diff --git a/node_modules/caniuse-lite/data/regions/JE.js b/node_modules/caniuse-lite/data/regions/JE.js new file mode 100644 index 0000000..5ba7d8a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00986,"74":0,"75":0,"76":0,"77":0,"78":0.01972,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.02959,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01479,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00493,"110":0.00493,"111":0.51776,"112":0.46351,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00986,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00493,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.02466,"80":0.03945,"81":0.00493,"83":0,"84":0,"85":0,"86":0,"87":0.00493,"88":0,"89":0,"90":0.00493,"91":0,"92":0.00986,"93":0.00493,"94":0.01479,"95":0,"96":0.00986,"97":0,"98":0,"99":0,"100":0,"101":0.00493,"102":0,"103":0.14793,"104":0.00493,"105":0.00493,"106":0,"107":0.01479,"108":0.04438,"109":0.34517,"110":0.16272,"111":3.74756,"112":4.63514,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00493,"69":0.01479,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00493,"96":0.11341,"97":0.31065,"98":0.00986,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00493,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00493,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.01972,"101":0,"102":0,"103":0.00493,"104":0,"105":0.00986,"106":0,"107":0.00493,"108":0.00986,"109":0.01479,"110":0.02466,"111":1.23275,"112":3.21008,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01479,"14":0.08876,"15":0.02959,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.03452,"13.1":0.07397,"14.1":0.23669,"15.1":0.01972,"15.2-15.3":0.07397,"15.4":0.09369,"15.5":0.11834,"15.6":0.78896,"16.0":0.15286,"16.1":0.14793,"16.2":0.52269,"16.3":2.20909,"16.4":0.94182,"16.5":0.01479},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01128,"6.0-6.1":0.07899,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.36674,"10.0-10.2":0,"10.3":0.40624,"11.0-11.2":0.01128,"11.3-11.4":0.18055,"12.0-12.1":0,"12.2-12.5":2.36971,"13.0-13.1":0,"13.2":0.02257,"13.3":0.06206,"13.4-13.7":0.07899,"14.0-14.4":0.65449,"14.5-14.8":0.93096,"15.0-15.1":0.10156,"15.2-15.3":0.15798,"15.4":0.4683,"15.5":0.84068,"15.6":2.03682,"16.0":3.93823,"16.1":5.46726,"16.2":4.23162,"16.3":22.10036,"16.4":8.16421,"16.5":0.1072},P:{"4":0.3612,"20":3.07567,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0.01095,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.01095,"17.0":0.01095,"18.0":0.07662,"19.0":0.16418},I:{"0":0,"3":0,"4":0.04316,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.24818},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.72979,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.20783},Q:{"13.1":0},O:{"0":0.00507},H:{"0":0.06719},L:{"0":19.12353}}; diff --git a/node_modules/caniuse-lite/data/regions/JM.js b/node_modules/caniuse-lite/data/regions/JM.js new file mode 100644 index 0000000..1a3f19c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00891,"74":0,"75":0,"76":0,"77":0,"78":0.00446,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00446,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00446,"98":0,"99":0,"100":0,"101":0,"102":0.00446,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00446,"109":0.00446,"110":0.00446,"111":0.21839,"112":0.19165,"113":0.00446,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00446,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00446,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00446,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00446,"63":0,"64":0,"65":0,"66":0.01783,"67":0,"68":0.00446,"69":0.00446,"70":0,"71":0,"72":0,"73":0.02229,"74":0.00446,"75":0.01337,"76":0.0312,"77":0,"78":0,"79":0.04457,"80":0.00446,"81":0.00891,"83":0.12925,"84":0.00891,"85":0,"86":0.00446,"87":0.02229,"88":0.00446,"89":0.00446,"90":0,"91":0.00891,"92":0.01337,"93":0.12034,"94":0.17828,"95":0.00891,"96":0.00891,"97":0.01337,"98":0.01337,"99":0.00891,"100":0.00891,"101":0.00891,"102":0.01337,"103":0.26296,"104":0.00891,"105":0.0312,"106":0.02229,"107":0.01783,"108":0.05348,"109":0.45016,"110":0.18719,"111":4.74671,"112":4.91161,"113":0.01783,"114":0.01337,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00446,"68":0.00446,"69":0.00891,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00891,"96":0.11588,"97":0.29416,"98":0.00891,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00446,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00446,"93":0,"94":0.00446,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00446,"104":0,"105":0,"106":0,"107":0.00446,"108":0.00446,"109":0.01337,"110":0.04457,"111":0.70421,"112":1.33264,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00446,"14":0.00891,"15":0.00446,_:"0","3.1":0,"3.2":0,"5.1":0.00446,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01337,"13.1":0.0312,"14.1":0.03566,"15.1":0.00446,"15.2-15.3":0.01783,"15.4":0.01783,"15.5":0.0312,"15.6":0.17828,"16.0":0.02229,"16.1":0.48136,"16.2":0.10697,"16.3":0.30753,"16.4":0.16045,"16.5":0},G:{"8":0.00528,"3.2":0,"4.0-4.1":0.00528,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.15303,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.10818,"10.0-10.2":0,"10.3":0.04749,"11.0-11.2":0.0686,"11.3-11.4":0.01055,"12.0-12.1":0.01319,"12.2-12.5":0.49867,"13.0-13.1":0,"13.2":0.00528,"13.3":0.01319,"13.4-13.7":0.09498,"14.0-14.4":0.17942,"14.5-14.8":0.38785,"15.0-15.1":0.1029,"15.2-15.3":0.17414,"15.4":0.21108,"15.5":0.25857,"15.6":0.86805,"16.0":1.89178,"16.1":2.74664,"16.2":1.9208,"16.3":9.08686,"16.4":4.40095,"16.5":0.15567},P:{"4":0.31579,"20":3.17892,"5.0-5.4":0.02105,"6.2-6.4":0,"7.2-7.4":0.25263,"8.2":0,"9.2":0.01053,"10.1":0,"11.1-11.2":0.03158,"12.0":0,"13.0":0.0421,"14.0":0.03158,"15.0":0.01053,"16.0":0.07368,"17.0":0.05263,"18.0":0.06316,"19.0":0.18947},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.09664,"4.4":0,"4.4.3-4.4.4":0.67648},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00446,"11":0.00891,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10532},Q:{"13.1":0},O:{"0":0.29932},H:{"0":0.15743},L:{"0":52.75073}}; diff --git a/node_modules/caniuse-lite/data/regions/JO.js b/node_modules/caniuse-lite/data/regions/JO.js new file mode 100644 index 0000000..822c1f9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00296,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00296,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.01481,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.00296,"81":0.00296,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00592,"103":0,"104":0.00296,"105":0,"106":0,"107":0.00296,"108":0.00296,"109":0.00296,"110":0.01777,"111":0.15101,"112":0.11844,"113":0.00296,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00592,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00592,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00296,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00296,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00296,"64":0,"65":0.00296,"66":0.00296,"67":0,"68":0,"69":0,"70":0,"71":0.00296,"72":0,"73":0,"74":0.00296,"75":0,"76":0,"77":0,"78":0.00592,"79":0.00592,"80":0.00296,"81":0.00296,"83":0.00592,"84":0.00296,"85":0.01481,"86":0.00592,"87":0.00592,"88":0.01481,"89":0.00592,"90":0.00296,"91":0.00296,"92":0.00592,"93":0.00296,"94":0.0533,"95":0.00296,"96":0.00592,"97":0.00296,"98":0.00592,"99":0.03257,"100":0.00592,"101":0.00296,"102":0.00592,"103":0.00888,"104":0.00592,"105":0.01184,"106":0.00888,"107":0.01481,"108":0.02369,"109":0.60701,"110":0.06218,"111":1.90392,"112":2.20595,"113":0.00592,"114":0.00296,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00296,"68":0,"69":0.00296,"70":0.00296,"71":0,"72":0,"73":0.00296,"74":0.00592,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00296,"83":0.00296,"84":0.00296,"85":0,"86":0.00592,"87":0,"88":0,"89":0,"90":0.00296,"91":0.00296,"92":0.00296,"93":0.01481,"94":0.00888,"95":0.00888,"96":0.06218,"97":0.0681,"98":0.00296,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00296,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00296,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00296,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00296,"108":0.00296,"109":0.00888,"110":0.01777,"111":0.20135,"112":0.4175,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00888,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.02369,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01481,"14.1":0.03553,"15.1":0,"15.2-15.3":0.00296,"15.4":0.00592,"15.5":0.02665,"15.6":0.05626,"16.0":0.00888,"16.1":0.02369,"16.2":0.04145,"16.3":0.11548,"16.4":0.06514,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.002,"6.0-6.1":0,"7.0-7.1":0.02203,"8.1-8.4":0.002,"9.0-9.2":0,"9.3":0.05206,"10.0-10.2":0,"10.3":0.0821,"11.0-11.2":0.00601,"11.3-11.4":0.004,"12.0-12.1":0.01001,"12.2-12.5":0.48456,"13.0-13.1":0.004,"13.2":0,"13.3":0.03003,"13.4-13.7":0.07809,"14.0-14.4":0.36442,"14.5-14.8":0.4285,"15.0-15.1":0.09811,"15.2-15.3":0.1742,"15.4":0.17621,"15.5":0.36042,"15.6":0.88303,"16.0":1.62589,"16.1":1.83614,"16.2":1.15334,"16.3":6.32737,"16.4":3.91857,"16.5":0.08009},P:{"4":0.04089,"20":2.63724,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.11244,"8.2":0,"9.2":0.01022,"10.1":0,"11.1-11.2":0.06133,"12.0":0.01022,"13.0":0.05111,"14.0":0.05111,"15.0":0.08177,"16.0":0.10222,"17.0":0.08177,"18.0":0.07155,"19.0":0.20444},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.04682,"4.4":0,"4.4.3-4.4.4":0.14983},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02073,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21821},Q:{"13.1":0},O:{"0":0.26044},H:{"0":0.18659},L:{"0":69.20093}}; diff --git a/node_modules/caniuse-lite/data/regions/JP.js b/node_modules/caniuse-lite/data/regions/JP.js new file mode 100644 index 0000000..3ec4da8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/JP.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00604,"49":0,"50":0,"51":0,"52":0.01812,"53":0,"54":0,"55":0,"56":0.00604,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00604,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01812,"79":0,"80":0,"81":0,"82":0,"83":0.00604,"84":0,"85":0,"86":0,"87":0,"88":0.00604,"89":0,"90":0,"91":0.00604,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00604,"102":0.04831,"103":0.00604,"104":0.00604,"105":0.00604,"106":0.01208,"107":0.00604,"108":0.01208,"109":0.01208,"110":0.02416,"111":0.86358,"112":0.80319,"113":0.00604,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.01208,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00604,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.04831,"50":0,"51":0,"52":0.00604,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00604,"66":0,"67":0.00604,"68":0,"69":0.00604,"70":0.00604,"71":0.00604,"72":0,"73":0.02416,"74":0.00604,"75":0.00604,"76":0,"77":0,"78":0.01208,"79":0.01208,"80":0.01208,"81":0.10266,"83":0.04227,"84":0.01208,"85":0.01208,"86":0.02416,"87":0.02416,"88":0.00604,"89":0.01812,"90":0.00604,"91":0.01208,"92":0.01208,"93":0.00604,"94":0.02416,"95":0.02416,"96":0.01812,"97":0.01812,"98":0.02416,"99":0.02416,"100":0.01812,"101":0.01812,"102":0.0302,"103":0.07851,"104":0.01812,"105":0.0302,"106":0.05435,"107":0.04227,"108":0.11474,"109":0.79111,"110":0.2476,"111":6.31076,"112":8.87733,"113":0.01812,"114":0.00604,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00604,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00604,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01208,"96":0.02416,"97":0.12682,"98":0.00604,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00604,"18":0.00604,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00604,"92":0.00604,"93":0,"94":0,"95":0,"96":0,"97":0.00604,"98":0.00604,"99":0.00604,"100":0.00604,"101":0.00604,"102":0.00604,"103":0.00604,"104":0.00604,"105":0.00604,"106":0.01208,"107":0.01208,"108":0.03623,"109":0.2476,"110":0.1087,"111":2.18008,"112":5.53172,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01208,"14":0.04831,"15":0.01208,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01208,"13.1":0.06643,"14.1":0.12682,"15.1":0.01812,"15.2-15.3":0.01208,"15.4":0.04227,"15.5":0.06039,"15.6":0.31403,"16.0":0.04227,"16.1":0.09059,"16.2":0.15701,"16.3":0.78507,"16.4":0.36838,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.07579,"8.1-8.4":0.08917,"9.0-9.2":0.04012,"9.3":0.17387,"10.0-10.2":0.01783,"10.3":0.09808,"11.0-11.2":0.08025,"11.3-11.4":0.04458,"12.0-12.1":0.04904,"12.2-12.5":0.49041,"13.0-13.1":0.07133,"13.2":0.01783,"13.3":0.0535,"13.4-13.7":0.18725,"14.0-14.4":0.63754,"14.5-14.8":1.34195,"15.0-15.1":0.32546,"15.2-15.3":0.42354,"15.4":0.54391,"15.5":0.84262,"15.6":2.51448,"16.0":1.7967,"16.1":5.43467,"16.2":3.12081,"16.3":16.81227,"16.4":6.97725,"16.5":0.04458},P:{"4":0,"20":0.84042,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01051,"12.0":0,"13.0":0.02101,"14.0":0.01051,"15.0":0,"16.0":0.02101,"17.0":0.01051,"18.0":0.01051,"19.0":0.04202},I:{"0":0,"3":0,"4":0.04977,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02489,"4.2-4.3":0.1742,"4.4":0,"4.4.3-4.4.4":0.21568},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00815,"9":0.02446,"10":0,"11":0.2935,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.35649},Q:{"13.1":0.02377},O:{"0":0.2535},H:{"0":0.105},L:{"0":23.87313}}; diff --git a/node_modules/caniuse-lite/data/regions/KE.js b/node_modules/caniuse-lite/data/regions/KE.js new file mode 100644 index 0000000..7f94b31 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00281,"48":0,"49":0,"50":0,"51":0,"52":0.00281,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00281,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00281,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00281,"102":0.00561,"103":0.00281,"104":0,"105":0,"106":0,"107":0.00281,"108":0.00281,"109":0.00561,"110":0.01403,"111":0.20477,"112":0.20196,"113":0.01403,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00281,"50":0,"51":0,"52":0,"53":0,"54":0.00281,"55":0,"56":0.00281,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00281,"63":0,"64":0,"65":0,"66":0.00281,"67":0,"68":0,"69":0.00281,"70":0.00281,"71":0,"72":0.00561,"73":0.00281,"74":0.00842,"75":0,"76":0,"77":0,"78":0.00281,"79":0.01403,"80":0.00281,"81":0.00281,"83":0.01122,"84":0,"85":0.00281,"86":0.00281,"87":0.00561,"88":0.00281,"89":0.00561,"90":0.00281,"91":0.00281,"92":0.00281,"93":0.0561,"94":0.00281,"95":0.00842,"96":0.00561,"97":0.00281,"98":0.00561,"99":0.00842,"100":0.00281,"101":0.00561,"102":0.00561,"103":0.02525,"104":0.00561,"105":0.00561,"106":0.00842,"107":0.01403,"108":0.0561,"109":0.43197,"110":0.0561,"111":1.47263,"112":1.79801,"113":0.00842,"114":0.00281,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00281,"25":0,"26":0.00561,"27":0.00842,"28":0.01122,"29":0,"30":0.02244,"31":0.00281,"32":0.00561,"33":0.00561,"34":0,"35":0,"36":0,"37":0.00561,"38":0.00281,"39":0,"40":0,"41":0,"42":0.00281,"43":0,"44":0,"45":0.00281,"46":0.00561,"47":0.00281,"48":0,"49":0,"50":0.00281,"51":0.00561,"52":0,"53":0,"54":0.01122,"55":0.00561,"56":0.00281,"57":0.00281,"58":0.01683,"60":0.07854,"62":0.00281,"63":0.14867,"64":0.19074,"65":0.1094,"66":0.35063,"67":0.7826,"68":1.04066,"69":1.35762,"70":0.00561,"71":0,"72":0.01683,"73":0.00842,"74":0.07574,"75":0.02244,"76":0,"77":0,"78":0,"79":0.00281,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00561,"95":0.00842,"96":0.01683,"97":0.10379,"98":0.00561,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01964},B:{"12":0.00281,"13":0.00281,"14":0,"15":0,"16":0,"17":0,"18":0.00281,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00561,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00561,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00281,"108":0.00281,"109":0.00842,"110":0.01403,"111":0.11781,"112":0.25245,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00281,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00281,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00281,"13.1":0.00842,"14.1":0.00842,"15.1":0.00281,"15.2-15.3":0,"15.4":0.00281,"15.5":0.00281,"15.6":0.01683,"16.0":0.00281,"16.1":0.00561,"16.2":0.00842,"16.3":0.03086,"16.4":0.01403,"16.5":0},G:{"8":0.00223,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00382,"6.0-6.1":0.00286,"7.0-7.1":0.03561,"8.1-8.4":0.00032,"9.0-9.2":0.00191,"9.3":0.02512,"10.0-10.2":0.00032,"10.3":0.01717,"11.0-11.2":0.00286,"11.3-11.4":0.00191,"12.0-12.1":0.00477,"12.2-12.5":0.18284,"13.0-13.1":0.00318,"13.2":0.00064,"13.3":0.01018,"13.4-13.7":0.0353,"14.0-14.4":0.05406,"14.5-14.8":0.06614,"15.0-15.1":0.02608,"15.2-15.3":0.03784,"15.4":0.03975,"15.5":0.08013,"15.6":0.13483,"16.0":0.17458,"16.1":0.33612,"16.2":0.21115,"16.3":0.86366,"16.4":0.41275,"16.5":0.01177},P:{"4":0.17439,"20":0.55394,"5.0-5.4":0.01026,"6.2-6.4":0,"7.2-7.4":0.09232,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.05129,"12.0":0,"13.0":0.01026,"14.0":0.01026,"15.0":0.01026,"16.0":0.03077,"17.0":0.01026,"18.0":0.02052,"19.0":0.06155},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00792,"4.4":0,"4.4.3-4.4.4":0.08452},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01403,"5.5":0},S:{"2.5":0.02159,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10793},Q:{"13.1":0.0072},O:{"0":0.18707},H:{"0":32.61471},L:{"0":45.63018}}; diff --git a/node_modules/caniuse-lite/data/regions/KG.js b/node_modules/caniuse-lite/data/regions/KG.js new file mode 100644 index 0000000..89e8b72 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00525,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00525,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00525,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00525,"99":0,"100":0,"101":0,"102":0.03148,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.02098,"111":0.17836,"112":0.1364,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01049,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00525,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00525,"80":0.00525,"81":0.01049,"83":0.00525,"84":0.00525,"85":0.00525,"86":0,"87":0.01574,"88":0.00525,"89":0.01049,"90":0.00525,"91":0,"92":0.01574,"93":0,"94":3.23678,"95":0.01574,"96":0.00525,"97":0.01574,"98":0.00525,"99":0.00525,"100":0.02623,"101":0.03148,"102":0.01574,"103":0.02098,"104":0.01574,"105":0.00525,"106":0.02098,"107":0.01574,"108":0.05771,"109":1.0492,"110":0.09443,"111":15.87964,"112":2.2348,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.02098,"69":0.04197,"70":0,"71":0,"72":0,"73":0,"74":0.00525,"75":0,"76":0,"77":0,"78":0,"79":0.01049,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.0682,"86":0,"87":0,"88":0,"89":0,"90":0.01049,"91":0,"92":0,"93":0,"94":0,"95":0.10492,"96":0.05771,"97":0.35673,"98":0.01574,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.01049,"16":0,"17":0,"18":0.00525,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00525,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00525,"110":0.01574,"111":0.11541,"112":0.29902,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.04197,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00525,"14.1":0.01049,"15.1":0.00525,"15.2-15.3":0,"15.4":0.00525,"15.5":0.01049,"15.6":0.05246,"16.0":0.01574,"16.1":0.02623,"16.2":0.03148,"16.3":0.09443,"16.4":0.06295,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00283,"8.1-8.4":0.00283,"9.0-9.2":0.00425,"9.3":0.02123,"10.0-10.2":0,"10.3":0.01274,"11.0-11.2":0.00991,"11.3-11.4":0,"12.0-12.1":0.00566,"12.2-12.5":0.2194,"13.0-13.1":0.00283,"13.2":0.00849,"13.3":0.01982,"13.4-13.7":0.03397,"14.0-14.4":0.2378,"14.5-14.8":0.46852,"15.0-15.1":0.19675,"15.2-15.3":0.2378,"15.4":0.20241,"15.5":0.50532,"15.6":0.59025,"16.0":1.72262,"16.1":1.88256,"16.2":1.24277,"16.3":3.45655,"16.4":2.03543,"16.5":0.03539},P:{"4":0.1236,"20":0.84463,"5.0-5.4":0.0103,"6.2-6.4":0.0309,"7.2-7.4":0.15451,"8.2":0,"9.2":0.0206,"10.1":0,"11.1-11.2":0.0309,"12.0":0.0103,"13.0":0.0309,"14.0":0.0309,"15.0":0.0206,"16.0":0.0721,"17.0":0.0515,"18.0":0.0824,"19.0":0.21631},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00794,"4.4":0,"4.4.3-4.4.4":0.0278},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00734,"11":0.02938,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.02852},Q:{"13.1":0.00475},O:{"0":0.42786},H:{"0":0.37807},L:{"0":56.40783}}; diff --git a/node_modules/caniuse-lite/data/regions/KH.js b/node_modules/caniuse-lite/data/regions/KH.js new file mode 100644 index 0000000..b1bc2ec --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00397,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00397,"51":0.00397,"52":0.00794,"53":0,"54":0,"55":0,"56":0.00397,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00397,"76":0,"77":0,"78":0.00794,"79":0.00397,"80":0.00794,"81":0.00794,"82":0.00397,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00397,"90":0,"91":0.01589,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00397,"103":0.00397,"104":0.00397,"105":0.00397,"106":0.00397,"107":0.00794,"108":0.00794,"109":0.00794,"110":0.01589,"111":0.30584,"112":0.30982,"113":0.00794,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00397,"38":0.00397,"39":0.00794,"40":0,"41":0.00397,"42":0.00397,"43":0,"44":0,"45":0,"46":0,"47":0.00397,"48":0,"49":0.00397,"50":0,"51":0,"52":0,"53":0.00397,"54":0,"55":0,"56":0.02383,"57":0.00397,"58":0.00397,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00397,"66":0,"67":0,"68":0,"69":0,"70":0.00397,"71":0,"72":0.00397,"73":0.00397,"74":0.00397,"75":0.04766,"76":0.00397,"77":0,"78":0.01192,"79":0.03178,"80":0.00794,"81":0.00397,"83":0.02383,"84":0.03575,"85":0.06752,"86":0.03575,"87":0.03178,"88":0.00397,"89":0.00397,"90":0.00397,"91":0.00794,"92":0.00397,"93":0,"94":0.03575,"95":0.00397,"96":0.01589,"97":0.00794,"98":0.00397,"99":0.03972,"100":0.01192,"101":0.00794,"102":0.00794,"103":0.06355,"104":0.01192,"105":0.0278,"106":0.04766,"107":0.04369,"108":0.07944,"109":0.40912,"110":0.08738,"111":3.66616,"112":5.06033,"113":0.01192,"114":0.01192,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0.00397,"33":0,"34":0,"35":0,"36":0,"37":0.01192,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00397,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.00397,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01986,"69":0.0278,"70":0.00397,"71":0.00794,"72":0.00397,"73":0,"74":0.00794,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00794,"96":0.06355,"97":0.44884,"98":0.00794,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00397,"13":0,"14":0.00397,"15":0,"16":0,"17":0,"18":0.00794,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00397,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00397,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00397,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00397,"107":0,"108":0.00794,"109":0.00397,"110":0.01589,"111":0.20654,"112":0.425,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0.00397,"11":0,"12":0,"13":0.01192,"14":0.03575,"15":0.01192,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00397,"13.1":0.03575,"14.1":0.06752,"15.1":0.01589,"15.2-15.3":0.01192,"15.4":0.03178,"15.5":0.05561,"15.6":0.18271,"16.0":0.01986,"16.1":0.06752,"16.2":0.0715,"16.3":0.35748,"16.4":0.11519,"16.5":0.00397},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01937,"8.1-8.4":0.00387,"9.0-9.2":0.01162,"9.3":0.12395,"10.0-10.2":0.06972,"10.3":0.06585,"11.0-11.2":0.01549,"11.3-11.4":0.07359,"12.0-12.1":0.03486,"12.2-12.5":1.52998,"13.0-13.1":0.06972,"13.2":0.01937,"13.3":0.1162,"13.4-13.7":0.33698,"14.0-14.4":1.13877,"14.5-14.8":1.91731,"15.0-15.1":0.61974,"15.2-15.3":0.5965,"15.4":0.90249,"15.5":1.21236,"15.6":2.89727,"16.0":3.23813,"16.1":3.90822,"16.2":2.74621,"16.3":9.88481,"16.4":3.83462,"16.5":0.13557},P:{"4":0.14332,"20":1.38206,"5.0-5.4":0.02047,"6.2-6.4":0,"7.2-7.4":0.01024,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.01024,"13.0":0.02047,"14.0":0,"15.0":0.01024,"16.0":0.02047,"17.0":0.02047,"18.0":0.03071,"19.0":0.11261},I:{"0":0,"3":0,"4":0.00339,"2.1":0,"2.2":0,"2.3":0.00339,"4.1":0,"4.2-4.3":0.02372,"4.4":0,"4.4.3-4.4.4":0.04744},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01768,"9":0.00442,"10":0.00442,"11":0.28727,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.22304},Q:{"13.1":0.00603},O:{"0":1.04887},H:{"0":0.65059},L:{"0":44.91358}}; diff --git a/node_modules/caniuse-lite/data/regions/KI.js b/node_modules/caniuse-lite/data/regions/KI.js new file mode 100644 index 0000000..84a1931 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00387,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.00387,"55":0,"56":0.09298,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.01162,"110":0.03874,"111":0.13559,"112":0.06586,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.01162,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.0155,"64":0,"65":0,"66":0,"67":0.01162,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.04649,"75":0,"76":0,"77":0.0155,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00387,"89":0,"90":0,"91":0,"92":0.01162,"93":0.02712,"94":0,"95":0,"96":0,"97":0.02712,"98":0.04261,"99":0,"100":0,"101":0,"102":0.23631,"103":0.01162,"104":0.0155,"105":0,"106":0,"107":0.00387,"108":0.01162,"109":0.02324,"110":0.12784,"111":2.4135,"112":1.90601,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00387,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0155,"68":0.0155,"69":0.04649,"70":0,"71":0,"72":0,"73":0,"74":0.03099,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00387,"96":0,"97":0.0155,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.04261,"79":0,"80":0.01162,"81":0,"83":0,"84":0.01162,"85":0.0155,"86":0.03099,"87":0,"88":0,"89":0.01162,"90":0.00387,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00387,"101":0,"102":0,"103":0,"104":0,"105":0.01162,"106":0.01162,"107":0.08523,"108":0.01162,"109":0.02712,"110":0.13946,"111":0.79417,"112":0.5966,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.02324,"15.6":0.07361,"16.0":0.04649,"16.1":0.21694,"16.2":0.26343,"16.3":1.70456,"16.4":0.84841,"16.5":0.00387},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.01919,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.25052,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.01919,"14.0-14.4":0.13435,"14.5-14.8":0.19294,"15.0-15.1":0.03839,"15.2-15.3":0.01919,"15.4":0.3273,"15.5":0.3475,"15.6":0.05758,"16.0":0.42428,"16.1":1.98601,"16.2":0.69399,"16.3":4.29932,"16.4":0.86774,"16.5":0},P:{"4":0.0805,"20":0.25157,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":1.90184,"8.2":0,"9.2":0.26163,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0.0805,"15.0":0.10063,"16.0":0.03019,"17.0":0,"18.0":0.11069,"19.0":0.11069},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.42639,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05811,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08576},Q:{"13.1":0},O:{"0":0.96178},H:{"0":0.46398},L:{"0":73.1529}}; diff --git a/node_modules/caniuse-lite/data/regions/KM.js b/node_modules/caniuse-lite/data/regions/KM.js new file mode 100644 index 0000000..88b525c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00233,"51":0,"52":0.00465,"53":0,"54":0,"55":0.00465,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0.00233,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00233,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00233,"103":0.00233,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00233,"110":0.00233,"111":0.15824,"112":0.07214,"113":0.00233,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.00931,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00233,"44":0.00233,"45":0,"46":0,"47":0,"48":0,"49":0.00233,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00233,"56":0,"57":0,"58":0,"59":0,"60":0.00465,"61":0,"62":0,"63":0,"64":0,"65":0.00698,"66":0,"67":0,"68":0,"69":0.00233,"70":0.00233,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.00233,"81":0.01164,"83":0.00233,"84":0.00233,"85":0,"86":0.00465,"87":0.04189,"88":0.00233,"89":0.01396,"90":0,"91":0,"92":0.00698,"93":0,"94":0.00465,"95":0.00465,"96":0.00465,"97":0,"98":0,"99":0.02094,"100":0,"101":0.01629,"102":0.00698,"103":0.07214,"104":0.01396,"105":0.00233,"106":0.00233,"107":0.00465,"108":0.03723,"109":0.34672,"110":0.01396,"111":0.65854,"112":0.71206,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00698,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00233,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00233,"60":0,"62":0,"63":0,"64":0,"65":0.00233,"66":0,"67":0,"68":0.03025,"69":0.01629,"70":0,"71":0,"72":0,"73":0,"74":0.00233,"75":0,"76":0,"77":0,"78":0,"79":0.00465,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00233,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.02792,"95":0.00931,"96":0.03491,"97":0.08145,"98":0.00465,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00465,"13":0.00698,"14":0.00233,"15":0,"16":0,"17":0,"18":0.00233,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00233,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00698,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00233,"107":0.01629,"108":0.01396,"109":0,"110":0.01629,"111":0.07214,"112":0.12799,"113":0.00233},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00233,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00233,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00465,"13.1":0.00931,"14.1":0.00233,"15.1":0,"15.2-15.3":0,"15.4":0.00233,"15.5":0,"15.6":0.00233,"16.0":0,"16.1":0,"16.2":0.00233,"16.3":0.00698,"16.4":0.08377,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02039,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0034,"11.0-11.2":0.0068,"11.3-11.4":0,"12.0-12.1":0.13934,"12.2-12.5":1.05867,"13.0-13.1":0,"13.2":0.0068,"13.3":0.04418,"13.4-13.7":0.01359,"14.0-14.4":2.42492,"14.5-14.8":2.76818,"15.0-15.1":0.15634,"15.2-15.3":0.4945,"15.4":0.46051,"15.5":0.28039,"15.6":0.38574,"16.0":0.35855,"16.1":0.57777,"16.2":0.88024,"16.3":2.15473,"16.4":1.2405,"16.5":0},P:{"4":0.08043,"20":0.55293,"5.0-5.4":0.03016,"6.2-6.4":0.01005,"7.2-7.4":0.18096,"8.2":0,"9.2":0.06032,"10.1":0,"11.1-11.2":0.24128,"12.0":0.01005,"13.0":0.01005,"14.0":0.56298,"15.0":0,"16.0":0.06032,"17.0":0.26138,"18.0":0.16085,"19.0":0.24128},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00427,"4.2-4.3":0.00374,"4.4":0,"4.4.3-4.4.4":0.0406},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00233,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.03837},Q:{"13.1":0.04604},O:{"0":0.09975},H:{"0":0.51577},L:{"0":79.62238}}; diff --git a/node_modules/caniuse-lite/data/regions/KN.js b/node_modules/caniuse-lite/data/regions/KN.js new file mode 100644 index 0000000..04a09f8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02558,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00512,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00512,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.01023,"110":0.1023,"111":0.32736,"112":0.21483,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01023,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0.01535,"72":0,"73":0,"74":0.00512,"75":0.00512,"76":0.02046,"77":0,"78":0,"79":0.11253,"80":0,"81":0.00512,"83":0.03069,"84":0,"85":0,"86":0,"87":0.00512,"88":0,"89":0,"90":0,"91":0.00512,"92":0,"93":0.01023,"94":0,"95":0,"96":0.05115,"97":0,"98":0.02046,"99":0,"100":0.00512,"101":0,"102":0,"103":0.08184,"104":0,"105":0.09207,"106":0.00512,"107":0.03581,"108":0.03581,"109":0.63938,"110":0.36317,"111":6.16869,"112":5.46282,"113":0.01023,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00512,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00512,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00512,"96":0.07161,"97":0.14322,"98":0.01023,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00512,"79":0,"80":0,"81":0,"83":0,"84":0.00512,"85":0.00512,"86":0,"87":0,"88":0,"89":0,"90":0.00512,"91":0,"92":0.00512,"93":0,"94":0,"95":0,"96":0,"97":0.00512,"98":0,"99":0.00512,"100":0,"101":0,"102":0.00512,"103":0.00512,"104":0,"105":0,"106":0,"107":0,"108":0.00512,"109":0.04092,"110":0.23529,"111":1.83629,"112":3.2736,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.02558,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.02046,"13.1":0.03069,"14.1":0.2046,"15.1":0.01535,"15.2-15.3":0.01023,"15.4":0.04092,"15.5":0.03069,"15.6":0.2711,"16.0":0.02558,"16.1":0.09207,"16.2":0.15345,"16.3":0.72633,"16.4":0.23529,"16.5":0.00512},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.06501,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00271,"10.0-10.2":0,"10.3":0.12189,"11.0-11.2":0.02709,"11.3-11.4":0,"12.0-12.1":0.01896,"12.2-12.5":0.27086,"13.0-13.1":0.00542,"13.2":0,"13.3":0.04334,"13.4-13.7":0.03792,"14.0-14.4":0.06772,"14.5-14.8":0.20586,"15.0-15.1":0.03792,"15.2-15.3":0.04334,"15.4":0.13543,"15.5":0.19773,"15.6":1.56018,"16.0":1.19722,"16.1":2.50007,"16.2":1.43558,"16.3":12.6683,"16.4":4.22818,"16.5":0.12731},P:{"4":0.40211,"20":2.82533,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.1164,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01058,"12.0":0,"13.0":0.01058,"14.0":0.01058,"15.0":0,"16.0":0.01058,"17.0":0.07407,"18.0":0.02116,"19.0":0.07407},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.09829,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.86827},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05627,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10747},Q:{"13.1":0.00489},O:{"0":0.13678},H:{"0":1.44756},L:{"0":43.99659}}; diff --git a/node_modules/caniuse-lite/data/regions/KP.js b/node_modules/caniuse-lite/data/regions/KP.js new file mode 100644 index 0000000..244eedb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KP.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.14512,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0.38326,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.09675,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.14512,"112":0.04837,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.04837,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0.09675,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":4.1824,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.14512,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.6735,"110":0,"111":1.73027,"112":1.63352,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.38326,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.14512,"110":0,"111":0,"112":0,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.04837,"16.0":0.04837,"16.1":0,"16.2":0.04837,"16.3":0.14512,"16.4":0.24187,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":18.08379,"15.6":0.17924,"16.0":0.29873,"16.1":2.50658,"16.2":0.59745,"16.3":2.9248,"16.4":1.90913,"16.5":0.05975},P:{"4":0,"20":0,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":39.14957},H:{"0":0},L:{"0":5.93207}}; diff --git a/node_modules/caniuse-lite/data/regions/KR.js b/node_modules/caniuse-lite/data/regions/KR.js new file mode 100644 index 0000000..8bca6ce --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00365,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00365,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00365,"110":0.00365,"111":0.1168,"112":0.0803,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.0073,"43":0,"44":0.00365,"45":0,"46":0,"47":0,"48":0,"49":0.00365,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00365,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.04745,"78":0,"79":0.00365,"80":0.00365,"81":0.01095,"83":0.0073,"84":0.0073,"85":0.0073,"86":0.01095,"87":0.01095,"88":0,"89":0.00365,"90":0.07665,"91":0.01825,"92":0,"93":0,"94":0.0073,"95":0,"96":0.00365,"97":0.00365,"98":0.00365,"99":0.0073,"100":0.0073,"101":0.01095,"102":0.01095,"103":0.0146,"104":0.01095,"105":0.0073,"106":0.01095,"107":0.0219,"108":0.0365,"109":0.3942,"110":0.05475,"111":3.08425,"112":3.96025,"113":0.00365,"114":0.00365,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00365,"69":0.00365,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00365,"97":0.0365,"98":0.00365,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00365,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00365,"92":0.00365,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00365,"104":0.0073,"105":0.00365,"106":0.0073,"107":0.0073,"108":0.01095,"109":0.0511,"110":0.0292,"111":0.584,"112":1.4089,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.00365,"9":0,"10":0,"11":0,"12":0,"13":0.00365,"14":0.0073,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00365,"13.1":0.0073,"14.1":0.01095,"15.1":0,"15.2-15.3":0.00365,"15.4":0.0219,"15.5":0.0073,"15.6":0.0365,"16.0":0.0073,"16.1":0.0219,"16.2":0.02555,"16.3":0.146,"16.4":0.0803,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00773,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01289,"9.0-9.2":0.00258,"9.3":0.00258,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.00773,"11.3-11.4":0,"12.0-12.1":0.00516,"12.2-12.5":0.07475,"13.0-13.1":0.1495,"13.2":0.00258,"13.3":0.01804,"13.4-13.7":0.03351,"14.0-14.4":0.14434,"14.5-14.8":0.36859,"15.0-15.1":0.10052,"15.2-15.3":0.14176,"15.4":0.17012,"15.5":0.33765,"15.6":0.93306,"16.0":2.09037,"16.1":3.2219,"16.2":1.95634,"16.3":10.33843,"16.4":5.02358,"16.5":0.10826},P:{"4":0.01009,"20":14.66436,"5.0-5.4":0.02018,"6.2-6.4":0,"7.2-7.4":0.01009,"8.2":0.01009,"9.2":0.01009,"10.1":0.01009,"11.1-11.2":0.03028,"12.0":0,"13.0":0.03028,"14.0":0.03028,"15.0":0.02018,"16.0":0.07065,"17.0":0.08074,"18.0":0.19176,"19.0":0.51472},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.18015},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00402,"9":0,"10":0,"11":0.07629,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.127},Q:{"13.1":0.00635},O:{"0":0.0762},H:{"0":0.16232},L:{"0":31.01645}}; diff --git a/node_modules/caniuse-lite/data/regions/KW.js b/node_modules/caniuse-lite/data/regions/KW.js new file mode 100644 index 0000000..7da6c51 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00289,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.04906,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00289,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00866,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00577,"110":0.00577,"111":0.1039,"112":0.08369,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00866,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00289,"48":0,"49":0.00289,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00289,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00289,"65":0,"66":0,"67":0,"68":0.00577,"69":0,"70":0,"71":0,"72":0,"73":0.00289,"74":0,"75":0.00289,"76":0.00289,"77":0,"78":0.00577,"79":0.00577,"80":0.00577,"81":0.02309,"83":0.00289,"84":0,"85":0.00289,"86":0.00577,"87":0.00289,"88":0.00577,"89":0.00289,"90":0.00577,"91":0.00289,"92":0.00577,"93":0.00289,"94":0.00289,"95":0.00289,"96":0.00289,"97":0.00866,"98":0.00289,"99":0.02309,"100":0.00289,"101":0.00577,"102":0.00289,"103":0.0202,"104":0.00866,"105":0.00577,"106":0.00866,"107":0.01443,"108":0.01443,"109":0.25974,"110":0.07504,"111":1.80086,"112":2.29148,"113":0.00289,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01443,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01154,"47":0,"48":0,"49":0,"50":0,"51":0.01732,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00289,"62":0,"63":0.00289,"64":0.00289,"65":0,"66":0.00289,"67":0.01443,"68":0.02597,"69":0.12698,"70":0,"71":0,"72":0,"73":0,"74":0.00577,"75":0.00289,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00577,"96":0.07504,"97":0.17893,"98":0.00289,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00289,"79":0,"80":0,"81":0,"83":0,"84":0.00289,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00289,"106":0.00289,"107":0.00289,"108":0.00289,"109":0.01154,"110":0.01732,"111":0.27128,"112":0.46753,"113":0},E:{"4":0,"5":0,"6":0,"7":0.03463,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00289,"14":0.03175,"15":0.00866,_:"0","3.1":0,"3.2":0,"5.1":0.00289,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01443,"14.1":0.08081,"15.1":0.01732,"15.2-15.3":0.00866,"15.4":0.04329,"15.5":0.0404,"15.6":0.14141,"16.0":0.01154,"16.1":0.0404,"16.2":0.05772,"16.3":0.28283,"16.4":0.1241,"16.5":0.00289},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01655,"8.1-8.4":0.00414,"9.0-9.2":0,"9.3":0.07033,"10.0-10.2":0,"10.3":0.06619,"11.0-11.2":0.00414,"11.3-11.4":0.00414,"12.0-12.1":0.01655,"12.2-12.5":0.55021,"13.0-13.1":0.04964,"13.2":0.02896,"13.3":0.09515,"13.4-13.7":0.14066,"14.0-14.4":0.92667,"14.5-14.8":1.57617,"15.0-15.1":0.47161,"15.2-15.3":0.54607,"15.4":0.76533,"15.5":1.2328,"15.6":2.51111,"16.0":3.54534,"16.1":4.67472,"16.2":3.35918,"16.3":10.61947,"16.4":8.03803,"16.5":0.13652},P:{"4":0.1445,"20":3.29249,"5.0-5.4":0.01032,"6.2-6.4":0,"7.2-7.4":0.08257,"8.2":0,"9.2":0.01032,"10.1":0,"11.1-11.2":0.04129,"12.0":0.01032,"13.0":0.05161,"14.0":0.05161,"15.0":0.02064,"16.0":0.10321,"17.0":0.07225,"18.0":0.08257,"19.0":0.31996},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0164,"4.4":0,"4.4.3-4.4.4":0.0738},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01732,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08537},Q:{"13.1":0},O:{"0":2.24091},H:{"0":1.20558},L:{"0":42.01593}}; diff --git a/node_modules/caniuse-lite/data/regions/KY.js b/node_modules/caniuse-lite/data/regions/KY.js new file mode 100644 index 0000000..59e71c7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00521,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.2082,"93":0,"94":0.08328,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01041,"103":0.00521,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.02082,"111":0.49968,"112":0.35394,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00521,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00521,"77":0,"78":0.03644,"79":0.03123,"80":0,"81":0,"83":0.00521,"84":0.00521,"85":0,"86":0,"87":0.00521,"88":0,"89":0,"90":0,"91":0.00521,"92":0.04685,"93":0,"94":0,"95":0,"96":0.00521,"97":0,"98":0.01041,"99":0,"100":0,"101":0,"102":0.02082,"103":0.13533,"104":0.00521,"105":0.03644,"106":0.00521,"107":0.02603,"108":0.04164,"109":0.46845,"110":0.35915,"111":7.08921,"112":7.30262,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00521,"90":0,"91":0,"92":0,"93":0.00521,"94":0,"95":0,"96":0.203,"97":0.4164,"98":0.01041,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00521,"107":0.01041,"108":0.01041,"109":0.04164,"110":0.03644,"111":1.03059,"112":2.20172,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01041,"14":0.03644,"15":0.01041,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01041,"13.1":0.13533,"14.1":0.19779,"15.1":0.02082,"15.2-15.3":0.02082,"15.4":0.07808,"15.5":0.03644,"15.6":0.6194,"16.0":0.03123,"16.1":0.22902,"16.2":0.17697,"16.3":1.6656,"16.4":0.70788,"16.5":0.00521},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02938,"10.0-10.2":0,"10.3":0.06716,"11.0-11.2":0.01259,"11.3-11.4":0.00839,"12.0-12.1":0.03778,"12.2-12.5":0.1637,"13.0-13.1":0,"13.2":0,"13.3":0.01259,"13.4-13.7":0.03778,"14.0-14.4":0.14691,"14.5-14.8":0.36098,"15.0-15.1":0.14271,"15.2-15.3":0.22666,"15.4":0.18469,"15.5":0.67579,"15.6":3.33278,"16.0":2.61921,"16.1":3.94561,"16.2":2.53527,"16.3":17.85599,"16.4":6.87124,"16.5":0.22247},P:{"4":0.18704,"20":3.68884,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.20782,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.06235,"12.0":0,"13.0":0,"14.0":0,"15.0":0.01039,"16.0":0.02078,"17.0":0.05196,"18.0":0.02078,"19.0":0.03117},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.26505,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01041,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.13426},Q:{"13.1":0},O:{"0":0.08152},H:{"0":0.02724},L:{"0":28.27909}}; diff --git a/node_modules/caniuse-lite/data/regions/KZ.js b/node_modules/caniuse-lite/data/regions/KZ.js new file mode 100644 index 0000000..e3db767 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/KZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00347,"51":0,"52":0.09372,"53":0,"54":0,"55":0,"56":0.00347,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.01041,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.00347,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00347,"97":0,"98":0,"99":0,"100":0,"101":0.00347,"102":0.01041,"103":0,"104":0,"105":0.00347,"106":0,"107":0.00347,"108":0,"109":0.00347,"110":0.03471,"111":0.18049,"112":0.18396,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00347,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0.00347,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00347,"49":0.00694,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00347,"69":0.00347,"70":0.00347,"71":0.00347,"72":0.00347,"73":0.00347,"74":0.00694,"75":0.00347,"76":0.00347,"77":0.00347,"78":0.00347,"79":0.01041,"80":0.01041,"81":0.00694,"83":0.01041,"84":0.00694,"85":0.01388,"86":0.01388,"87":0.01388,"88":0.01041,"89":0.00694,"90":0.01041,"91":0.01388,"92":0.00347,"93":0,"94":0.07983,"95":0.00347,"96":0.00694,"97":0.01736,"98":0.01041,"99":0.00694,"100":0.01041,"101":0.01041,"102":0.01388,"103":0.02777,"104":0.00694,"105":0.02083,"106":0.07289,"107":0.0243,"108":0.05554,"109":1.18361,"110":0.12496,"111":1.90211,"112":2.18673,"113":0.00347,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01388,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00347,"75":0,"76":0,"77":0,"78":0,"79":0.00694,"80":0,"81":0,"82":0,"83":0,"84":0.00347,"85":0.02083,"86":0.00347,"87":0,"88":0,"89":0.00347,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.12843,"96":0.09025,"97":0.41652,"98":0.01388,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0.15967,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00347,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00347,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00347,"108":0.00347,"109":0.01388,"110":0.01388,"111":0.19785,"112":0.46859,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00694,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.02083,"6.1":0,"7.1":0,"9.1":0.02083,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00694,"14.1":0.01736,"15.1":0.01041,"15.2-15.3":0.00694,"15.4":0.01388,"15.5":0.01388,"15.6":0.06942,"16.0":0.00694,"16.1":0.04165,"16.2":0.04512,"16.3":0.14231,"16.4":0.07983,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02641,"10.0-10.2":0.00528,"10.3":0.02112,"11.0-11.2":0.02641,"11.3-11.4":0.00264,"12.0-12.1":0.01848,"12.2-12.5":0.34063,"13.0-13.1":0.01056,"13.2":0.01056,"13.3":0.08186,"13.4-13.7":0.10034,"14.0-14.4":0.47002,"14.5-14.8":0.808,"15.0-15.1":0.24293,"15.2-15.3":0.34327,"15.4":0.53075,"15.5":0.88986,"15.6":1.54999,"16.0":3.7258,"16.1":3.62281,"16.2":2.36856,"16.3":6.58549,"16.4":3.17392,"16.5":0.06337},P:{"4":0.10188,"20":2.16997,"5.0-5.4":0,"6.2-6.4":0.01019,"7.2-7.4":0.25469,"8.2":0,"9.2":0.01019,"10.1":0,"11.1-11.2":0.05094,"12.0":0.02038,"13.0":0.03056,"14.0":0.05094,"15.0":0.02038,"16.0":0.10188,"17.0":0.07131,"18.0":0.13244,"19.0":0.26488},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0038,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02661},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00347,"9":0,"10":0,"11":0.02083,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.05223},Q:{"13.1":0},O:{"0":0.43744},H:{"0":0.27197},L:{"0":57.61005}}; diff --git a/node_modules/caniuse-lite/data/regions/LA.js b/node_modules/caniuse-lite/data/regions/LA.js new file mode 100644 index 0000000..1e99327 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0056,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.0056,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.0028,"101":0,"102":0.0056,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.0028,"110":0.0056,"111":0.14835,"112":0.09797,"113":0.0028,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.06158,"38":0,"39":0,"40":0,"41":0.0028,"42":0,"43":0.0084,"44":0.0028,"45":0,"46":0,"47":0,"48":0.0028,"49":0,"50":0,"51":0,"52":0,"53":0.0028,"54":0,"55":0,"56":0,"57":0,"58":0.0028,"59":0,"60":0,"61":0,"62":0.0028,"63":0,"64":0,"65":0.0056,"66":0.0056,"67":0,"68":0,"69":0.0028,"70":0.0084,"71":0.0028,"72":0.0028,"73":0,"74":0.0028,"75":0.0028,"76":0,"77":0,"78":0.0084,"79":0.0056,"80":0.0056,"81":0.0028,"83":0.02239,"84":0.01679,"85":0.01959,"86":0.0112,"87":0.0056,"88":0.0056,"89":0.0056,"90":0.0084,"91":0.0056,"92":0.0028,"93":0.0028,"94":0.23512,"95":0.0028,"96":0.0056,"97":0.0056,"98":0.0056,"99":0.0112,"100":0.0056,"101":0.0056,"102":0.0112,"103":0.03639,"104":0.0112,"105":0.0084,"106":0.02239,"107":0.02799,"108":0.04199,"109":0.54581,"110":0.04199,"111":1.31833,"112":1.44149,"113":0.0028,"114":0.0028,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.0028,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0028,"69":0.0028,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0056,"96":0.014,"97":0.03919,"98":0.0028,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.0028,"13":0,"14":0.0028,"15":0.0028,"16":0,"17":0,"18":0.0028,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0056,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.0028,"107":0,"108":0.0056,"109":0.014,"110":0.0112,"111":0.16234,"112":0.31069,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0028,"14":0.0084,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0028,"13.1":0.0084,"14.1":0.03919,"15.1":0.0028,"15.2-15.3":0,"15.4":0.0028,"15.5":0.0056,"15.6":0.05878,"16.0":0.0028,"16.1":0.01679,"16.2":0.01679,"16.3":0.06718,"16.4":0.04758,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01261,"7.0-7.1":0.01513,"8.1-8.4":0.01009,"9.0-9.2":0.00757,"9.3":0.08323,"10.0-10.2":0.00504,"10.3":0.08827,"11.0-11.2":0.03531,"11.3-11.4":0.02522,"12.0-12.1":0.01513,"12.2-12.5":1.11979,"13.0-13.1":0.02522,"13.2":0.01261,"13.3":0.07314,"13.4-13.7":0.31778,"14.0-14.4":0.73896,"14.5-14.8":1.18789,"15.0-15.1":0.41362,"15.2-15.3":0.57251,"15.4":0.52711,"15.5":0.95334,"15.6":1.84363,"16.0":1.52332,"16.1":2.34299,"16.2":1.64186,"16.3":5.80326,"16.4":2.63303,"16.5":0.05549},P:{"4":0.19265,"20":2.11912,"5.0-5.4":0.01014,"6.2-6.4":0.01014,"7.2-7.4":0.14195,"8.2":0,"9.2":0.02028,"10.1":0,"11.1-11.2":0.06084,"12.0":0.01014,"13.0":0.02028,"14.0":0.11153,"15.0":0.07098,"16.0":0.10139,"17.0":0.10139,"18.0":0.14195,"19.0":0.40557},I:{"0":0,"3":0,"4":0.03433,"2.1":0,"2.2":0.04578,"2.3":0.02289,"4.1":0.03433,"4.2-4.3":0.08011,"4.4":0,"4.4.3-4.4.4":0.19455},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.00385,"8":0.02309,"9":0.00385,"10":0.00385,"11":0.02694,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0.0072,"11":0.0072},R:{_:"0"},M:{"0":0.10081},Q:{"13.1":0.0216},O:{"0":1.52661},H:{"0":0.2727},L:{"0":64.49094}}; diff --git a/node_modules/caniuse-lite/data/regions/LB.js b/node_modules/caniuse-lite/data/regions/LB.js new file mode 100644 index 0000000..8abd980 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LB.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01112,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00371,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00371,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00741,"103":0,"104":0,"105":0,"106":0.00371,"107":0.00371,"108":0.00371,"109":0.01112,"110":0.06673,"111":0.22613,"112":0.19276,"113":0.00371,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00371,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01112,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00371,"66":0,"67":0.00371,"68":0.00741,"69":0.00371,"70":0,"71":0.00371,"72":0,"73":0,"74":0.00371,"75":0,"76":0.00741,"77":0,"78":0,"79":0.01112,"80":0.00371,"81":0.01112,"83":0.02966,"84":0.01483,"85":0.00371,"86":0.01112,"87":0.00741,"88":0.00371,"89":0,"90":0.00741,"91":0.00741,"92":0.00371,"93":0.00371,"94":0.00371,"95":0.00371,"96":0.00741,"97":0.00371,"98":0.00741,"99":0.01112,"100":0.00371,"101":0.00371,"102":0.01112,"103":0.04078,"104":0.00741,"105":0.01112,"106":0.00741,"107":0.02966,"108":0.04819,"109":0.97865,"110":0.12975,"111":3.00638,"112":3.62915,"113":0.00371,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01112,"69":0.01483,"70":0,"71":0,"72":0,"73":0,"74":0.00371,"75":0,"76":0,"77":0,"78":0,"79":0.00371,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00371,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02595,"96":0.05561,"97":0.22242,"98":0.01483,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00371,"13":0,"14":0,"15":0.00371,"16":0,"17":0.00371,"18":0.00371,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00741,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00371,"105":0,"106":0,"107":0.00371,"108":0.00741,"109":0.02595,"110":0.03707,"111":0.32622,"112":0.54493,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00371,"14":0.02966,"15":0.00371,_:"0","3.1":0,"3.2":0,"5.1":0.10009,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00371,"13.1":0.1038,"14.1":0.04448,"15.1":0.02595,"15.2-15.3":0.01112,"15.4":0.01112,"15.5":0.09268,"15.6":0.14828,"16.0":0.01112,"16.1":0.05931,"16.2":0.09638,"16.3":0.20018,"16.4":0.14087,"16.5":0.00371},G:{"8":0.01148,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01434,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08033,"10.0-10.2":0,"10.3":0.0832,"11.0-11.2":0,"11.3-11.4":0.00574,"12.0-12.1":0.0373,"12.2-12.5":0.78894,"13.0-13.1":0.00861,"13.2":0.00287,"13.3":0.02295,"13.4-13.7":0.13197,"14.0-14.4":0.3041,"14.5-14.8":0.74591,"15.0-15.1":0.17787,"15.2-15.3":0.19221,"15.4":0.25246,"15.5":0.51066,"15.6":1.1246,"16.0":2.15165,"16.1":3.14428,"16.2":1.58649,"16.3":9.52753,"16.4":5.49389,"16.5":0.07459},P:{"4":0.14244,"20":4.44606,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.13226,"8.2":0,"9.2":0.02035,"10.1":0.01017,"11.1-11.2":0.06104,"12.0":0.02035,"13.0":0.10174,"14.0":0.11191,"15.0":0.06104,"16.0":0.10174,"17.0":0.20348,"18.0":0.16278,"19.0":0.25435},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00361,"4.2-4.3":0.01987,"4.4":0,"4.4.3-4.4.4":0.09212},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02966,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12586},Q:{"13.1":0},O:{"0":0.22026},H:{"0":0.23831},L:{"0":53.32}}; diff --git a/node_modules/caniuse-lite/data/regions/LC.js b/node_modules/caniuse-lite/data/regions/LC.js new file mode 100644 index 0000000..629552b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00949,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00475,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00475,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00475,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.02848,"109":0.00475,"110":0.00475,"111":0.46511,"112":0.32747,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00475,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00475,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00475,"74":0.00475,"75":0.00475,"76":0.03797,"77":0,"78":0,"79":0.09017,"80":0,"81":0.03797,"83":0.02373,"84":0,"85":0,"86":0,"87":0.00949,"88":0.00949,"89":0.00475,"90":0,"91":0.00475,"92":0,"93":0.0617,"94":0,"95":0.00475,"96":0.00475,"97":0.00475,"98":0.00475,"99":0,"100":0.01424,"101":0,"102":0.00475,"103":0.38443,"104":0.03322,"105":0.01424,"106":0.01424,"107":0.01898,"108":0.02373,"109":0.38917,"110":0.64546,"111":5.58604,"112":5.77588,"113":0.02848,"114":0.02848,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00475,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00475,"69":0.02848,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.21357,"96":0.09492,"97":0.26578,"98":0.01424,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00475,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00949,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00475,"104":0,"105":0,"106":0,"107":0.00475,"108":0.00475,"109":0.01898,"110":0.04271,"111":0.87801,"112":1.60415,"113":0.00475},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.03322,"15":0.00949,_:"0","3.1":0,"3.2":0,"5.1":0.00475,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00475,"13.1":0.06644,"14.1":0.05221,"15.1":0.00475,"15.2-15.3":0.00475,"15.4":0.01424,"15.5":0.03322,"15.6":0.13289,"16.0":0.00949,"16.1":0.03797,"16.2":0.04746,"16.3":0.3607,"16.4":0.12814,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00679,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.46197,"10.0-10.2":0,"10.3":0.04076,"11.0-11.2":0.01132,"11.3-11.4":0.00453,"12.0-12.1":0.00453,"12.2-12.5":0.36007,"13.0-13.1":0,"13.2":0.00453,"13.3":0,"13.4-13.7":0.02038,"14.0-14.4":0.1404,"14.5-14.8":0.16984,"15.0-15.1":0.04756,"15.2-15.3":0.11776,"15.4":0.52085,"15.5":0.21514,"15.6":0.9013,"16.0":1.38366,"16.1":2.47972,"16.2":1.69391,"16.3":9.16703,"16.4":3.41725,"16.5":0.09285},P:{"4":0.12636,"20":3.9277,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.33696,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.05265,"12.0":0,"13.0":0.02106,"14.0":0.01053,"15.0":0.01053,"16.0":0.06318,"17.0":0.06318,"18.0":0.05265,"19.0":0.35802},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.11013,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.77093},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00475,"11":0.00475,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.61997},Q:{"13.1":0},O:{"0":0.02102},H:{"0":0.20891},L:{"0":51.06127}}; diff --git a/node_modules/caniuse-lite/data/regions/LI.js b/node_modules/caniuse-lite/data/regions/LI.js new file mode 100644 index 0000000..c67e466 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0.00607,"3":0,"4":0.02429,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00607,"37":0,"38":0.00607,"39":0.00607,"40":0.00607,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.01822,"51":0,"52":0.03644,"53":0.01215,"54":0,"55":0,"56":0.02429,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00607,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00607,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.01822,"101":0,"102":0.01822,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.01215,"110":0.30972,"111":3.54663,"112":2.23486,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00607,"38":0.00607,"39":0,"40":0.00607,"41":0.01215,"42":0.00607,"43":0.01215,"44":0.04251,"45":0.03037,"46":0.01822,"47":0.01215,"48":0,"49":0.27936,"50":0,"51":0.00607,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.03037,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.04858,"78":0,"79":0.10324,"80":0,"81":0.00607,"83":0,"84":0.04251,"85":0.01822,"86":0,"87":0,"88":0,"89":0,"90":0.03644,"91":0,"92":0,"93":0,"94":0.00607,"95":0,"96":0,"97":0.04858,"98":0,"99":0.00607,"100":0.01215,"101":0.00607,"102":0.00607,"103":0.06073,"104":0.00607,"105":0.64374,"106":0.0911,"107":0.04858,"108":0.11539,"109":0.7652,"110":0.20041,"111":5.42926,"112":7.55481,"113":0.01215,"114":0,"115":0,"116":0},F:{"9":0,"11":0.00607,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0.00607,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00607,"30":0.02429,"31":0.01215,"32":0.01215,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01822,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.06073,"96":0.42511,"97":0.64374,"98":0.01215,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0.01215,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.02429,"13":0,"14":0.06073,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.01215,"107":0.32794,"108":0.03644,"109":0.27329,"110":0.21256,"111":1.65793,"112":3.58307,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.06073,"14":0.0911,"15":0.01822,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01215,"13.1":0.2915,"14.1":0.32187,"15.1":0.06073,"15.2-15.3":0,"15.4":0.01215,"15.5":0.03037,"15.6":0.3826,"16.0":0.09717,"16.1":0.0668,"16.2":0.13968,"16.3":1.22675,"16.4":0.80771,"16.5":0.00607},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01074,"6.0-6.1":0.01074,"7.0-7.1":0.02864,"8.1-8.4":0.179,"9.0-9.2":0.05728,"9.3":0.5728,"10.0-10.2":0,"10.3":0.16468,"11.0-11.2":0,"11.3-11.4":0.02864,"12.0-12.1":0,"12.2-12.5":0.39738,"13.0-13.1":0.02148,"13.2":0,"13.3":0,"13.4-13.7":0.03938,"14.0-14.4":0.1074,"14.5-14.8":0.9129,"15.0-15.1":0.22912,"15.2-15.3":0.05728,"15.4":0.09308,"15.5":0.08592,"15.6":1.81506,"16.0":2.67784,"16.1":5.82467,"16.2":2.0585,"16.3":13.68277,"16.4":5.94997,"16.5":0.09308},P:{"4":0.20691,"20":3.24855,"5.0-5.4":0,"6.2-6.4":0.06207,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.01035,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0.01035},I:{"0":0,"3":0.03218,"4":0.27227,"2.1":0.05198,"2.2":0.12871,"2.3":0.21163,"4.1":0.30692,"4.2-4.3":0.59033,"4.4":0,"4.4.3-4.4.4":0.94676},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0367,"7":0.07339,"8":0.76453,"9":0.14067,"10":0.17125,"11":0.44648,"5.5":0.00612},S:{"2.5":0.05891,_:"3.0-3.1"},J:{"7":0,"10":0.05498},N:{"10":0.1745,"11":0.11218},R:{_:"0"},M:{"0":0.81289},Q:{"13.1":0.01178},O:{"0":0.29845},H:{"0":0.53537},L:{"0":17.9026}}; diff --git a/node_modules/caniuse-lite/data/regions/LK.js b/node_modules/caniuse-lite/data/regions/LK.js new file mode 100644 index 0000000..634f958 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00454,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00454,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.01361,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00454,"100":0,"101":0.00454,"102":0.00908,"103":0,"104":0.00454,"105":0.00454,"106":0,"107":0.00454,"108":0.00454,"109":0.00908,"110":0.01361,"111":0.34035,"112":0.2632,"113":0.00908,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00454,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00454,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00454,"65":0,"66":0,"67":0,"68":0,"69":0.00908,"70":0.00454,"71":0.00454,"72":0.00454,"73":0,"74":0.04538,"75":0,"76":0.00454,"77":0.00908,"78":0.00454,"79":0.00908,"80":0.00454,"81":0.02723,"83":0.00454,"84":0.00454,"85":0.00454,"86":0.00908,"87":0.00908,"88":0.00454,"89":0.00454,"90":0.00454,"91":0.00908,"92":0.01361,"93":0.00454,"94":0.07261,"95":0.00908,"96":0.00908,"97":0.00908,"98":0.00908,"99":0.01815,"100":0.00908,"101":0.00454,"102":0.01361,"103":0.03177,"104":0.01361,"105":0.01361,"106":0.02269,"107":0.02723,"108":0.04538,"109":1.04828,"110":0.09076,"111":3.90722,"112":4.75129,"113":0.00454,"114":0.00454,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.03177,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00454,"60":0.01361,"62":0,"63":0.01361,"64":0.00908,"65":0.00454,"66":0.00908,"67":0.02723,"68":0.04084,"69":0.08168,"70":0,"71":0,"72":0,"73":0,"74":0.03177,"75":0.00454,"76":0,"77":0,"78":0,"79":0.00454,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00454,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.05446,"96":0.05446,"97":0.30405,"98":0.01361,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00454,"79":0,"80":0,"81":0,"83":0,"84":0.00454,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01815,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00454,"106":0,"107":0.00908,"108":0.01815,"109":0.02269,"110":0.04538,"111":1.96949,"112":4.71044,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00908,"15":0.00454,_:"0","3.1":0,"3.2":0,"5.1":0.00454,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00908,"14.1":0.01815,"15.1":0.00454,"15.2-15.3":0.00454,"15.4":0.00908,"15.5":0.00908,"15.6":0.0363,"16.0":0.00454,"16.1":0.01815,"16.2":0.01815,"16.3":0.06807,"16.4":0.0363,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00836,"8.1-8.4":0.00478,"9.0-9.2":0.00717,"9.3":0.05018,"10.0-10.2":0.00119,"10.3":0.03584,"11.0-11.2":0.00717,"11.3-11.4":0.01195,"12.0-12.1":0.02629,"12.2-12.5":0.6201,"13.0-13.1":0.03226,"13.2":0.01434,"13.3":0.0466,"13.4-13.7":0.09439,"14.0-14.4":0.37039,"14.5-14.8":0.44327,"15.0-15.1":0.2306,"15.2-15.3":0.20312,"15.4":0.20431,"15.5":0.31543,"15.6":0.5054,"16.0":0.8507,"16.1":1.01081,"16.2":0.64519,"16.3":2.33345,"16.4":1.5867,"16.5":0.01792},P:{"4":0.4247,"20":1.14264,"5.0-5.4":0.01011,"6.2-6.4":0.02022,"7.2-7.4":0.74828,"8.2":0.01011,"9.2":0.05056,"10.1":0.02022,"11.1-11.2":0.10112,"12.0":0.02022,"13.0":0.09101,"14.0":0.08089,"15.0":0.05056,"16.0":0.12134,"17.0":0.13145,"18.0":0.14157,"19.0":0.30336},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00386,"4.2-4.3":0.00482,"4.4":0,"4.4.3-4.4.4":0.05494},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00454,"9":0,"10":0,"11":0.00908,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12563},Q:{"13.1":0},O:{"0":1.36004},H:{"0":1.27725},L:{"0":62.40503}}; diff --git a/node_modules/caniuse-lite/data/regions/LR.js b/node_modules/caniuse-lite/data/regions/LR.js new file mode 100644 index 0000000..2e98961 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00223,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00223,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00445,"103":0,"104":0.00223,"105":0,"106":0,"107":0,"108":0.01558,"109":0,"110":0.03783,"111":0.07565,"112":0.0712,"113":0.00445,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00223,"34":0,"35":0,"36":0.00223,"37":0,"38":0.00223,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00223,"48":0,"49":0.00223,"50":0.00445,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00223,"65":0,"66":0,"67":0.00223,"68":0.00223,"69":0.00223,"70":0,"71":0.00223,"72":0,"73":0,"74":0.00223,"75":0.00668,"76":0.00445,"77":0.00223,"78":0,"79":0.00223,"80":0.00445,"81":0.00668,"83":0,"84":0.00223,"85":0.00223,"86":0.00223,"87":0.01113,"88":0.00223,"89":0.00223,"90":0.00223,"91":0.00223,"92":0.01335,"93":0.01335,"94":0.0089,"95":0,"96":0.00223,"97":0,"98":0,"99":0.00668,"100":0,"101":0,"102":0.00668,"103":0.01335,"104":0.0089,"105":0.0089,"106":0.00445,"107":0.00445,"108":0.00668,"109":0.14018,"110":0.02893,"111":0.5518,"112":0.6408,"113":0.00668,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0.00445,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0.00223,"28":0,"29":0,"30":0.00223,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00223,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.00223,"55":0.00223,"56":0,"57":0.00445,"58":0.00223,"60":0.02225,"62":0,"63":0.0267,"64":0.00668,"65":0.0267,"66":0.02893,"67":0.0534,"68":0.03115,"69":0.11125,"70":0,"71":0.00668,"72":0.00223,"73":0,"74":0.00445,"75":0.00223,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00223,"90":0,"91":0,"92":0,"93":0,"94":0.00223,"95":0.00668,"96":0.01113,"97":0.04895,"98":0.00445,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01335},B:{"12":0.0089,"13":0.00668,"14":0,"15":0.00223,"16":0.00223,"17":0.00223,"18":0.02003,"79":0,"80":0,"81":0,"83":0,"84":0.00445,"85":0,"86":0,"87":0,"88":0,"89":0.00223,"90":0.0089,"91":0,"92":0.0089,"93":0,"94":0,"95":0,"96":0,"97":0.00223,"98":0,"99":0.00223,"100":0,"101":0.00223,"102":0,"103":0.00223,"104":0.00445,"105":0.00223,"106":0.01558,"107":0.0089,"108":0.00668,"109":0.0267,"110":0.0267,"111":0.1335,"112":0.26478,"113":0.00223},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00223,"14":0.00223,"15":0.00223,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00668,"12.1":0,"13.1":0.00445,"14.1":0.00668,"15.1":0,"15.2-15.3":0.0089,"15.4":0,"15.5":0.01558,"15.6":0.02003,"16.0":0.00223,"16.1":0.00223,"16.2":0.00223,"16.3":0.0267,"16.4":0.02225,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00776,"8.1-8.4":0,"9.0-9.2":0.00388,"9.3":0.0621,"10.0-10.2":0.00776,"10.3":0.13584,"11.0-11.2":0,"11.3-11.4":0.01164,"12.0-12.1":0.5524,"12.2-12.5":1.13067,"13.0-13.1":0.23286,"13.2":0.01164,"13.3":0.09961,"13.4-13.7":0.64295,"14.0-14.4":0.94567,"14.5-14.8":1.29626,"15.0-15.1":0.42691,"15.2-15.3":0.30401,"15.4":0.48901,"15.5":0.511,"15.6":0.69211,"16.0":0.56922,"16.1":0.55757,"16.2":0.67788,"16.3":1.75939,"16.4":0.81501,"16.5":0.01552},P:{"4":0.07163,"20":0.78796,"5.0-5.4":0.02047,"6.2-6.4":0.02047,"7.2-7.4":0.0614,"8.2":0,"9.2":0.04093,"10.1":0,"11.1-11.2":0.04093,"12.0":0,"13.0":0.01023,"14.0":0.04093,"15.0":0.01023,"16.0":0.0614,"17.0":0.0307,"18.0":0.11257,"19.0":0.08187},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.05673},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00223,"11":0.0178,"5.5":0},S:{"2.5":0.17105,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.07775},Q:{"13.1":0.04665},O:{"0":0.69198},H:{"0":6.71311},L:{"0":73.5766}}; diff --git a/node_modules/caniuse-lite/data/regions/LS.js b/node_modules/caniuse-lite/data/regions/LS.js new file mode 100644 index 0000000..8794844 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00363,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00363,"50":0,"51":0,"52":0.02175,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00363,"103":0,"104":0,"105":0,"106":0,"107":0.00363,"108":0,"109":0.00363,"110":0.00725,"111":0.3335,"112":0.21025,"113":0.00363,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.01088,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01088,"47":0,"48":0,"49":0.01813,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00363,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00363,"67":0,"68":0,"69":0.00363,"70":0.00363,"71":0,"72":0,"73":0,"74":0,"75":0.00725,"76":0,"77":0.0145,"78":0,"79":0.00725,"80":0,"81":0.0725,"83":0.00363,"84":0,"85":0,"86":0,"87":0.01088,"88":0.00725,"89":0,"90":0.00363,"91":0.00363,"92":0.00363,"93":0,"94":0.00363,"95":0.00363,"96":0.00363,"97":0.00725,"98":0,"99":0.00725,"100":0.00363,"101":0.0725,"102":0.01088,"103":0.00725,"104":0.03988,"105":0.00725,"106":0.01088,"107":0.01088,"108":0.03263,"109":0.49663,"110":0.03625,"111":1.82338,"112":2.05175,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.00363,"26":0.02538,"27":0,"28":0.00363,"29":0,"30":0.00363,"31":0,"32":0.01813,"33":0,"34":0,"35":0.116,"36":0,"37":0,"38":0.00363,"39":0,"40":0,"41":0,"42":0.00363,"43":0,"44":0,"45":0,"46":0.01813,"47":0,"48":0,"49":0,"50":0.01088,"51":0.00363,"52":0,"53":0,"54":0,"55":0,"56":0.02538,"57":0.00363,"58":0.00725,"60":0.00725,"62":0,"63":0.05438,"64":0.31175,"65":0.06163,"66":0.03988,"67":0.1305,"68":0.1305,"69":0.2175,"70":0,"71":0,"72":0,"73":0,"74":0.00725,"75":0,"76":0.00725,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.03263,"83":0,"84":0,"85":0.00363,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.07975,"96":0.06163,"97":0.38788,"98":0.03625,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01088},B:{"12":0.01088,"13":0.00363,"14":0.00363,"15":0,"16":0.00363,"17":0.00725,"18":0.0145,"79":0,"80":0,"81":0,"83":0,"84":0.00363,"85":0,"86":0,"87":0.00363,"88":0,"89":0.00725,"90":0,"91":0,"92":0.01088,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00363,"101":0,"102":0.00363,"103":0,"104":0.00363,"105":0.00725,"106":0,"107":0.01088,"108":0.0145,"109":0.06163,"110":0.03263,"111":0.53288,"112":0.83375,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00363,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00725,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0.00363,"15.1":0.00363,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.00725,"16.0":0.00363,"16.1":0.0145,"16.2":0.00363,"16.3":0.04713,"16.4":0.00725,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03244,"6.0-6.1":0.00056,"7.0-7.1":0.00839,"8.1-8.4":0.00056,"9.0-9.2":0,"9.3":0.06209,"10.0-10.2":0.00056,"10.3":0.00448,"11.0-11.2":0.00168,"11.3-11.4":0.00056,"12.0-12.1":0.00671,"12.2-12.5":0.2176,"13.0-13.1":0.01231,"13.2":0.00168,"13.3":0.00671,"13.4-13.7":0.05202,"14.0-14.4":0.05929,"14.5-14.8":0.16278,"15.0-15.1":0.1046,"15.2-15.3":0.09286,"15.4":0.06601,"15.5":0.14432,"15.6":0.11635,"16.0":0.13313,"16.1":1.09079,"16.2":0.16726,"16.3":1.14282,"16.4":0.30878,"16.5":0.00503},P:{"4":0.31809,"20":0.88244,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.77983,"8.2":0,"9.2":0.04104,"10.1":0,"11.1-11.2":0.03078,"12.0":0,"13.0":0.06157,"14.0":0.0513,"15.0":0.02052,"16.0":0.12313,"17.0":0.0513,"18.0":0.0513,"19.0":0.16418},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00496,"4.4":0,"4.4.3-4.4.4":0.09316},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01813,"5.5":0},S:{"2.5":0.1785,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.0765},Q:{"13.1":0},O:{"0":0.714},H:{"0":5.96301},L:{"0":74.33113}}; diff --git a/node_modules/caniuse-lite/data/regions/LT.js b/node_modules/caniuse-lite/data/regions/LT.js new file mode 100644 index 0000000..056e3df --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00771,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.01541,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.01541,"49":0,"50":0.00771,"51":0,"52":0.03082,"53":0.00771,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00771,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00771,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.01541,"78":0.00771,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00771,"89":0,"90":0,"91":0.00771,"92":0,"93":0.00771,"94":0,"95":0.00771,"96":0,"97":0,"98":0,"99":0.00771,"100":0.00771,"101":0,"102":0.04624,"103":0,"104":0,"105":0.00771,"106":0,"107":0.00771,"108":0.00771,"109":0.01541,"110":0.03082,"111":0.97866,"112":0.7706,"113":0.00771,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01541,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00771,"66":0.00771,"67":0,"68":0,"69":0.00771,"70":0,"71":0,"72":0,"73":0.00771,"74":0.00771,"75":0,"76":0.00771,"77":0,"78":0,"79":0.04624,"80":0.00771,"81":0.00771,"83":0.01541,"84":0.00771,"85":0.03082,"86":0.02312,"87":0.06935,"88":0.00771,"89":0.04624,"90":0.00771,"91":0.00771,"92":0.00771,"93":0.03853,"94":0.22347,"95":0.00771,"96":0.01541,"97":0.03082,"98":0.01541,"99":0.01541,"100":0.01541,"101":0.00771,"102":0.01541,"103":0.21577,"104":0.05394,"105":0.04624,"106":0.06165,"107":0.05394,"108":0.30053,"109":2.94369,"110":0.76289,"111":21.93128,"112":18.7564,"113":0.00771,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00771,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00771,"69":0.00771,"70":0,"71":0,"72":0,"73":0,"74":0.00771,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00771,"92":0,"93":0,"94":0,"95":0.10788,"96":0.43154,"97":1.08655,"98":0.03853,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00771,"93":0,"94":0.00771,"95":0.02312,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00771,"103":0,"104":0,"105":0.00771,"106":0.00771,"107":0.00771,"108":0.00771,"109":0.10788,"110":0.131,"111":2.80498,"112":3.58329,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00771,"14":0.03082,"15":0.00771,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01541,"13.1":0.04624,"14.1":0.06165,"15.1":0.01541,"15.2-15.3":0.00771,"15.4":0.02312,"15.5":0.03082,"15.6":0.11559,"16.0":0.03082,"16.1":0.10788,"16.2":0.07706,"16.3":0.27742,"16.4":0.131,"16.5":0.00771},G:{"8":0.04159,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00734,"5.0-5.1":0,"6.0-6.1":0.00979,"7.0-7.1":0.07339,"8.1-8.4":0.32415,"9.0-9.2":0.04037,"9.3":0.01468,"10.0-10.2":0,"10.3":0.14067,"11.0-11.2":0.00367,"11.3-11.4":0.00734,"12.0-12.1":0.00245,"12.2-12.5":0.10519,"13.0-13.1":0.00245,"13.2":0.00612,"13.3":0.00979,"13.4-13.7":0.03792,"14.0-14.4":0.11009,"14.5-14.8":0.1896,"15.0-15.1":0.05504,"15.2-15.3":0.10642,"15.4":0.10642,"15.5":0.22751,"15.6":0.63239,"16.0":1.06785,"16.1":1.66232,"16.2":0.90149,"16.3":3.90077,"16.4":1.89228,"16.5":0.07828},P:{"4":0.31709,"20":1.60592,"5.0-5.4":0.01023,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01023,"12.0":0,"13.0":0.01023,"14.0":0.01023,"15.0":0,"16.0":0.02046,"17.0":0.02046,"18.0":0.03069,"19.0":0.08183},I:{"0":0,"3":0.00461,"4":0.00461,"2.1":0.00461,"2.2":0.00768,"2.3":0.00307,"4.1":0.00922,"4.2-4.3":0.02304,"4.4":0,"4.4.3-4.4.4":0.09676},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01541,"9":0,"10":0,"11":0.04624,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00229},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.17434},Q:{"13.1":0.03441},O:{"0":0.06653},H:{"0":0.18243},L:{"0":25.71541}}; diff --git a/node_modules/caniuse-lite/data/regions/LU.js b/node_modules/caniuse-lite/data/regions/LU.js new file mode 100644 index 0000000..9d2a14a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.01499,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.01499,"46":0,"47":0,"48":0,"49":0,"50":0.005,"51":0,"52":0.03497,"53":0,"54":0,"55":0,"56":0.005,"57":0,"58":0,"59":0,"60":0.00999,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00999,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.04995,"79":0,"80":0,"81":0.00999,"82":0.00999,"83":0,"84":0,"85":0,"86":0,"87":0.005,"88":0,"89":0.005,"90":0,"91":0.1049,"92":0,"93":0.005,"94":0.005,"95":0,"96":0,"97":0.005,"98":0.005,"99":0,"100":0,"101":0.005,"102":1.32867,"103":0.005,"104":0.01499,"105":0.02997,"106":0.00999,"107":0.1049,"108":0.01998,"109":0.02997,"110":0.04995,"111":1.30869,"112":1.21878,"113":0.005,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.005,"45":0,"46":0,"47":0,"48":0.02997,"49":0.005,"50":0,"51":0,"52":0,"53":0.00999,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.25475,"73":0,"74":0,"75":0,"76":0,"77":0.005,"78":0.00999,"79":0.05495,"80":0.00999,"81":0,"83":0.01998,"84":0.03996,"85":0.04496,"86":0.03497,"87":0.02498,"88":0.005,"89":0,"90":0.00999,"91":0.01499,"92":0.005,"93":0,"94":0.71429,"95":0.005,"96":0.005,"97":0.01499,"98":0.01499,"99":0.01998,"100":0.04995,"101":0.02997,"102":0.02498,"103":0.02997,"104":0.00999,"105":0.26474,"106":0.03497,"107":0.06494,"108":0.1049,"109":0.3996,"110":0.21479,"111":3.78621,"112":3.96603,"113":0.005,"114":0.005,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.005,"69":0.02498,"70":0.005,"71":0,"72":0,"73":0,"74":0.00999,"75":0.01499,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.005,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.005,"94":0,"95":0.01499,"96":0.17982,"97":0.54446,"98":0.01499,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.005,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.01499,"97":0,"98":0,"99":0,"100":0.005,"101":0.005,"102":0.005,"103":0,"104":0.005,"105":0.005,"106":0.005,"107":0.02498,"108":0.14486,"109":0.05994,"110":0.05495,"111":0.85914,"112":1.74326,"113":0.005},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.005,"14":0.06494,"15":0.00999,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.17982,"13.1":0.2048,"14.1":0.21479,"15.1":0.02498,"15.2-15.3":0.01998,"15.4":0.04995,"15.5":0.16983,"15.6":0.57443,"16.0":0.07992,"16.1":0.31469,"16.2":0.33966,"16.3":1.55844,"16.4":0.68432,"16.5":0.01499},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.26785,"5.0-5.1":0.00705,"6.0-6.1":0.00352,"7.0-7.1":0,"8.1-8.4":0.01762,"9.0-9.2":0.82821,"9.3":0.04582,"10.0-10.2":0,"10.3":0.04229,"11.0-11.2":0.04229,"11.3-11.4":0.00352,"12.0-12.1":0.1445,"12.2-12.5":0.28547,"13.0-13.1":0.00705,"13.2":0.00705,"13.3":0.02115,"13.4-13.7":0.09516,"14.0-14.4":0.2608,"14.5-14.8":0.56741,"15.0-15.1":0.22908,"15.2-15.3":0.26432,"15.4":0.25023,"15.5":0.42292,"15.6":1.55422,"16.0":2.35776,"16.1":4.09525,"16.2":3.11901,"16.3":13.03994,"16.4":5.97723,"16.5":0.12335},P:{"4":0.17596,"20":3.56063,"5.0-5.4":0.03105,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0.01035,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.01035,"14.0":0.01035,"15.0":0,"16.0":0.0207,"17.0":0.01035,"18.0":0.0207,"19.0":0.10351},I:{"0":0,"3":0.08516,"4":0.01036,"2.1":0.04373,"2.2":0.13119,"2.3":0.00806,"4.1":0.10127,"4.2-4.3":0.11738,"4.4":0,"4.4.3-4.4.4":0.35788},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00599,"7":0.00599,"8":0.07193,"9":0.01199,"10":0.01199,"11":0.0959,"5.5":0},S:{"2.5":0.00501,_:"3.0-3.1"},J:{"7":0,"10":0.01001},N:{"10":0.01251,"11":0.01251},R:{_:"0"},M:{"0":1.0961},Q:{"13.1":1.79179},O:{"0":1.08108},H:{"0":0.36486},L:{"0":28.87358}}; diff --git a/node_modules/caniuse-lite/data/regions/LV.js b/node_modules/caniuse-lite/data/regions/LV.js new file mode 100644 index 0000000..6e67386 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LV.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02698,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00674,"67":0,"68":0.00674,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.04046,"78":0.01349,"79":0,"80":0.00674,"81":0.00674,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.01349,"89":0,"90":0,"91":0.00674,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.01349,"100":0,"101":0,"102":0.12814,"103":0.00674,"104":0.00674,"105":0.00674,"106":0,"107":0.02698,"108":0.01349,"109":0.02023,"110":0.10116,"111":1.59158,"112":1.42298,"113":0.02698,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0.00674,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00674,"49":0.02023,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00674,"66":0.01349,"67":0,"68":0.00674,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00674,"75":0,"76":0,"77":0.00674,"78":0.00674,"79":0.1079,"80":0.01349,"81":0.00674,"83":0.01349,"84":0.04046,"85":0.02698,"86":0.02698,"87":0.07418,"88":0.01349,"89":0.00674,"90":0.02023,"91":0.01349,"92":0.01349,"93":0.03372,"94":0.6744,"95":0.00674,"96":0.01349,"97":0.43162,"98":0.02023,"99":0.02023,"100":0.07418,"101":0.01349,"102":0.02023,"103":0.09442,"104":0.02023,"105":0.0607,"106":0.68789,"107":0.45859,"108":0.82951,"109":2.33342,"110":1.09927,"111":11.95711,"112":13.21824,"113":0.01349,"114":0.00674,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00674,"70":0,"71":0,"72":0.00674,"73":0,"74":0.00674,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00674,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00674,"94":0.00674,"95":0.12139,"96":0.31022,"97":1.1802,"98":0.08093,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00674,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00674,"91":0,"92":0.00674,"93":0,"94":0,"95":0,"96":0.04721,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00674,"104":0,"105":0,"106":0.00674,"107":0.00674,"108":0.02023,"109":0.04721,"110":0.05395,"111":1.03183,"112":2.27947,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00674,"12":0,"13":0.00674,"14":0.04046,"15":0.01349,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.01349,"10.1":0,"11.1":0,"12.1":0.03372,"13.1":0.0607,"14.1":0.07418,"15.1":0.01349,"15.2-15.3":0.01349,"15.4":0.03372,"15.5":0.04721,"15.6":0.18209,"16.0":0.02698,"16.1":0.08767,"16.2":0.10116,"16.3":0.45185,"16.4":0.26302,"16.5":0.01349},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00177,"6.0-6.1":0,"7.0-7.1":0.00177,"8.1-8.4":0.00708,"9.0-9.2":0,"9.3":0.01416,"10.0-10.2":0,"10.3":0.01416,"11.0-11.2":0.00531,"11.3-11.4":0.00354,"12.0-12.1":0.00531,"12.2-12.5":0.177,"13.0-13.1":0.00177,"13.2":0.00885,"13.3":0.02478,"13.4-13.7":0.05487,"14.0-14.4":0.14691,"14.5-14.8":0.26196,"15.0-15.1":0.15753,"15.2-15.3":0.11151,"15.4":0.20355,"15.5":0.34515,"15.6":0.72039,"16.0":1.50627,"16.1":2.20188,"16.2":1.33635,"16.3":6.11358,"16.4":3.47628,"16.5":0.13629},P:{"4":0.04121,"20":2.60672,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.0103,"14.0":0.0103,"15.0":0.02061,"16.0":0.04121,"17.0":0.02061,"18.0":0.05152,"19.0":0.20606},I:{"0":0,"3":0,"4":0.00909,"2.1":0,"2.2":0.01514,"2.3":0.00606,"4.1":0.01211,"4.2-4.3":0.02726,"4.4":0,"4.4.3-4.4.4":0.06965},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.02698,"9":0.00674,"10":0.00674,"11":0.04721,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00326},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.39723},Q:{"13.1":0},O:{"0":0.07163},H:{"0":0.26202},L:{"0":33.11114}}; diff --git a/node_modules/caniuse-lite/data/regions/LY.js b/node_modules/caniuse-lite/data/regions/LY.js new file mode 100644 index 0000000..7601ffd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/LY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00187,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00187,"90":0,"91":0.0056,"92":0,"93":0,"94":0,"95":0,"96":0.00187,"97":0,"98":0.00187,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00187,"107":0,"108":0,"109":0.00187,"110":0.00187,"111":0.05782,"112":0.05409,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00187,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00187,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00373,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00187,"70":0.00373,"71":0.00373,"72":0,"73":0,"74":0.01306,"75":0,"76":0,"77":0,"78":0.00187,"79":0.00373,"80":0.00187,"81":0.00373,"83":0.00187,"84":0,"85":0.00187,"86":0.0056,"87":0.00373,"88":0.00373,"89":0.00746,"90":0.00187,"91":0.00187,"92":0,"93":0.01492,"94":0,"95":0,"96":0.00373,"97":0.00187,"98":0.01306,"99":0.0056,"100":0.00187,"101":0,"102":0.00746,"103":0.0056,"104":0.0056,"105":0.0056,"106":0.0056,"107":0.01119,"108":0.01306,"109":0.42709,"110":0.02052,"111":0.63037,"112":0.55764,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00187,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.0056,"60":0.00746,"62":0,"63":0.00933,"64":0.00373,"65":0.00187,"66":0.00373,"67":0.01865,"68":0.04103,"69":0.14734,"70":0.00187,"71":0,"72":0.00187,"73":0.00187,"74":0.00373,"75":0.00187,"76":0,"77":0,"78":0,"79":0.00373,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00187,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00746,"95":0.01119,"96":0.02238,"97":0.10444,"98":0.01492,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00187},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00187,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0056,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00187,"109":0.00746,"110":0.01865,"111":0.07647,"112":0.14547,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00373,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.03544,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00187,"14.1":0.01306,"15.1":0,"15.2-15.3":0,"15.4":0.00746,"15.5":0.0056,"15.6":0.02611,"16.0":0.00187,"16.1":0.01119,"16.2":0.03917,"16.3":0.16785,"16.4":0.08952,"16.5":0.00187},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00135,"6.0-6.1":0,"7.0-7.1":0.02826,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.12515,"10.0-10.2":0.03499,"10.3":0.05248,"11.0-11.2":0.00673,"11.3-11.4":0.00807,"12.0-12.1":0.01884,"12.2-12.5":0.84104,"13.0-13.1":0.01749,"13.2":0.00404,"13.3":0.1238,"13.4-13.7":0.33238,"14.0-14.4":0.30412,"14.5-14.8":0.48444,"15.0-15.1":0.14533,"15.2-15.3":0.218,"15.4":0.28124,"15.5":0.34718,"15.6":0.77375,"16.0":1.38468,"16.1":1.10344,"16.2":1.09133,"16.3":2.68324,"16.4":2.1369,"16.5":0.04441},P:{"4":0.17168,"20":1.23203,"5.0-5.4":0,"6.2-6.4":0.0303,"7.2-7.4":0.30296,"8.2":0,"9.2":0.0303,"10.1":0.0101,"11.1-11.2":0.07069,"12.0":0.05049,"13.0":0.04039,"14.0":0.07069,"15.0":0.0303,"16.0":0.18178,"17.0":0.13128,"18.0":0.10099,"19.0":0.18178},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01282,"4.4":0,"4.4.3-4.4.4":0.07329},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0056,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.07322},Q:{"13.1":0},O:{"0":0.35794},H:{"0":2.272},L:{"0":77.14483}}; diff --git a/node_modules/caniuse-lite/data/regions/MA.js b/node_modules/caniuse-lite/data/regions/MA.js new file mode 100644 index 0000000..0645517 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.07237,"53":0,"54":0,"55":0.00905,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00905,"65":0.02262,"66":0,"67":0,"68":0.00452,"69":0,"70":0,"71":0,"72":0.00452,"73":0,"74":0,"75":0.00452,"76":0,"77":0,"78":0.00452,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00452,"89":0,"90":0,"91":0,"92":0.00452,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00452,"100":0.00452,"101":0,"102":0.01809,"103":0.00452,"104":0.00905,"105":0.00452,"106":0.00452,"107":0.00452,"108":0.00905,"109":0.01357,"110":0.01809,"111":0.55181,"112":0.43873,"113":0.00905,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00452,"39":0,"40":0,"41":0,"42":0,"43":0.00452,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.03618,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00905,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00905,"64":0.00452,"65":0.00452,"66":0,"67":0.12664,"68":0.00452,"69":0.00452,"70":0.00452,"71":0.00452,"72":0.00905,"73":0.00452,"74":0.00905,"75":0.00452,"76":0.00452,"77":0,"78":0.00452,"79":0.03618,"80":0.00452,"81":0.01809,"83":0.01809,"84":0.01357,"85":0.01809,"86":0.01809,"87":0.04523,"88":0.00905,"89":0.00905,"90":0.00452,"91":0.01357,"92":0.00905,"93":0.00452,"94":0.10403,"95":0.00905,"96":0.01357,"97":0.01357,"98":0.01357,"99":0.02262,"100":0.01809,"101":0.01357,"102":0.02262,"103":0.04975,"104":0.01809,"105":0.03618,"106":0.03166,"107":0.04071,"108":0.06332,"109":1.79563,"110":0.14474,"111":4.817,"112":5.51354,"113":0.00905,"114":0.00452,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00452,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00452,"68":0.00905,"69":0.02262,"70":0,"71":0,"72":0,"73":0,"74":0.00905,"75":0,"76":0,"77":0,"78":0,"79":0.00452,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00905,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00452,"93":0,"94":0,"95":0.0588,"96":0.20354,"97":0.58799,"98":0.02714,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00905,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00905,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00452,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00452,"108":0.00905,"109":0.03618,"110":0.03166,"111":0.44778,"112":0.95888,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00452,"13":0.00452,"14":0.01809,"15":0.00452,_:"0","3.1":0,"3.2":0,"5.1":0.03618,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00452,"13.1":0.02262,"14.1":0.06332,"15.1":0.00905,"15.2-15.3":0.00905,"15.4":0.00905,"15.5":0.02262,"15.6":0.07237,"16.0":0.01809,"16.1":0.01809,"16.2":0.01809,"16.3":0.09498,"16.4":0.05428,"16.5":0},G:{"8":0.00689,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02341,"6.0-6.1":0.00964,"7.0-7.1":0.04682,"8.1-8.4":0.00964,"9.0-9.2":0,"9.3":0.0661,"10.0-10.2":0.00413,"10.3":0.05095,"11.0-11.2":0.0358,"11.3-11.4":0.02066,"12.0-12.1":0.00964,"12.2-12.5":0.42689,"13.0-13.1":0.00964,"13.2":0.01928,"13.3":0.04131,"13.4-13.7":0.10603,"14.0-14.4":0.29056,"14.5-14.8":0.4682,"15.0-15.1":0.14872,"15.2-15.3":0.2162,"15.4":0.22721,"15.5":0.4379,"15.6":0.84551,"16.0":1.14571,"16.1":1.39496,"16.2":0.98046,"16.3":3.72218,"16.4":1.76126,"16.5":0.04682},P:{"4":0.28391,"20":2.18002,"5.0-5.4":0.03042,"6.2-6.4":0.02028,"7.2-7.4":0.21293,"8.2":0.02028,"9.2":0.03042,"10.1":0,"11.1-11.2":0.07098,"12.0":0.02028,"13.0":0.1014,"14.0":0.0507,"15.0":0.03042,"16.0":0.07098,"17.0":0.09126,"18.0":0.07098,"19.0":0.18251},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01427,"4.2-4.3":0.03997,"4.4":0,"4.4.3-4.4.4":0.23124},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0143,"9":0.00477,"10":0.00477,"11":0.15256,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.01095},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15336},Q:{"13.1":0},O:{"0":0.15336},H:{"0":0.38371},L:{"0":63.07651}}; diff --git a/node_modules/caniuse-lite/data/regions/MC.js b/node_modules/caniuse-lite/data/regions/MC.js new file mode 100644 index 0000000..13dee09 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0.00701,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.01403,"30":0,"31":0.00701,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00701,"39":0.00701,"40":0,"41":0.00701,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00701,"48":0,"49":0,"50":0.11922,"51":0,"52":0.02104,"53":0.04208,"54":0,"55":0,"56":0.02805,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00701,"67":0.08416,"68":0.09117,"69":0,"70":0,"71":0,"72":0.09818,"73":0,"74":0,"75":0.49792,"76":0,"77":0,"78":0.38572,"79":0,"80":0,"81":0,"82":0.07013,"83":0,"84":0,"85":0,"86":0,"87":0.01403,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.1613,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.09818,"110":0.08416,"111":1.31844,"112":1.19922,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0.00701,"6":0,"7":0,"8":0.00701,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.00701,"32":0,"33":0,"34":0.00701,"35":0,"36":0,"37":0,"38":0,"39":0.00701,"40":0,"41":0.00701,"42":0,"43":0.01403,"44":0.03507,"45":0.02805,"46":0.00701,"47":0.02805,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00701,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00701,"66":0,"67":0,"68":0,"69":0,"70":0.0561,"71":0.1052,"72":0.01403,"73":0,"74":0.01403,"75":0,"76":0.1052,"77":0,"78":0.00701,"79":0.61714,"80":0.03507,"81":0.49792,"83":0.01403,"84":0.04208,"85":1.26935,"86":0.03507,"87":1.22026,"88":0,"89":0,"90":0.00701,"91":0.00701,"92":0,"93":0.00701,"94":0,"95":0,"96":0,"97":0.00701,"98":0.01403,"99":0,"100":0,"101":0,"102":0.00701,"103":0.51195,"104":0.84857,"105":0.57507,"106":0.15429,"107":0.11221,"108":0.43481,"109":0.7574,"110":0.35065,"111":7.1743,"112":6.60625,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0.00701,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00701,"29":0,"30":0.00701,"31":0.00701,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0.11221,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.04208,"97":9.90236,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.02805,"13":0,"14":0.02805,"15":0,"16":0,"17":0,"18":0.1052,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0.01403,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.01403,"109":0.02805,"110":0.24546,"111":0.84156,"112":1.99169,"113":0.00701},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00701,"14":0.25247,"15":0.01403,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.01403,"12.1":0.02104,"13.1":0.25948,"14.1":0.32961,"15.1":0.00701,"15.2-15.3":0.03507,"15.4":0.0561,"15.5":0.04909,"15.6":0.46987,"16.0":0.13325,"16.1":0.44182,"16.2":0.41377,"16.3":2.37039,"16.4":1.57793,"16.5":0.00701},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.04455,"8.1-8.4":0.17136,"9.0-9.2":0.01371,"9.3":0.07883,"10.0-10.2":0.06512,"10.3":0.06512,"11.0-11.2":0.00343,"11.3-11.4":0.01371,"12.0-12.1":0,"12.2-12.5":0.38385,"13.0-13.1":0.00343,"13.2":0.01028,"13.3":0.00685,"13.4-13.7":0.02056,"14.0-14.4":0.26047,"14.5-14.8":0.56206,"15.0-15.1":0.16793,"15.2-15.3":0.34615,"15.4":0.46953,"15.5":0.58262,"15.6":1.75473,"16.0":1.76501,"16.1":5.33273,"16.2":2.57726,"16.3":12.65324,"16.4":5.14081,"16.5":0.12338},P:{"4":0.11279,"20":0.8818,"5.0-5.4":0,"6.2-6.4":0.03076,"7.2-7.4":0.01025,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0.01025,"18.0":0,"19.0":0.01025},I:{"0":0,"3":0.01094,"4":0.1032,"2.1":0.02734,"2.2":0.02597,"2.3":0.03827,"4.1":0.13533,"4.2-4.3":0.22486,"4.4":0,"4.4.3-4.4.4":0.53174},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01429,"7":0.04287,"8":0.50732,"9":0.11433,"10":0.07145,"11":0.34298,"5.5":0},S:{"2.5":0.00597,_:"3.0-3.1"},J:{"7":0,"10":0.05078},N:{"10":0.06827,"11":0.02731},R:{_:"0"},M:{"0":0.44805},Q:{"13.1":0.01195},O:{"0":0.14338},H:{"0":0.06787},L:{"0":14.79153}}; diff --git a/node_modules/caniuse-lite/data/regions/MD.js b/node_modules/caniuse-lite/data/regions/MD.js new file mode 100644 index 0000000..b261b16 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MD.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.09392,"67":0.00939,"78":0.01409,"87":0.20662,"91":0.0047,"94":0.0047,"102":0.17845,"104":0.00939,"105":0.0047,"107":0.01409,"108":0.0047,"109":0.02348,"110":0.08922,"111":1.0566,"112":0.86406,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 95 96 97 98 99 100 101 103 106 113 114 3.5","3.6":0.04696},D:{"44":0.0047,"46":0.0047,"47":0.00939,"49":0.06105,"51":0.02348,"53":0.01409,"56":0.02818,"66":0.0047,"67":0.05166,"69":0.01409,"70":0.0047,"71":0.01878,"72":0.00939,"73":0.0047,"74":0.0047,"75":0.0047,"76":0.02348,"77":0.0047,"78":0.0047,"79":0.05635,"80":0.09862,"81":0.02818,"83":0.01878,"84":0.01878,"85":0.02348,"86":0.03287,"87":0.03287,"88":0.18314,"89":0.00939,"90":0.01409,"91":0.00939,"92":0.01878,"94":0.46021,"95":0.01878,"96":0.02818,"97":0.04226,"98":0.03287,"99":0.03287,"100":0.02818,"101":0.04696,"102":0.10331,"103":0.09392,"104":0.03287,"105":0.07044,"106":0.26767,"107":0.07983,"108":0.54943,"109":5.56006,"110":0.43203,"111":10.36877,"112":11.43476,"113":0.02818,"114":0.01409,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 48 50 52 54 55 57 58 59 60 61 62 63 64 65 68 93 115 116"},F:{"70":0.01409,"72":0.00939,"79":0.0047,"82":0.00939,"85":0.04696,"90":0.0047,"95":0.56352,"96":0.43203,"97":1.60134,"98":0.07514,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 73 74 75 76 77 78 80 81 83 84 86 87 88 89 91 92 93 94 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01878,"92":0.0047,"108":0.00939,"109":0.03757,"110":0.03757,"111":0.5823,"112":1.35714,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 113"},E:{"4":0,"9":0.0047,"14":0.02818,"15":0.00939,_:"0 5 6 7 8 10 11 12 13 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1 16.5","9.1":0.00939,"13.1":0.03757,"14.1":0.08922,"15.1":0.01409,"15.2-15.3":0.00939,"15.4":0.03287,"15.5":0.01878,"15.6":0.20193,"16.0":0.02348,"16.1":0.06574,"16.2":0.07044,"16.3":0.45551,"16.4":0.20193},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00699,"8.1-8.4":0.0042,"9.0-9.2":0.0028,"9.3":0.01818,"10.0-10.2":0,"10.3":0.01539,"11.0-11.2":0.00559,"11.3-11.4":0.00559,"12.0-12.1":0.00839,"12.2-12.5":0.14826,"13.0-13.1":0.0042,"13.2":0.00839,"13.3":0.01259,"13.4-13.7":0.04896,"14.0-14.4":0.1105,"14.5-14.8":0.29933,"15.0-15.1":0.09931,"15.2-15.3":0.13008,"15.4":0.12309,"15.5":0.36507,"15.6":0.63921,"16.0":1.29241,"16.1":1.61692,"16.2":1.07701,"16.3":4.25769,"16.4":2.77505,"16.5":0.13987},P:{"4":0.12539,"20":2.02718,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05225,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0209,"12.0":0.01019,"13.0":0.0209,"14.0":0,"15.0":0,"16.0":0.03135,"17.0":0.0209,"18.0":0.05225,"19.0":0.12539},I:{"0":0,"3":0,"4":0.00389,"2.1":0,"2.2":0,"2.3":0.00259,"4.1":0.00259,"4.2-4.3":0.01037,"4.4":0,"4.4.3-4.4.4":0.03889},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.0049,"8":0.05387,"9":0.00979,"10":0.00979,"11":0.26445,_:"6 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.175},Q:{"13.1":0},O:{"0":0.06894},H:{"0":0.28115},L:{"0":41.79716}}; diff --git a/node_modules/caniuse-lite/data/regions/ME.js b/node_modules/caniuse-lite/data/regions/ME.js new file mode 100644 index 0000000..33357de --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ME.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.0039,"51":0,"52":0.01561,"53":0.0039,"54":0,"55":0,"56":0.0039,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0039,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00781,"76":0,"77":0,"78":0.0039,"79":0,"80":0,"81":0,"82":0.0039,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.01561,"89":0,"90":0,"91":0.00781,"92":0,"93":0,"94":0,"95":0,"96":0.0039,"97":0,"98":0.00781,"99":0.0039,"100":0,"101":0,"102":0.0039,"103":0.01171,"104":0,"105":0,"106":0.0039,"107":0.0039,"108":0.0039,"109":0.00781,"110":0.01171,"111":0.49568,"112":0.44104,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0039,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01561,"50":0,"51":0,"52":0,"53":0.02732,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.0039,"67":0,"68":0.03122,"69":0,"70":0.0039,"71":0,"72":0,"73":0,"74":0.0039,"75":0,"76":0.0039,"77":0.0039,"78":0,"79":0.10538,"80":0,"81":0.01561,"83":0.01561,"84":0.00781,"85":0.03122,"86":0.01952,"87":0.03903,"88":0.03903,"89":0.01171,"90":0.00781,"91":0,"92":0.01561,"93":0,"94":0.0039,"95":0.01171,"96":0.00781,"97":0.01171,"98":0.0039,"99":0.02732,"100":0.01171,"101":0.0039,"102":0.01561,"103":0.04684,"104":0.00781,"105":0.03513,"106":0.08196,"107":0.03513,"108":0.05074,"109":1.4285,"110":0.08196,"111":3.41513,"112":3.97325,"113":0,"114":0.0039,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01171,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00781,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.0039,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01561,"69":0.0039,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.01171,"95":0.01952,"96":0.10148,"97":0.39811,"98":0.01561,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.0039,"13":0,"14":0.0039,"15":0,"16":0,"17":0.0039,"18":0.0039,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01561,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.0039,"104":0,"105":0,"106":0,"107":0.01952,"108":0.0039,"109":0.01171,"110":0.00781,"111":0.16002,"112":0.34737,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.02342,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.02732,"13.1":0.01561,"14.1":0.02732,"15.1":0.00781,"15.2-15.3":0.0039,"15.4":0.01171,"15.5":0.00781,"15.6":0.05855,"16.0":0.00781,"16.1":0.01952,"16.2":0.06245,"16.3":0.13661,"16.4":0.05855,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.006,"7.0-7.1":0.04198,"8.1-8.4":0.02799,"9.0-9.2":0,"9.3":0.05797,"10.0-10.2":0.00999,"10.3":0.12993,"11.0-11.2":0.004,"11.3-11.4":0.00999,"12.0-12.1":0.004,"12.2-12.5":0.27186,"13.0-13.1":0.002,"13.2":0,"13.3":0.02399,"13.4-13.7":0.04198,"14.0-14.4":0.16392,"14.5-14.8":0.76161,"15.0-15.1":0.13193,"15.2-15.3":0.2039,"15.4":0.1939,"15.5":0.40379,"15.6":1.32133,"16.0":1.43927,"16.1":2.22487,"16.2":1.30933,"16.3":6.4727,"16.4":3.68213,"16.5":0.04198},P:{"4":0.2861,"20":3.63751,"5.0-5.4":0.01022,"6.2-6.4":0,"7.2-7.4":0.03065,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01022,"12.0":0,"13.0":0.03065,"14.0":0.02044,"15.0":0.02044,"16.0":0.1124,"17.0":0.02044,"18.0":0.08174,"19.0":0.18392},I:{"0":0,"3":0,"4":0.00612,"2.1":0,"2.2":0.00408,"2.3":0.00612,"4.1":0.02041,"4.2-4.3":0.01837,"4.4":0,"4.4.3-4.4.4":0.10002},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.0039,"8":0.03903,"9":0.0039,"10":0.0039,"11":0.03903,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0.01219},R:{_:"0"},M:{"0":0.21949},Q:{"13.1":0},O:{"0":0.02439},H:{"0":0.29438},L:{"0":61.088}}; diff --git a/node_modules/caniuse-lite/data/regions/MG.js b/node_modules/caniuse-lite/data/regions/MG.js new file mode 100644 index 0000000..ea7ecf7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0.00505,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00505,"48":0.01516,"49":0,"50":0,"51":0,"52":0.03538,"53":0,"54":0,"55":0,"56":0.00505,"57":0,"58":0,"59":0.00505,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00505,"67":0,"68":0.01516,"69":0,"70":0,"71":0,"72":0.01011,"73":0.00505,"74":0,"75":0,"76":0.00505,"77":0,"78":0.04043,"79":0.00505,"80":0,"81":0.01011,"82":0,"83":0,"84":0.00505,"85":0,"86":0,"87":0,"88":0.01011,"89":0.01011,"90":0.00505,"91":0.00505,"92":0.00505,"93":0,"94":0.00505,"95":0.00505,"96":0.00505,"97":0.00505,"98":0.01011,"99":0.01011,"100":0.00505,"101":0.00505,"102":0.07076,"103":0.00505,"104":0.01011,"105":0.01011,"106":0.01516,"107":0.02022,"108":0.04043,"109":0.03538,"110":0.08592,"111":1.51115,"112":1.18264,"113":0.02022,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02527,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0.01516,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00505,"43":0.00505,"44":0,"45":0,"46":0.00505,"47":0,"48":0,"49":0.01516,"50":0.00505,"51":0,"52":0,"53":0,"54":0,"55":0.01516,"56":0.03032,"57":0.01011,"58":0.00505,"59":0,"60":0,"61":0,"62":0,"63":0.00505,"64":0.00505,"65":0.00505,"66":0.00505,"67":0.00505,"68":0.00505,"69":0.01516,"70":0.01011,"71":0.01011,"72":0.00505,"73":0.00505,"74":0.03032,"75":0.00505,"76":0,"77":0,"78":0.00505,"79":0.01516,"80":0.02022,"81":0.03032,"83":0.00505,"84":0.00505,"85":0,"86":0.04043,"87":0.03032,"88":0.02527,"89":0.01011,"90":0.01516,"91":0.01011,"92":0.00505,"93":0.01011,"94":0.00505,"95":0.05559,"96":0.08592,"97":0.05559,"98":0.03538,"99":0.02022,"100":0.04043,"101":0.02022,"102":0.06065,"103":0.08592,"104":0.04043,"105":0.09603,"106":0.07581,"107":0.1213,"108":0.19205,"109":3.86631,"110":0.14657,"111":3.75007,"112":5.02368,"113":0.00505,"114":0.00505,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0.01011,"16":0,"17":0,"18":0.00505,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00505,"27":0.00505,"28":0.01011,"29":0,"30":0.00505,"31":0,"32":0.00505,"33":0,"34":0,"35":0,"36":0.01011,"37":0.00505,"38":0,"39":0,"40":0,"41":0,"42":0.02527,"43":0,"44":0,"45":0,"46":0.00505,"47":0,"48":0,"49":0,"50":0,"51":0.00505,"52":0,"53":0.02022,"54":0.00505,"55":0.00505,"56":0,"57":0,"58":0.01516,"60":0.03032,"62":0,"63":0.03032,"64":0.01516,"65":0.01516,"66":0.01516,"67":0.05559,"68":0.07076,"69":0.17689,"70":0,"71":0,"72":0,"73":0,"74":0.06065,"75":0,"76":0,"77":0,"78":0.01011,"79":0.01516,"80":0.00505,"81":0,"82":0,"83":0,"84":0,"85":0.00505,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00505,"93":0,"94":0.00505,"95":0.12635,"96":0.14151,"97":0.64186,"98":0.02022,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.02527},B:{"12":0,"13":0,"14":0.00505,"15":0.00505,"16":0,"17":0.00505,"18":0.01516,"79":0,"80":0,"81":0,"83":0,"84":0.01011,"85":0.01011,"86":0,"87":0,"88":0,"89":0.02022,"90":0.00505,"91":0,"92":0.02527,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.08592,"101":0,"102":0,"103":0.02022,"104":0,"105":0.00505,"106":0.00505,"107":0.05559,"108":0.01011,"109":0.187,"110":0.07076,"111":0.56605,"112":1.01585,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0.00505,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01516,"13.1":0.02022,"14.1":0.02527,"15.1":0,"15.2-15.3":0,"15.4":0.01011,"15.5":0.01011,"15.6":0.03032,"16.0":0.00505,"16.1":0.01516,"16.2":0.01516,"16.3":0.09097,"16.4":0.02527,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0.00464,"4.2-4.3":0.00464,"5.0-5.1":0.00397,"6.0-6.1":0.00265,"7.0-7.1":0.03179,"8.1-8.4":0,"9.0-9.2":0.00066,"9.3":0.05961,"10.0-10.2":0.00066,"10.3":0.24773,"11.0-11.2":0.01788,"11.3-11.4":0.01192,"12.0-12.1":0.01722,"12.2-12.5":0.55043,"13.0-13.1":0.01457,"13.2":0.01855,"13.3":0.00927,"13.4-13.7":0.05961,"14.0-14.4":0.18083,"14.5-14.8":0.16758,"15.0-15.1":0.07352,"15.2-15.3":0.13115,"15.4":0.17155,"15.5":0.18745,"15.6":0.25634,"16.0":0.34046,"16.1":0.67959,"16.2":0.40206,"16.3":1.38435,"16.4":0.81273,"16.5":0.00596},P:{"4":0.07152,"20":0.38826,"5.0-5.4":0,"6.2-6.4":0.01022,"7.2-7.4":0.04087,"8.2":0,"9.2":0.04087,"10.1":0,"11.1-11.2":0.01022,"12.0":0.03065,"13.0":0.02043,"14.0":0.01022,"15.0":0.01022,"16.0":0.01022,"17.0":0.05109,"18.0":0.02043,"19.0":0.0613},I:{"0":0,"3":0,"4":0.0015,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01648,"4.2-4.3":0.04194,"4.4":0,"4.4.3-4.4.4":0.24567},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.1213,"5.5":0},S:{"2.5":0.40557,_:"3.0-3.1"},J:{"7":0,"10":0.00989},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.27698},Q:{"13.1":0.01978},O:{"0":1.23155},H:{"0":4.89795},L:{"0":59.60338}}; diff --git a/node_modules/caniuse-lite/data/regions/MH.js b/node_modules/caniuse-lite/data/regions/MH.js new file mode 100644 index 0000000..92bc37b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.01889,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0063,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.09447,"111":0.65499,"112":0.19524,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.01889,"52":0,"53":0,"54":0,"55":0,"56":0.0063,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.02519,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.12596,"74":0,"75":0.0063,"76":0.05038,"77":0.11966,"78":0,"79":0,"80":0,"81":0.02519,"83":0,"84":0,"85":0.12596,"86":0,"87":0,"88":0,"89":0,"90":0.02519,"91":0,"92":0,"93":0.21413,"94":0,"95":0,"96":0,"97":0,"98":0.0063,"99":0,"100":0,"101":0.17005,"102":0,"103":0.20154,"104":0,"105":0,"106":0.11966,"107":0.02519,"108":0.11336,"109":0.70538,"110":0.11966,"111":11.0341,"112":10.68141,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02519,"96":0.03149,"97":0.17005,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.02519,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.03779,"103":0,"104":0,"105":0.01889,"106":0,"107":0,"108":0.0063,"109":0.07558,"110":0.05038,"111":1.16513,"112":4.01812,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01889,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.06928,"14.1":0.37158,"15.1":0,"15.2-15.3":0.01889,"15.4":0.22043,"15.5":0,"15.6":0.08817,"16.0":0.35899,"16.1":0.13226,"16.2":1.07696,"16.3":0.29601,"16.4":0.44716,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.39523,"10.0-10.2":0,"10.3":0.07832,"11.0-11.2":0.01275,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":1.55361,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.05282,"14.5-14.8":0.72489,"15.0-15.1":0.14389,"15.2-15.3":0.13114,"15.4":0.23677,"15.5":0.11839,"15.6":1.09281,"16.0":1.96159,"16.1":2.77755,"16.2":1.93427,"16.3":3.85578,"16.4":2.14554,"16.5":0.10564},P:{"4":0,"20":1.45601,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0.01025,"18.0":0,"19.0":0.09228},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.6975,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.08187,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.25544},Q:{"13.1":0},O:{"0":0.33688},H:{"0":0.09463},L:{"0":44.21788}}; diff --git a/node_modules/caniuse-lite/data/regions/MK.js b/node_modules/caniuse-lite/data/regions/MK.js new file mode 100644 index 0000000..1ece5ac --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00427,"48":0.00853,"49":0,"50":0.00427,"51":0.00427,"52":0.04694,"53":0.00853,"54":0,"55":0,"56":0.0128,"57":0.0128,"58":0,"59":0,"60":0,"61":0.00427,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00427,"69":0,"70":0,"71":0,"72":0.00853,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00427,"80":0.00427,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00427,"94":0.00427,"95":0,"96":0,"97":0,"98":0,"99":0.00427,"100":0,"101":0,"102":0.0128,"103":0.00427,"104":0.0128,"105":0,"106":0,"107":0.00427,"108":0.00427,"109":0.01707,"110":0.0512,"111":0.48217,"112":0.4267,"113":0.00427,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00427,"35":0,"36":0,"37":0,"38":0.00427,"39":0,"40":0,"41":0,"42":0,"43":0.00427,"44":0.00427,"45":0,"46":0.00427,"47":0.00853,"48":0,"49":0.03414,"50":0,"51":0,"52":0,"53":0.00427,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00427,"64":0.00427,"65":0,"66":0.00427,"67":0,"68":0.00427,"69":0.00427,"70":0.00853,"71":0.00427,"72":0.00427,"73":0.02134,"74":0,"75":0.00427,"76":0.00853,"77":0,"78":0,"79":0.09814,"80":0.00427,"81":0.02134,"83":0.0128,"84":0.00427,"85":0.00853,"86":0.0128,"87":0.02134,"88":0.00853,"89":0.00427,"90":0.00427,"91":0.0128,"92":0.00427,"93":0.00427,"94":0.0128,"95":0.00853,"96":0.00427,"97":0.01707,"98":0.00427,"99":0.0256,"100":0.00853,"101":0.00853,"102":0.0128,"103":0.02134,"104":0.00427,"105":0.0128,"106":0.02987,"107":0.0384,"108":0.0512,"109":1.87748,"110":0.11094,"111":4.74917,"112":5.34228,"113":0.0384,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.02134,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00427,"37":0,"38":0,"39":0,"40":0.00427,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00853,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00427,"70":0,"71":0,"72":0,"73":0,"74":0.00427,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.05547,"96":0.11948,"97":0.34563,"98":0.0128,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00427,"79":0,"80":0,"81":0,"83":0,"84":0.00853,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00427,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00427,"106":0,"107":0.00427,"108":0.00427,"109":0.0256,"110":0.0256,"111":0.24322,"112":0.44804,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00427,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0128,"14.1":0.04267,"15.1":0,"15.2-15.3":0,"15.4":0.00427,"15.5":0.01707,"15.6":0.0384,"16.0":0.00427,"16.1":0.0128,"16.2":0.02134,"16.3":0.07681,"16.4":0.0512,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03669,"8.1-8.4":0.00204,"9.0-9.2":0,"9.3":0.08357,"10.0-10.2":0,"10.3":0.08154,"11.0-11.2":0.00612,"11.3-11.4":0.00612,"12.0-12.1":0.00612,"12.2-12.5":0.39545,"13.0-13.1":0.00204,"13.2":0,"13.3":0.04484,"13.4-13.7":0.08561,"14.0-14.4":0.159,"14.5-14.8":0.54018,"15.0-15.1":0.06931,"15.2-15.3":0.15084,"15.4":0.13046,"15.5":0.28334,"15.6":0.84797,"16.0":1.43707,"16.1":2.40531,"16.2":1.20469,"16.3":7.99663,"16.4":3.11671,"16.5":0.07542},P:{"4":0.23394,"20":2.55303,"5.0-5.4":0.02034,"6.2-6.4":0,"7.2-7.4":0.01017,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.03051,"12.0":0,"13.0":0.03051,"14.0":0.02034,"15.0":0.01017,"16.0":0.02034,"17.0":0.06103,"18.0":0.04069,"19.0":0.12206},I:{"0":0,"3":0,"4":0.00276,"2.1":0,"2.2":0,"2.3":0.00276,"4.1":0.06067,"4.2-4.3":0.01103,"4.4":0,"4.4.3-4.4.4":0.04412},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0128,"9":0,"10":0.00427,"11":0.02134,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10319},Q:{"13.1":0},O:{"0":0.0172},H:{"0":0.20625},L:{"0":59.92234}}; diff --git a/node_modules/caniuse-lite/data/regions/ML.js b/node_modules/caniuse-lite/data/regions/ML.js new file mode 100644 index 0000000..e9a2979 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ML.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00241,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01207,"96":0,"97":0,"98":0,"99":0.03621,"100":0,"101":0,"102":0.00483,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00241,"110":0.00966,"111":0.17381,"112":0.20278,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05069,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00483,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00483,"56":0,"57":0,"58":0.00241,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.0169,"66":0,"67":0,"68":0,"69":0,"70":0.00241,"71":0,"72":0,"73":0,"74":0.00241,"75":0,"76":0.00241,"77":0,"78":0,"79":0.00483,"80":0.02655,"81":0.00241,"83":0.00241,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00724,"93":0.00241,"94":0,"95":0.02897,"96":0.00241,"97":0,"98":0.00724,"99":0.00483,"100":0,"101":0,"102":0,"103":0.03862,"104":0,"105":0,"106":0.00483,"107":0.00483,"108":0.01207,"109":0.17139,"110":0.01448,"111":0.71213,"112":0.86421,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0.00241,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00483,"62":0,"63":0,"64":0,"65":0,"66":0.00241,"67":0.02897,"68":0.03138,"69":0.00241,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03138,"96":0.00483,"97":0.03621,"98":0.00241,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00483,"13":0.00241,"14":0.00724,"15":0.00724,"16":0,"17":0,"18":0.0338,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00241,"91":0,"92":0.00241,"93":0,"94":0,"95":0,"96":0.00241,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00483,"104":0,"105":0.00241,"106":0,"107":0.00724,"108":0.00241,"109":0.12311,"110":0.00966,"111":0.19071,"112":0.55763,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00483,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00483,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00724,"14.1":0.00241,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.01207,"16.0":0,"16.1":0,"16.2":0.00241,"16.3":0.00966,"16.4":0.00483,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02725,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.14304,"10.0-10.2":0,"10.3":0.2435,"11.0-11.2":0.01022,"11.3-11.4":0.0017,"12.0-12.1":0.03406,"12.2-12.5":2.27668,"13.0-13.1":0.01362,"13.2":0.20093,"13.3":0.06982,"13.4-13.7":0.16177,"14.0-14.4":0.57726,"14.5-14.8":1.47295,"15.0-15.1":0.70838,"15.2-15.3":0.20945,"15.4":0.4836,"15.5":0.30821,"15.6":0.49212,"16.0":0.53469,"16.1":0.9025,"16.2":0.88717,"16.3":3.09404,"16.4":2.53551,"16.5":0.10217},P:{"4":0.11126,"20":0.81929,"5.0-5.4":0.02023,"6.2-6.4":0.01011,"7.2-7.4":0.30344,"8.2":0,"9.2":0.04046,"10.1":0.05057,"11.1-11.2":0.01011,"12.0":0.01011,"13.0":0.11126,"14.0":0.16183,"15.0":0.01011,"16.0":0.09103,"17.0":0.05057,"18.0":0.03034,"19.0":0.14161},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00063,"4.2-4.3":0.00533,"4.4":0,"4.4.3-4.4.4":0.07715},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00724,"5.5":0},S:{"2.5":0.26551,_:"3.0-3.1"},J:{"7":0,"10":0.02276},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09862},Q:{"13.1":0.01517},O:{"0":0.46275},H:{"0":1.13475},L:{"0":75.27392}}; diff --git a/node_modules/caniuse-lite/data/regions/MM.js b/node_modules/caniuse-lite/data/regions/MM.js new file mode 100644 index 0000000..8ee0c5b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00379,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00379,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00379,"73":0,"74":0,"75":0,"76":0,"77":0.00758,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.01137,"89":0,"90":0,"91":0.00379,"92":0,"93":0,"94":0,"95":0.00379,"96":0,"97":0.00379,"98":0,"99":0,"100":0,"101":0,"102":0.01516,"103":0.02274,"104":0.00379,"105":0.00379,"106":0.00758,"107":0.00758,"108":0.01137,"109":0.03032,"110":0.04548,"111":0.75421,"112":0.7959,"113":0.02274,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00379,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00758,"38":0.00379,"39":0,"40":0.00379,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0.00758,"54":0,"55":0.00379,"56":0,"57":0,"58":0.00379,"59":0,"60":0,"61":0.00379,"62":0.00758,"63":0,"64":0,"65":0,"66":0,"67":0.00379,"68":0.00379,"69":0.00379,"70":0.00379,"71":0.01137,"72":0,"73":0,"74":0.01895,"75":0.00379,"76":0.00379,"77":0,"78":0.00758,"79":0.01516,"80":0.00379,"81":0.00758,"83":0.00379,"84":0.00379,"85":0.00379,"86":0.00758,"87":0.01895,"88":0.00758,"89":0.00758,"90":0,"91":0.00379,"92":0.00758,"93":0,"94":0.00379,"95":0.00379,"96":0.00379,"97":0.00758,"98":0.00379,"99":0.04169,"100":0.01516,"101":0.00758,"102":0.00758,"103":0.02274,"104":0.00758,"105":0.03032,"106":0.00758,"107":0.01895,"108":0.05306,"109":0.45859,"110":0.07959,"111":2.37254,"112":3.76726,"113":0.00758,"114":0.00379,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00758,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00379,"64":0,"65":0,"66":0,"67":0.00379,"68":0.00758,"69":0.01895,"70":0.00379,"71":0,"72":0,"73":0,"74":0.00379,"75":0.00379,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00758,"96":0.0379,"97":0.14023,"98":0.01137,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00379,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.01137,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01137,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00379,"101":0,"102":0,"103":0,"104":0,"105":0.00379,"106":0,"107":0.00379,"108":0.00379,"109":0.01137,"110":0.02653,"111":0.25772,"112":0.75042,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00379,"14":0.01895,"15":0.00758,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00379,"13.1":0.0379,"14.1":0.25772,"15.1":0.01137,"15.2-15.3":0.00758,"15.4":0.01895,"15.5":0.07959,"15.6":0.1895,"16.0":0.01895,"16.1":0.07201,"16.2":0.09854,"16.3":0.36763,"16.4":0.18192,"16.5":0.00379},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00262,"5.0-5.1":0.00262,"6.0-6.1":0.00392,"7.0-7.1":0.00785,"8.1-8.4":0.01962,"9.0-9.2":0.01047,"9.3":0.08112,"10.0-10.2":0.01832,"10.3":0.09812,"11.0-11.2":0.01701,"11.3-11.4":0.00785,"12.0-12.1":0.00392,"12.2-12.5":0.40166,"13.0-13.1":0.00131,"13.2":0.00392,"13.3":0.01701,"13.4-13.7":0.10597,"14.0-14.4":0.15177,"14.5-14.8":0.2826,"15.0-15.1":0.1413,"15.2-15.3":0.157,"15.4":0.22896,"15.5":0.34409,"15.6":0.51548,"16.0":0.92891,"16.1":1.37375,"16.2":0.80201,"16.3":3.67379,"16.4":2.31836,"16.5":0.03925},P:{"4":0.22742,"20":1.17846,"5.0-5.4":0,"6.2-6.4":0.02067,"7.2-7.4":0.02067,"8.2":0,"9.2":0,"10.1":0.01034,"11.1-11.2":0.03101,"12.0":0,"13.0":0.01034,"14.0":0.01034,"15.0":0.01034,"16.0":0.02067,"17.0":0.03101,"18.0":0.04135,"19.0":0.0827},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00318,"4.2-4.3":0.01588,"4.4":0,"4.4.3-4.4.4":0.35094},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00948,"9":0.00474,"10":0.00474,"11":0.01895,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.16767},Q:{"13.1":0.03105},O:{"0":2.09277},H:{"0":0.43506},L:{"0":68.4603}}; diff --git a/node_modules/caniuse-lite/data/regions/MN.js b/node_modules/caniuse-lite/data/regions/MN.js new file mode 100644 index 0000000..fa6a636 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00467,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00467,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00467,"97":0,"98":0,"99":0,"100":0,"101":0.00467,"102":0.00934,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00467,"109":0.03736,"110":0.1868,"111":0.41563,"112":0.35025,"113":0.00934,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00467,"45":0,"46":0,"47":0,"48":0,"49":0.00467,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00467,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00467,"70":0.00934,"71":0.02335,"72":0,"73":0.00467,"74":0.02335,"75":0,"76":0,"77":0.00467,"78":0.00934,"79":0.01868,"80":0.00934,"81":0.00934,"83":0,"84":0.00467,"85":0.00934,"86":0.00934,"87":0.01401,"88":0.00467,"89":0.00467,"90":0.00467,"91":0.00934,"92":0.00934,"93":0.00467,"94":0.00467,"95":0.00467,"96":0.01401,"97":0.00934,"98":0.00934,"99":0.02335,"100":0.01401,"101":0.00934,"102":0.01868,"103":0.08873,"104":0.02802,"105":0.05137,"106":0.01868,"107":0.02802,"108":0.06071,"109":2.08749,"110":0.22416,"111":5.09964,"112":6.09902,"113":0.01401,"114":0.00467,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00467,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00467,"69":0.00467,"70":0,"71":0,"72":0,"73":0,"74":0.00467,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00467,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03736,"96":0.14944,"97":0.46233,"98":0.01401,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00467,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00467,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00467,"90":0.00467,"91":0,"92":0.00934,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00467,"101":0,"102":0,"103":0,"104":0.00467,"105":0,"106":0,"107":0.00934,"108":0.00934,"109":0.06538,"110":0.08873,"111":0.69116,"112":1.46638,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00467,"14":0.03736,"15":0.01401,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00467,"13.1":0.0467,"14.1":0.08406,"15.1":0.01868,"15.2-15.3":0.01868,"15.4":0.01868,"15.5":0.03736,"15.6":0.19614,"16.0":0.02802,"16.1":0.08406,"16.2":0.10741,"16.3":0.26619,"16.4":0.08873,"16.5":0.00467},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01044,"8.1-8.4":0.00348,"9.0-9.2":0,"9.3":0.04175,"10.0-10.2":0,"10.3":0.05218,"11.0-11.2":0.01044,"11.3-11.4":0.01739,"12.0-12.1":0.01044,"12.2-12.5":0.5636,"13.0-13.1":0.01392,"13.2":0,"13.3":0.04523,"13.4-13.7":0.17047,"14.0-14.4":0.57751,"14.5-14.8":0.90802,"15.0-15.1":0.37921,"15.2-15.3":0.40356,"15.4":0.45227,"15.5":0.70971,"15.6":1.31854,"16.0":3.93473,"16.1":4.09824,"16.2":2.79363,"16.3":11.47717,"16.4":4.32786,"16.5":0.1496},P:{"4":0.18382,"20":2.99225,"5.0-5.4":0.02042,"6.2-6.4":0.01021,"7.2-7.4":0.13276,"8.2":0,"9.2":0.01021,"10.1":0,"11.1-11.2":0.02042,"12.0":0,"13.0":0.03064,"14.0":0.03064,"15.0":0.05106,"16.0":0.0817,"17.0":0.09191,"18.0":0.0817,"19.0":0.26552},I:{"0":0,"3":0,"4":0.00956,"2.1":0,"2.2":0.00382,"2.3":0.00382,"4.1":0.01721,"4.2-4.3":0.01912,"4.4":0,"4.4.3-4.4.4":0.10515},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0.00467,"8":0.02802,"9":0.00467,"10":0.00467,"11":0.03736,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00533},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12792},Q:{"13.1":0},O:{"0":0.12792},H:{"0":0.11101},L:{"0":41.27737}}; diff --git a/node_modules/caniuse-lite/data/regions/MO.js b/node_modules/caniuse-lite/data/regions/MO.js new file mode 100644 index 0000000..568485a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.0849,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00531,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.03714,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.01592,"101":0,"102":0.01061,"103":0,"104":0.00531,"105":0.00531,"106":0,"107":0,"108":0.01592,"109":0.00531,"110":0.01061,"111":0.37142,"112":0.22816,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.01061,"23":0,"24":0,"25":0,"26":0.00531,"27":0,"28":0,"29":0,"30":0.00531,"31":0,"32":0,"33":0,"34":0.04245,"35":0,"36":0,"37":0,"38":0.12204,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02653,"50":0,"51":0,"52":0,"53":0.01592,"54":0,"55":0.03714,"56":0,"57":0.00531,"58":0.01592,"59":0,"60":0,"61":0.06367,"62":0.01061,"63":0,"64":0,"65":0,"66":0,"67":0.00531,"68":0,"69":0.00531,"70":0.02122,"71":0,"72":0.00531,"73":0.01061,"74":0.02122,"75":0.00531,"76":0.00531,"77":0.01061,"78":0.02653,"79":0.33958,"80":0.03184,"81":0.00531,"83":0.02122,"84":0,"85":0.00531,"86":0.01592,"87":0.06898,"88":0.00531,"89":0.03714,"90":0.01061,"91":0.00531,"92":0.04245,"93":0.00531,"94":0.00531,"95":0.01592,"96":0.02122,"97":0.0902,"98":0.07428,"99":0.18571,"100":0.0902,"101":0.04245,"102":0.04775,"103":0.16449,"104":0.04245,"105":0.11143,"106":0.04245,"107":0.0849,"108":0.14326,"109":1.33711,"110":0.23346,"111":4.5101,"112":7.26922,"113":0.01061,"114":0.02122,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.02122,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.03184,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.05306,"47":0,"48":0.00531,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00531,"71":0,"72":0,"73":0,"74":0.02653,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02653,"96":0.02122,"97":0.05837,"98":0.00531,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00531,"13":0,"14":0,"15":0,"16":0.00531,"17":0,"18":0.03184,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00531,"106":0.00531,"107":0.01061,"108":0.02653,"109":0.10612,"110":0.02122,"111":0.50407,"112":1.37425,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.04245,"14":0.23346,"15":0.03714,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.05837,"13.1":0.1804,"14.1":0.56244,"15.1":0.06898,"15.2-15.3":0.06367,"15.4":0.12204,"15.5":0.20693,"15.6":0.68447,"16.0":0.05306,"16.1":0.13796,"16.2":0.29714,"16.3":1.57058,"16.4":0.57305,"16.5":0.01061},G:{"8":0.00412,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02058,"6.0-6.1":0.11113,"7.0-7.1":0.09878,"8.1-8.4":0.09466,"9.0-9.2":0.06174,"9.3":0.40334,"10.0-10.2":0.04116,"10.3":0.69968,"11.0-11.2":0.17698,"11.3-11.4":0.10701,"12.0-12.1":0.09466,"12.2-12.5":2.22662,"13.0-13.1":0.06997,"13.2":0.02469,"13.3":0.08231,"13.4-13.7":0.29633,"14.0-14.4":0.84373,"14.5-14.8":1.91382,"15.0-15.1":0.42804,"15.2-15.3":0.69145,"15.4":0.89723,"15.5":0.79022,"15.6":2.50237,"16.0":1.83974,"16.1":3.88115,"16.2":2.33363,"16.3":11.54055,"16.4":6.99677,"16.5":0.04527},P:{"4":1.28326,"20":2.4559,"5.0-5.4":0.03319,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0.05531,"10.1":0,"11.1-11.2":0.04425,"12.0":0,"13.0":0.03319,"14.0":0.01106,"15.0":0,"16.0":0.03319,"17.0":0.04425,"18.0":0.01106,"19.0":0.0885},I:{"0":0,"3":0,"4":0.00898,"2.1":0.00539,"2.2":0.00719,"2.3":0.01078,"4.1":0.01078,"4.2-4.3":0.02694,"4.4":0,"4.4.3-4.4.4":0.12933},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.06519,"9":0.0163,"10":0.0163,"11":0.13038,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00469},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21592},Q:{"13.1":0.09388},O:{"0":0.5445},H:{"0":0.08444},L:{"0":28.74747}}; diff --git a/node_modules/caniuse-lite/data/regions/MP.js b/node_modules/caniuse-lite/data/regions/MP.js new file mode 100644 index 0000000..9144da9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MP.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00721,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01442,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.01442,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00721,"103":0.36771,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.28119,"112":2.09811,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00721,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.01442,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00721,"77":0,"78":0,"79":0.59122,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.37492,"88":0,"89":0,"90":0,"91":0.01442,"92":0,"93":0.00721,"94":0,"95":0,"96":0,"97":0.00721,"98":0,"99":0,"100":0.00721,"101":0,"102":0,"103":0.2163,"104":0.02884,"105":0.02884,"106":8.87551,"107":0.00721,"108":0.05047,"109":1.0094,"110":0.52633,"111":12.20653,"112":8.40686,"113":0.02884,"114":0.02163,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04326,"96":0.28119,"97":1.18244,"98":0.02163,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00721,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.01442,"108":0,"109":0.08652,"110":0.06489,"111":1.48526,"112":4.59998,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.02884,"14":0.46144,"15":0.00721,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00721,"13.1":0.03605,"14.1":1.21128,"15.1":0.01442,"15.2-15.3":0.01442,"15.4":0.05047,"15.5":0.05047,"15.6":0.18746,"16.0":0.02884,"16.1":0.05047,"16.2":0.42539,"16.3":1.96112,"16.4":0.1442,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05591,"10.0-10.2":0,"10.3":0.14355,"11.0-11.2":0.00907,"11.3-11.4":0.00756,"12.0-12.1":0.00453,"12.2-12.5":0.24026,"13.0-13.1":0.0136,"13.2":0,"13.3":0.00453,"13.4-13.7":0,"14.0-14.4":1.57301,"14.5-14.8":0.2055,"15.0-15.1":0.72379,"15.2-15.3":0.01209,"15.4":0.05742,"15.5":0.11182,"15.6":1.33275,"16.0":0.92325,"16.1":2.08374,"16.2":1.06227,"16.3":4.16295,"16.4":1.96286,"16.5":0.04684},P:{"4":0,"20":4.54462,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0.07247,"19.0":0.03106},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.58869},Q:{"13.1":0},O:{"0":0.00558},H:{"0":0.03962},L:{"0":28.3056}}; diff --git a/node_modules/caniuse-lite/data/regions/MQ.js b/node_modules/caniuse-lite/data/regions/MQ.js new file mode 100644 index 0000000..459912b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MQ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00446,"53":0,"54":0.00446,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.09808,"77":0,"78":0.00446,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.02229,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00446,"100":0.00446,"101":0,"102":0.02229,"103":0,"104":0.00446,"105":0.00446,"106":0,"107":0.01783,"108":0.00446,"109":0.00446,"110":0.01337,"111":0.94955,"112":0.93172,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00446,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00446,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00446,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.00446,"88":0.00446,"89":0,"90":0.00446,"91":0,"92":0,"93":0.00446,"94":0.00446,"95":0.04904,"96":0,"97":0,"98":0.00892,"99":0.00446,"100":0.01337,"101":0.00892,"102":0.04458,"103":0.01783,"104":0.00892,"105":0.01337,"106":0,"107":0.02229,"108":0.01783,"109":0.50375,"110":0.20953,"111":4.02112,"112":4.59174,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.08024,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00892,"96":0.33881,"97":0.40568,"98":0.02229,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00446,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00446,"103":0,"104":0.09808,"105":0,"106":0.00446,"107":0.00446,"108":0.01783,"109":0.06241,"110":0.04458,"111":0.76232,"112":1.6138,"113":0.00892},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00446,"14":0.02675,"15":0.00892,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00446,"12.1":0.02229,"13.1":0.07579,"14.1":0.09808,"15.1":0.03566,"15.2-15.3":0.03566,"15.4":0.23627,"15.5":0.11591,"15.6":0.18724,"16.0":0.04458,"16.1":0.09362,"16.2":0.17832,"16.3":0.74894,"16.4":0.25856,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.39542,"10.0-10.2":0,"10.3":0.08754,"11.0-11.2":0.02415,"11.3-11.4":0.00906,"12.0-12.1":0.00604,"12.2-12.5":0.11772,"13.0-13.1":0,"13.2":0,"13.3":0.01207,"13.4-13.7":0.03018,"14.0-14.4":0.3924,"14.5-14.8":0.34109,"15.0-15.1":0.15394,"15.2-15.3":0.25355,"15.4":0.22337,"15.5":0.49201,"15.6":1.59677,"16.0":2.49024,"16.1":5.08612,"16.2":2.52646,"16.3":9.30594,"16.4":5.50569,"16.5":0.12979},P:{"4":0.03103,"20":3.96184,"5.0-5.4":0.01034,"6.2-6.4":0,"7.2-7.4":0.05172,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.05172,"12.0":0,"13.0":0.01034,"14.0":0.04138,"15.0":0.01034,"16.0":0.13448,"17.0":0.04138,"18.0":0.04138,"19.0":0.1862},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01062,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.12745},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01337,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.41011},Q:{"13.1":0},O:{"0":0.01108},H:{"0":0.19938},L:{"0":45.6253}}; diff --git a/node_modules/caniuse-lite/data/regions/MR.js b/node_modules/caniuse-lite/data/regions/MR.js new file mode 100644 index 0000000..bc14656 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00146,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00582,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00291,"99":0,"100":0.00146,"101":0,"102":0.00146,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00291,"109":0,"110":0.00291,"111":0.08294,"112":0.06548,"113":0.00728,"114":0.01019,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00146,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.01164,"41":0,"42":0,"43":0.00146,"44":0,"45":0,"46":0.00146,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00291,"69":0,"70":0.00146,"71":0,"72":0.00582,"73":0,"74":0.00146,"75":0,"76":0,"77":0.00437,"78":0,"79":0,"80":0,"81":0.00146,"83":0.00291,"84":0.00146,"85":0,"86":0,"87":0.00437,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00146,"94":0.00146,"95":0.00291,"96":0,"97":0,"98":0.00291,"99":0.02328,"100":0.00146,"101":0,"102":0,"103":0.00291,"104":0.00146,"105":0.00291,"106":0.00146,"107":0.02037,"108":0.00728,"109":0.14987,"110":0.01164,"111":0.30846,"112":0.34484,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00146,"62":0,"63":0.02328,"64":0.00146,"65":0,"66":0.00146,"67":0.00437,"68":0.00582,"69":0.01746,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00582,"83":0,"84":0,"85":0.00582,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00146,"93":0,"94":0,"95":0.00437,"96":0.00582,"97":0.03201,"98":0.00291,"9.5-9.6":0,"10.0-10.1":0,"10.5":0.00291,"10.6":0.00291,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00146},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00146,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00291,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00146,"108":0,"109":0.00728,"110":0.00291,"111":0.05529,"112":0.12222,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00291,"15":0.00146,_:"0","3.1":0,"3.2":0,"5.1":0.02619,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00146,"14.1":0.00582,"15.1":0,"15.2-15.3":0,"15.4":0.00291,"15.5":0.00291,"15.6":0.01455,"16.0":0,"16.1":0.00728,"16.2":0.00146,"16.3":0.01601,"16.4":0.00437,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0448,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03734,"10.0-10.2":0,"10.3":0.0112,"11.0-11.2":0.01493,"11.3-11.4":0,"12.0-12.1":0.0336,"12.2-12.5":4.40203,"13.0-13.1":0.33977,"13.2":0.48911,"13.3":0.08588,"13.4-13.7":3.11017,"14.0-14.4":12.11211,"14.5-14.8":0.86995,"15.0-15.1":0.46671,"15.2-15.3":0.33603,"15.4":0.41071,"15.5":0.71314,"15.6":0.63846,"16.0":1.6615,"16.1":1.57935,"16.2":1.81831,"16.3":3.84197,"16.4":2.91602,"16.5":0.06347},P:{"4":0.28326,"20":1.35561,"5.0-5.4":0.03035,"6.2-6.4":0.0607,"7.2-7.4":0.95095,"8.2":0,"9.2":0.03035,"10.1":0.03035,"11.1-11.2":0.10116,"12.0":0.01012,"13.0":0.03035,"14.0":0.09105,"15.0":0.09105,"16.0":0.33384,"17.0":0.22256,"18.0":0.19221,"19.0":0.58676},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00212,"4.4":0,"4.4.3-4.4.4":0.02807},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00482,"9":0,"10":0,"11":0.02573,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.14527},Q:{"13.1":0},O:{"0":0.33326},H:{"0":0.77663},L:{"0":55.82465}}; diff --git a/node_modules/caniuse-lite/data/regions/MS.js b/node_modules/caniuse-lite/data/regions/MS.js new file mode 100644 index 0000000..fab226b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.02784,"101":0,"102":0.03897,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.42866,"112":0.08351,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.89629,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.01113,"94":0,"95":0,"96":0,"97":0.01113,"98":0,"99":0.01113,"100":0,"101":0,"102":0,"103":0.01113,"104":0,"105":0.03897,"106":0.02784,"107":0,"108":0,"109":2.49958,"110":0.21711,"111":8.07772,"112":8.48968,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.01113,"97":0.17258,"98":0.0167,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0.0167,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.01113,"111":0.41196,"112":2.16,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.05567,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.01113,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.28392,"14.1":0.09464,"15.1":0,"15.2-15.3":0.0167,"15.4":0,"15.5":0.16144,"15.6":0.14474,"16.0":0,"16.1":0.0501,"16.2":0.0167,"16.3":0.92412,"16.4":0.03897,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.21578,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.03567,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":5.992,"14.0-14.4":0,"14.5-14.8":0.19617,"15.0-15.1":0,"15.2-15.3":0.03567,"15.4":0,"15.5":0,"15.6":0.39412,"16.0":0.37628,"16.1":3.91085,"16.2":0.84352,"16.3":2.3861,"16.4":2.85333,"16.5":0},P:{"4":0,"20":1.69973,"5.0-5.4":0,"6.2-6.4":0.02251,"7.2-7.4":0.42775,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.03377,"17.0":0.03377,"18.0":0.0788,"19.0":1.00183},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":2.22226},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.17289},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":49.86582}}; diff --git a/node_modules/caniuse-lite/data/regions/MT.js b/node_modules/caniuse-lite/data/regions/MT.js new file mode 100644 index 0000000..37cce95 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02695,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0485,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00539,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00539,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01617,"103":0,"104":0,"105":0,"106":0,"107":0.02156,"108":0,"109":0.00539,"110":0.02695,"111":0.4904,"112":0.42573,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01078,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00539,"66":0,"67":0,"68":0.00539,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00539,"75":0,"76":0.00539,"77":0.01617,"78":0.01078,"79":0.02695,"80":0.00539,"81":0.00539,"83":0.00539,"84":0,"85":0.00539,"86":0.00539,"87":0.01617,"88":0.00539,"89":0,"90":0.00539,"91":0,"92":0.00539,"93":0.26945,"94":0,"95":0,"96":0,"97":0.00539,"98":0.01078,"99":0.01078,"100":0.02156,"101":0.00539,"102":0.00539,"103":0.06467,"104":0.00539,"105":0.03772,"106":0.01617,"107":0.14011,"108":0.12934,"109":0.82452,"110":0.24789,"111":7.92722,"112":9.24752,"113":0.00539,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01617,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00539,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01078,"69":0.02695,"70":0,"71":0,"72":0,"73":0,"74":0.00539,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.01617,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.194,"97":0.46884,"98":0.01078,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00539,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0.00539,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00539,"105":0,"106":0,"107":0.00539,"108":0.00539,"109":0.08084,"110":0.05389,"111":0.92691,"112":2.2041,"113":0.01078},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00539,"14":0.04311,"15":0.00539,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01617,"13.1":0.02695,"14.1":0.097,"15.1":0.01078,"15.2-15.3":0.01617,"15.4":0.03233,"15.5":0.0485,"15.6":0.26406,"16.0":0.08084,"16.1":0.15089,"16.2":0.13473,"16.3":0.70057,"16.4":0.2964,"16.5":0},G:{"8":0.01856,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0053,"7.0-7.1":0.00795,"8.1-8.4":0.01325,"9.0-9.2":0,"9.3":0.02386,"10.0-10.2":0,"10.3":0.69455,"11.0-11.2":0,"11.3-11.4":0.01591,"12.0-12.1":0.0053,"12.2-12.5":0.2757,"13.0-13.1":0.0053,"13.2":0,"13.3":0.0053,"13.4-13.7":0.02651,"14.0-14.4":0.21738,"14.5-14.8":0.43741,"15.0-15.1":0.07688,"15.2-15.3":0.20147,"15.4":0.20677,"15.5":0.37378,"15.6":0.99411,"16.0":2.30898,"16.1":3.18909,"16.2":2.0863,"16.3":9.56993,"16.4":4.7452,"16.5":0.16171},P:{"4":0.10353,"20":2.46409,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01035,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01035,"12.0":0,"13.0":0.01035,"14.0":0.01035,"15.0":0.03106,"16.0":0.01035,"17.0":0.01035,"18.0":0.02071,"19.0":0.10353},I:{"0":0,"3":0,"4":0.03453,"2.1":0,"2.2":0,"2.3":0.01726,"4.1":0.03453,"4.2-4.3":0.07768,"4.4":0,"4.4.3-4.4.4":0.35389},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.03233,"9":0.00539,"10":0.00539,"11":0.09161,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00461},N:{"10":0.00922,"11":0},R:{_:"0"},M:{"0":0.23055},Q:{"13.1":0},O:{"0":0.24899},H:{"0":0.24446},L:{"0":41.60317}}; diff --git a/node_modules/caniuse-lite/data/regions/MU.js b/node_modules/caniuse-lite/data/regions/MU.js new file mode 100644 index 0000000..84693e5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00773,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00386,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00386,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00386,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00386,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00386,"89":0,"90":0,"91":0,"92":0.00773,"93":0,"94":0,"95":0.00386,"96":0,"97":0,"98":0.00386,"99":0,"100":0,"101":0,"102":0.0425,"103":0.00386,"104":0,"105":0,"106":0,"107":0,"108":0.00773,"109":0.00386,"110":0.00773,"111":0.4289,"112":0.29753,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00386,"35":0,"36":0,"37":0,"38":0.02318,"39":0,"40":0,"41":0,"42":0,"43":0.00386,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01159,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00386,"59":0,"60":0,"61":0,"62":0,"63":0.00386,"64":0.00386,"65":0,"66":0,"67":0,"68":0.00386,"69":0,"70":0,"71":0,"72":0.00773,"73":0.00386,"74":0.00386,"75":0,"76":0,"77":0,"78":0.01546,"79":0.06955,"80":0.01159,"81":0.05023,"83":0.00386,"84":0.00773,"85":0.00386,"86":0.00773,"87":0.03864,"88":0.00773,"89":0,"90":0.00386,"91":0.00773,"92":0.00773,"93":0.01159,"94":0,"95":0.00386,"96":0.00773,"97":0.03091,"98":0.00386,"99":0.06955,"100":0.00773,"101":0.01546,"102":0.00386,"103":0.01932,"104":0.01159,"105":0.00773,"106":0.01546,"107":0.01546,"108":0.05023,"109":0.79212,"110":0.14683,"111":3.58193,"112":3.87946,"113":0.00773,"114":0.00386,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01932,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00386,"64":0,"65":0.00386,"66":0,"67":0.04637,"68":0.01546,"69":0.06182,"70":0,"71":0,"72":0,"73":0,"74":0.01546,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03091,"96":0.06569,"97":0.23184,"98":0.00773,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00386,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00773,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00386,"108":0.00386,"109":0.02705,"110":0.01932,"111":0.42118,"112":0.84235,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01546,"15":0.00386,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00773,"13.1":0.01546,"14.1":0.05023,"15.1":0.00773,"15.2-15.3":0.01546,"15.4":0.01159,"15.5":0.03091,"15.6":0.08501,"16.0":0.00773,"16.1":0.02318,"16.2":0.05023,"16.3":0.24343,"16.4":0.11978,"16.5":0.00386},G:{"8":0.02055,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01413,"6.0-6.1":0.00771,"7.0-7.1":0.06423,"8.1-8.4":0.19525,"9.0-9.2":0.01028,"9.3":0.10276,"10.0-10.2":0,"10.3":0.04111,"11.0-11.2":0.00257,"11.3-11.4":0.01028,"12.0-12.1":0.01028,"12.2-12.5":0.29416,"13.0-13.1":0.00128,"13.2":0.00514,"13.3":0.00771,"13.4-13.7":0.03083,"14.0-14.4":0.04496,"14.5-14.8":0.18241,"15.0-15.1":0.03468,"15.2-15.3":0.12203,"15.4":0.08478,"15.5":0.12589,"15.6":0.50098,"16.0":0.79,"16.1":1.43485,"16.2":0.8568,"16.3":4.62313,"16.4":2.39956,"16.5":0.04881},P:{"4":0.45796,"20":4.74238,"5.0-5.4":0.02035,"6.2-6.4":0,"7.2-7.4":0.18318,"8.2":0,"9.2":0.01018,"10.1":0.02035,"11.1-11.2":0.07124,"12.0":0.01018,"13.0":0.04071,"14.0":0.05088,"15.0":0.03053,"16.0":0.21371,"17.0":0.09159,"18.0":0.07124,"19.0":0.24424},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0032,"4.2-4.3":0.0016,"4.4":0,"4.4.3-4.4.4":0.07998},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.03864,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.46634},Q:{"13.1":0},O:{"0":0.61974},H:{"0":0.60996},L:{"0":64.45575}}; diff --git a/node_modules/caniuse-lite/data/regions/MV.js b/node_modules/caniuse-lite/data/regions/MV.js new file mode 100644 index 0000000..3030dea --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MV.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00309,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00309,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00309,"100":0,"101":0.00309,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00309,"110":0.07098,"111":0.15739,"112":0.15739,"113":0.00309,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00309,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00309,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00309,"71":0.00617,"72":0,"73":0.00309,"74":0.00617,"75":0,"76":0,"77":0.00309,"78":0,"79":0.00309,"80":0.00309,"81":0.00309,"83":0.03086,"84":0.00309,"85":0.00309,"86":0.00617,"87":0.00309,"88":0.00309,"89":0,"90":0,"91":0,"92":0.00309,"93":0.00617,"94":0,"95":0.00309,"96":0,"97":0,"98":0,"99":0.00309,"100":0.00309,"101":0.00309,"102":0,"103":0.01234,"104":0.00309,"105":0.01234,"106":0.00926,"107":0.00926,"108":0.00926,"109":0.22528,"110":0.08641,"111":2.43794,"112":2.87615,"113":0.00309,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00309,"68":0.01852,"69":0.05246,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00309,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.03086,"97":0.07715,"98":0.00309,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0.00309,"17":0,"18":0.00309,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00309,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00309,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.01234,"109":0.00617,"110":0.00926,"111":0.16973,"112":0.34255,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01234,"14":0.00926,"15":0.00309,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01234,"14.1":0.03395,"15.1":0.00617,"15.2-15.3":0.01543,"15.4":0.01234,"15.5":0.0216,"15.6":0.07098,"16.0":0.00926,"16.1":0.04938,"16.2":0.04938,"16.3":0.16664,"16.4":0.06172,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00646,"6.0-6.1":0,"7.0-7.1":0.00646,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01292,"10.0-10.2":0,"10.3":0.00323,"11.0-11.2":0,"11.3-11.4":0.00969,"12.0-12.1":0,"12.2-12.5":0.14537,"13.0-13.1":0,"13.2":0,"13.3":0.00646,"13.4-13.7":0.07753,"14.0-14.4":0.1583,"14.5-14.8":0.50073,"15.0-15.1":0.11307,"15.2-15.3":0.1906,"15.4":0.24875,"15.5":0.59118,"15.6":1.18883,"16.0":3.21436,"16.1":3.44049,"16.2":2.30012,"16.3":11.3294,"16.4":7.23958,"16.5":0.18737},P:{"4":0.03099,"20":1.46684,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.02066,"8.2":0,"9.2":0.01033,"10.1":0,"11.1-11.2":0.02066,"12.0":0,"13.0":0.01033,"14.0":0,"15.0":0.01033,"16.0":0.05165,"17.0":0.01033,"18.0":0.02066,"19.0":0.08264},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0535,"4.4":0,"4.4.3-4.4.4":0.14267},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00309,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.27656},Q:{"13.1":0},O:{"0":0.80894},H:{"0":0.56293},L:{"0":56.87731}}; diff --git a/node_modules/caniuse-lite/data/regions/MW.js b/node_modules/caniuse-lite/data/regions/MW.js new file mode 100644 index 0000000..e8eb013 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00322,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00322,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00322,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00322,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00965,"103":0,"104":0,"105":0.00965,"106":0,"107":0.00322,"108":0.01287,"109":0.01287,"110":0.0193,"111":0.3024,"112":0.2831,"113":0.01609,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00322,"36":0,"37":0,"38":0,"39":0,"40":0.00322,"41":0,"42":0,"43":0.00322,"44":0.03539,"45":0,"46":0.00643,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00965,"56":0.00322,"57":0,"58":0.00322,"59":0,"60":0,"61":0.00643,"62":0,"63":0,"64":0.00643,"65":0,"66":0,"67":0,"68":0,"69":0.00643,"70":0.00643,"71":0,"72":0,"73":0.00322,"74":0.01287,"75":0,"76":0.00322,"77":0.00643,"78":0.00322,"79":0.00965,"80":0.00643,"81":0.0193,"83":0.02895,"84":0,"85":0.00322,"86":0.01287,"87":0.00643,"88":0.00643,"89":0.00322,"90":0.00643,"91":0.00322,"92":0.00643,"93":0.00322,"94":0.00322,"95":0.00643,"96":0.00643,"97":0.00322,"98":0.00643,"99":0.00643,"100":0.00322,"101":0.00643,"102":0.01287,"103":0.02574,"104":0.00643,"105":0.01287,"106":0.0386,"107":0.01609,"108":0.03217,"109":0.29275,"110":0.06112,"111":1.68893,"112":1.97202,"113":0.00322,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0.00643,"24":0,"25":0,"26":0.00322,"27":0.00322,"28":0.0193,"29":0.00322,"30":0.00322,"31":0.00965,"32":0.01287,"33":0.00643,"34":0,"35":0.00965,"36":0,"37":0.00322,"38":0.00322,"39":0,"40":0.00322,"41":0,"42":0.0193,"43":0,"44":0.00643,"45":0,"46":0.00322,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.00643,"55":0.00322,"56":0.00322,"57":0.0193,"58":0.00322,"60":0.10938,"62":0,"63":0.08686,"64":0.02574,"65":0.00965,"66":0.0386,"67":0.15442,"68":0.12868,"69":0.23484,"70":0.00322,"71":0,"72":0,"73":0.00322,"74":0.02895,"75":0.00965,"76":0,"77":0,"78":0,"79":0.00322,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00322,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00322,"95":0.03539,"96":0.06112,"97":0.3024,"98":0.02574,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.04182},B:{"12":0.01287,"13":0.00643,"14":0.00322,"15":0.00965,"16":0.00322,"17":0.00643,"18":0.03539,"79":0,"80":0,"81":0,"83":0,"84":0.00965,"85":0,"86":0,"87":0,"88":0.00322,"89":0.00322,"90":0.00965,"91":0,"92":0.03539,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00322,"100":0.00643,"101":0,"102":0.00322,"103":0.00322,"104":0.00322,"105":0.00643,"106":0.00965,"107":0.00965,"108":0.00965,"109":0.06434,"110":0.06756,"111":0.34422,"112":0.63053,"113":0.00322},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00322,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00965,"6.1":0,"7.1":0,"9.1":0.00322,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00643,"14.1":0.00643,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00965,"15.6":0.01609,"16.0":0,"16.1":0.00643,"16.2":0.00643,"16.3":0.01609,"16.4":0.00965,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00236,"6.0-6.1":0,"7.0-7.1":0.02215,"8.1-8.4":0.00094,"9.0-9.2":0,"9.3":0.04006,"10.0-10.2":0,"10.3":0.03017,"11.0-11.2":0.00236,"11.3-11.4":0.00094,"12.0-12.1":0.01225,"12.2-12.5":0.32805,"13.0-13.1":0.0033,"13.2":0.00047,"13.3":0.83428,"13.4-13.7":0.03865,"14.0-14.4":0.14046,"14.5-14.8":0.12773,"15.0-15.1":0.07777,"15.2-15.3":0.03912,"15.4":0.05279,"15.5":0.1037,"15.6":0.1645,"16.0":0.1546,"16.1":0.27149,"16.2":0.27621,"16.3":0.79374,"16.4":0.70419,"16.5":0.02357},P:{"4":0.21718,"20":0.8377,"5.0-5.4":0.01034,"6.2-6.4":0,"7.2-7.4":0.1965,"8.2":0,"9.2":0.02068,"10.1":0,"11.1-11.2":0.01034,"12.0":0,"13.0":0.01034,"14.0":0.02068,"15.0":0.01034,"16.0":0.07239,"17.0":0.06205,"18.0":0.09308,"19.0":0.11376},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00142,"4.2-4.3":0.0057,"4.4":0,"4.4.3-4.4.4":0.1154},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02252,"5.5":0},S:{"2.5":0.16279,_:"3.0-3.1"},J:{"7":0,"10":0.29845},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.18314},Q:{"13.1":0.01357},O:{"0":5.77912},H:{"0":7.78953},L:{"0":66.25216}}; diff --git a/node_modules/caniuse-lite/data/regions/MX.js b/node_modules/caniuse-lite/data/regions/MX.js new file mode 100644 index 0000000..376c0e5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MX.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00481,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00481,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00481,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00481,"74":0,"75":0,"76":0,"77":0,"78":0.00962,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00481,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00962,"103":0,"104":0.01443,"105":0.00481,"106":0,"107":0.00481,"108":0.00481,"109":0.00962,"110":0.01924,"111":0.41856,"112":0.42818,"113":0.00481,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00481,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02406,"50":0,"51":0,"52":0.00962,"53":0,"54":0,"55":0,"56":0.01443,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00481,"66":0.01924,"67":0.00481,"68":0,"69":0,"70":0,"71":0.00481,"72":0,"73":0,"74":0.00481,"75":0.00481,"76":0.00962,"77":0.00481,"78":0.00481,"79":0.05773,"80":0.00481,"81":0.00962,"83":0.00481,"84":0.00481,"85":0.00481,"86":0.00962,"87":0.03368,"88":0.00962,"89":0.01924,"90":0.0433,"91":0.06254,"92":0.0433,"93":0.05292,"94":0.0433,"95":0.00962,"96":0.00962,"97":0.01443,"98":0.00962,"99":0.03849,"100":0.00962,"101":0.00962,"102":0.01443,"103":0.0866,"104":0.01924,"105":0.01924,"106":0.02887,"107":0.03368,"108":0.06254,"109":1.5299,"110":0.15876,"111":5.09485,"112":6.62475,"113":0.00962,"114":0.00481,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00962,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00481,"69":0.01443,"70":0,"71":0,"72":0,"73":0,"74":0.00962,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02887,"96":0.16839,"97":0.44261,"98":0.01443,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00481,"13":0,"14":0,"15":0,"16":0,"17":0.00481,"18":0.00481,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00962,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00962,"103":0.00481,"104":0,"105":0.00481,"106":0.00481,"107":0.00962,"108":0.00962,"109":0.05292,"110":0.0433,"111":0.71203,"112":1.59244,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00481,"14":0.01924,"15":0.00481,_:"0","3.1":0,"3.2":0,"5.1":0.00481,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00481,"12.1":0.00962,"13.1":0.0433,"14.1":0.06735,"15.1":0.00962,"15.2-15.3":0.00962,"15.4":0.02406,"15.5":0.02887,"15.6":0.15395,"16.0":0.01924,"16.1":0.06254,"16.2":0.07698,"16.3":0.33196,"16.4":0.14914,"16.5":0.00481},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00863,"6.0-6.1":0,"7.0-7.1":0.01208,"8.1-8.4":0.00173,"9.0-9.2":0.02589,"9.3":0.0725,"10.0-10.2":0,"10.3":0.06214,"11.0-11.2":0.00863,"11.3-11.4":0.04488,"12.0-12.1":0.01036,"12.2-12.5":0.35558,"13.0-13.1":0.0069,"13.2":0.00345,"13.3":0.01381,"13.4-13.7":0.0466,"14.0-14.4":0.1191,"14.5-14.8":0.32623,"15.0-15.1":0.07595,"15.2-15.3":0.10702,"15.4":0.10874,"15.5":0.23302,"15.6":0.76811,"16.0":1.12196,"16.1":1.95566,"16.2":1.25314,"16.3":6.3969,"16.4":3.07417,"16.5":0.06904},P:{"4":0.13491,"20":0.83024,"5.0-5.4":0.01038,"6.2-6.4":0,"7.2-7.4":0.06227,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01038,"12.0":0,"13.0":0.01038,"14.0":0.01038,"15.0":0.01038,"16.0":0.02076,"17.0":0.03113,"18.0":0.01038,"19.0":0.04151},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01836,"4.2-4.3":0.01377,"4.4":0,"4.4.3-4.4.4":0.10559},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05773,"5.5":0},S:{"2.5":0.01038,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.17643},Q:{"13.1":0},O:{"0":0.05708},H:{"0":0.1965},L:{"0":61.32525}}; diff --git a/node_modules/caniuse-lite/data/regions/MY.js b/node_modules/caniuse-lite/data/regions/MY.js new file mode 100644 index 0000000..58a9875 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00922,"35":0,"36":0,"37":0,"38":0,"39":0.00461,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00461,"53":0.10601,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00461,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00461,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00461,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01383,"103":0,"104":0,"105":0.00461,"106":0.00461,"107":0.00461,"108":0.00461,"109":0.00922,"110":0.01844,"111":0.35489,"112":0.29037,"113":0.00461,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00461,"30":0,"31":0,"32":0,"33":0,"34":0.00922,"35":0,"36":0,"37":0,"38":0.03226,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00461,"48":0,"49":0.01383,"50":0,"51":0,"52":0,"53":0.02765,"54":0,"55":0.02305,"56":0.00461,"57":0,"58":0.00922,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00461,"66":0.00461,"67":0.00461,"68":0,"69":0.00461,"70":0.00922,"71":0.00461,"72":0.00461,"73":0.00922,"74":0.01383,"75":0.01383,"76":0.00461,"77":0.00461,"78":0.00922,"79":0.17975,"80":0.00461,"81":0.03226,"83":0.00922,"84":0.00922,"85":0.00922,"86":0.01844,"87":0.04609,"88":0.01844,"89":0.00922,"90":0.00461,"91":0.03226,"92":0.01844,"93":0.00461,"94":0.02305,"95":0.00922,"96":0.01383,"97":0.02305,"98":0.01383,"99":0.14749,"100":0.02305,"101":0.01383,"102":0.02305,"103":0.05992,"104":0.02765,"105":0.02305,"106":0.02305,"107":0.06453,"108":0.06453,"109":1.332,"110":0.12444,"111":5.36949,"112":5.54463,"113":0.00922,"114":0.00461,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.02765,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.02305,"37":0.00461,"38":0,"39":0,"40":0.00461,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.03687,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00922,"68":0.01844,"69":0.0507,"70":0,"71":0,"72":0,"73":0,"74":0.00922,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00922,"96":0.06453,"97":0.15671,"98":0.00461,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00461,"109":0.01383,"110":0.01844,"111":0.36872,"112":0.69596,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00922,"14":0.04148,"15":0.01383,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00461,"13.1":0.03226,"14.1":0.11523,"15.1":0.01844,"15.2-15.3":0.01383,"15.4":0.04609,"15.5":0.09218,"15.6":0.32263,"16.0":0.02765,"16.1":0.12905,"16.2":0.1521,"16.3":0.70518,"16.4":0.19819,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01282,"6.0-6.1":0.02051,"7.0-7.1":0.03333,"8.1-8.4":0.04359,"9.0-9.2":0.01538,"9.3":0.2487,"10.0-10.2":0.01026,"10.3":0.53586,"11.0-11.2":0.01282,"11.3-11.4":0.01795,"12.0-12.1":0.03333,"12.2-12.5":0.682,"13.0-13.1":0.01538,"13.2":0.00769,"13.3":0.0282,"13.4-13.7":0.09487,"14.0-14.4":0.28203,"14.5-14.8":0.50509,"15.0-15.1":0.20255,"15.2-15.3":0.20768,"15.4":0.36151,"15.5":0.55894,"15.6":1.09993,"16.0":1.9973,"16.1":2.59726,"16.2":2.08191,"16.3":8.31995,"16.4":4.05357,"16.5":0.06923},P:{"4":0.81514,"20":2.03257,"5.0-5.4":0.04235,"6.2-6.4":0,"7.2-7.4":0.04235,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02117,"12.0":0,"13.0":0.01059,"14.0":0.02117,"15.0":0.02117,"16.0":0.03176,"17.0":0.03176,"18.0":0.03176,"19.0":0.10586},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.07305},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05531,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15095},Q:{"13.1":0.00539},O:{"0":0.92725},H:{"0":0.50528},L:{"0":50.66079}}; diff --git a/node_modules/caniuse-lite/data/regions/MZ.js b/node_modules/caniuse-lite/data/regions/MZ.js new file mode 100644 index 0000000..e5a532e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/MZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00397,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00397,"89":0,"90":0,"91":0.00793,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00397,"99":0.00397,"100":0,"101":0,"102":0.0119,"103":0,"104":0,"105":0,"106":0,"107":0.00397,"108":0.00397,"109":0.00397,"110":0.01586,"111":0.31728,"112":0.23399,"113":0.00397,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00793,"41":0,"42":0.00397,"43":0.00793,"44":0,"45":0,"46":0.00397,"47":0,"48":0,"49":0,"50":0.00397,"51":0,"52":0,"53":0,"54":0,"55":0.01586,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.02776,"64":0.00793,"65":0,"66":0,"67":0.00793,"68":0,"69":0,"70":0.0119,"71":0.00397,"72":0.00397,"73":0,"74":0.0119,"75":0.00397,"76":0.00397,"77":0,"78":0.01983,"79":0.00793,"80":0,"81":0.10708,"83":0.00793,"84":0.00397,"85":0.00397,"86":0.00397,"87":0.03569,"88":0.00397,"89":0,"90":0.00793,"91":0.00793,"92":0.00397,"93":0.00397,"94":0.01983,"95":0.00793,"96":0.00793,"97":0.00397,"98":0.00397,"99":0.00397,"100":0.00397,"101":0.00397,"102":0.0119,"103":0.01586,"104":0.01983,"105":0.01586,"106":0.01983,"107":0.00793,"108":0.0119,"109":1.19773,"110":0.05156,"111":1.88385,"112":2.22096,"113":0.0119,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00397,"25":0,"26":0.00397,"27":0,"28":0.00397,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.04363,"36":0,"37":0.00397,"38":0.00397,"39":0,"40":0,"41":0,"42":0.00397,"43":0,"44":0,"45":0,"46":0.0238,"47":0,"48":0,"49":0,"50":0,"51":0.00793,"52":0,"53":0,"54":0,"55":0,"56":0.00397,"57":0.00397,"58":0.00793,"60":0.03966,"62":0,"63":0.12295,"64":0.02776,"65":0.03173,"66":0.03966,"67":0.10312,"68":0.11105,"69":0.1983,"70":0,"71":0,"72":0,"73":0,"74":0.01586,"75":0,"76":0,"77":0,"78":0,"79":0.00397,"80":0.0119,"81":0,"82":0,"83":0,"84":0,"85":0.00397,"86":0.00397,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.01586,"95":0.07139,"96":0.05156,"97":0.40057,"98":0.02776,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00397},B:{"12":0.00397,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.01586,"79":0,"80":0,"81":0,"83":0,"84":0.00397,"85":0,"86":0,"87":0,"88":0,"89":0.00397,"90":0.00397,"91":0.00397,"92":0.00793,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00397,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00397,"107":0.00397,"108":0.00793,"109":0.03173,"110":0.01983,"111":0.31728,"112":0.65042,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00397,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0119,"14.1":0.00397,"15.1":0,"15.2-15.3":0,"15.4":0.00397,"15.5":0,"15.6":0.01586,"16.0":0,"16.1":0.00397,"16.2":0.00793,"16.3":0.01586,"16.4":0.00793,"16.5":0},G:{"8":0.02546,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00091,"6.0-6.1":0,"7.0-7.1":0.01,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04364,"10.0-10.2":0,"10.3":0.39095,"11.0-11.2":0.00182,"11.3-11.4":0.00364,"12.0-12.1":0.03182,"12.2-12.5":1.5256,"13.0-13.1":0.02273,"13.2":0.00727,"13.3":0.03546,"13.4-13.7":0.09728,"14.0-14.4":0.67188,"14.5-14.8":0.43822,"15.0-15.1":0.12274,"15.2-15.3":0.31094,"15.4":0.4455,"15.5":0.55914,"15.6":0.48095,"16.0":0.28821,"16.1":0.48186,"16.2":0.36731,"16.3":1.32285,"16.4":0.5446,"16.5":0.00909},P:{"4":0.3891,"20":0.50174,"5.0-5.4":0,"6.2-6.4":0.01024,"7.2-7.4":0.22527,"8.2":0,"9.2":0.06144,"10.1":0,"11.1-11.2":0.03072,"12.0":0,"13.0":0.02048,"14.0":0.02048,"15.0":0.02048,"16.0":0.0512,"17.0":0.06144,"18.0":0.02048,"19.0":0.27647},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00198,"4.4":0,"4.4.3-4.4.4":0.06802},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0119,"5.5":0},S:{"2.5":0.96544,_:"3.0-3.1"},J:{"7":0,"10":0.00603},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.06637},Q:{"13.1":0.00603},O:{"0":0.19912},H:{"0":5.21561},L:{"0":71.46457}}; diff --git a/node_modules/caniuse-lite/data/regions/NA.js b/node_modules/caniuse-lite/data/regions/NA.js new file mode 100644 index 0000000..9f894ad --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.01319,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.08794,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.0044,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01319,"79":0,"80":0,"81":0,"82":0.0044,"83":0,"84":0,"85":0.0044,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.0044,"102":0.01319,"103":0.0044,"104":0,"105":0,"106":0.0044,"107":0.01759,"108":0.0044,"109":0.0044,"110":0.01319,"111":0.48807,"112":0.42211,"113":0.0044,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.0044,"41":0,"42":0,"43":0.0044,"44":0,"45":0,"46":0,"47":0,"48":0.0044,"49":0.01319,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.01319,"67":0.0044,"68":0,"69":0.0044,"70":0.0044,"71":0,"72":0,"73":0,"74":0.00879,"75":0,"76":0,"77":0.0044,"78":0.00879,"79":0.0044,"80":0.0044,"81":0.02199,"83":0,"84":0,"85":0,"86":0.0044,"87":0.00879,"88":0.00879,"89":0.01759,"90":0.0044,"91":0.00879,"92":0.0044,"93":0.0044,"94":0.0044,"95":0.00879,"96":0.00879,"97":0,"98":0.01759,"99":0.02199,"100":0.01319,"101":0.0044,"102":0.0044,"103":0.02199,"104":0.00879,"105":0.05276,"106":0.01759,"107":0.03957,"108":0.03078,"109":1.12563,"110":0.08794,"111":4.01446,"112":4.38821,"113":0.0044,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.0044,"27":0,"28":0.02199,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.0044,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.0044,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.0044,"62":0,"63":0.0044,"64":0.0044,"65":0,"66":0.00879,"67":0.05276,"68":0.06596,"69":0.18907,"70":0,"71":0,"72":0,"73":0,"74":0.01319,"75":0.01319,"76":0,"77":0,"78":0,"79":0.0044,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03518,"96":0.07915,"97":0.31658,"98":0.03518,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.01319,"13":0.0044,"14":0.03957,"15":0.01319,"16":0.0044,"17":0,"18":0.02638,"79":0,"80":0,"81":0,"83":0,"84":0.0044,"85":0,"86":0,"87":0,"88":0,"89":0.0044,"90":0.0044,"91":0,"92":0.01759,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.02199,"106":0.0044,"107":0.01319,"108":0.0044,"109":0.06156,"110":0.04397,"111":0.72551,"112":1.95227,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0044,"14":0.00879,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.0044,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0044,"13.1":0.01759,"14.1":0.02638,"15.1":0.0044,"15.2-15.3":0.01319,"15.4":0.00879,"15.5":0.01319,"15.6":0.07475,"16.0":0.0044,"16.1":0.03518,"16.2":0.03518,"16.3":0.21106,"16.4":0.07035,"16.5":0.0044},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02259,"6.0-6.1":0,"7.0-7.1":0.0505,"8.1-8.4":0.00532,"9.0-9.2":0,"9.3":0.07443,"10.0-10.2":0,"10.3":0.06911,"11.0-11.2":0.0093,"11.3-11.4":0.00266,"12.0-12.1":0.00797,"12.2-12.5":1.08848,"13.0-13.1":0.00797,"13.2":0,"13.3":0.01595,"13.4-13.7":0.02791,"14.0-14.4":0.55819,"14.5-14.8":0.2565,"15.0-15.1":0.36017,"15.2-15.3":0.29106,"15.4":0.05981,"15.5":0.19005,"15.6":0.44921,"16.0":0.82267,"16.1":1.38751,"16.2":0.56085,"16.3":3.73592,"16.4":1.44865,"16.5":0.04386},P:{"4":0.41493,"20":2.53004,"5.0-5.4":0,"6.2-6.4":0.02024,"7.2-7.4":0.33396,"8.2":0,"9.2":0,"10.1":0.03036,"11.1-11.2":0.01012,"12.0":0.01012,"13.0":0.03036,"14.0":0.03036,"15.0":0.01012,"16.0":0.04048,"17.0":0.19228,"18.0":0.0506,"19.0":0.21252},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00229,"4.2-4.3":0.00516,"4.4":0,"4.4.3-4.4.4":0.1329},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.11432,"5.5":0},S:{"2.5":0.0056,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0.01681,"11":0},R:{_:"0"},M:{"0":0.22412},Q:{"13.1":0.02241},O:{"0":0.5659},H:{"0":1.29431},L:{"0":64.03192}}; diff --git a/node_modules/caniuse-lite/data/regions/NC.js b/node_modules/caniuse-lite/data/regions/NC.js new file mode 100644 index 0000000..bcfa900 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.01454,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.08238,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.05331,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.03877,"79":0,"80":0.00969,"81":0,"82":0,"83":0.00485,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.09207,"92":0,"93":0,"94":0,"95":0.00485,"96":0,"97":0,"98":0.00485,"99":0,"100":0.00485,"101":0,"102":0.23261,"103":0,"104":0,"105":0.00969,"106":0,"107":0.00485,"108":0.00485,"109":0.00969,"110":0.03877,"111":1.40534,"112":1.24542,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00485,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00969,"60":0,"61":0,"62":0,"63":0.00485,"64":0,"65":0,"66":0,"67":0.00485,"68":0,"69":0,"70":0,"71":0,"72":0.01454,"73":0,"74":0,"75":0,"76":0.00485,"77":0,"78":0,"79":0.00485,"80":0.01454,"81":0.01938,"83":0,"84":0.00969,"85":0,"86":0,"87":0.01454,"88":0.00485,"89":0,"90":0,"91":0,"92":0.00969,"93":0,"94":0.01454,"95":0,"96":0.02908,"97":0.05331,"98":0,"99":0.00485,"100":0.00485,"101":0,"102":0.00485,"103":0.05815,"104":0.00485,"105":0.00969,"106":0.05815,"107":0.01454,"108":0.04361,"109":1.15819,"110":0.29561,"111":4.15787,"112":5.12222,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00485,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00485,"96":0.08723,"97":0.31014,"98":0.00969,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00485,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00485,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00485,"100":0.00485,"101":0,"102":0,"103":0.00485,"104":0.00969,"105":0.03392,"106":0,"107":0.03877,"108":0.00969,"109":0.063,"110":0.01454,"111":0.76082,"112":1.67187,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.02423,"14":0.03392,"15":0.00969,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0.00969,"11.1":0,"12.1":0.05331,"13.1":0.063,"14.1":0.14053,"15.1":0.02908,"15.2-15.3":0.03392,"15.4":0.04846,"15.5":0.04361,"15.6":0.41191,"16.0":0.04846,"16.1":0.25199,"16.2":0.16476,"16.3":0.59121,"16.4":0.70267,"16.5":0.01454},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08631,"10.0-10.2":0.00523,"10.3":0.17261,"11.0-11.2":0.01046,"11.3-11.4":0.46292,"12.0-12.1":0.00523,"12.2-12.5":0.53354,"13.0-13.1":0.01046,"13.2":0,"13.3":0.48384,"13.4-13.7":0.17,"14.0-14.4":0.26938,"14.5-14.8":0.54138,"15.0-15.1":0.30338,"15.2-15.3":0.14908,"15.4":0.34,"15.5":0.38184,"15.6":1.06707,"16.0":1.37045,"16.1":3.31629,"16.2":1.26061,"16.3":10.20779,"16.4":3.34244,"16.5":0.05492},P:{"4":0.03137,"20":6.24306,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.32418,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.04183,"12.0":0.01046,"13.0":0.02091,"14.0":0.03137,"15.0":0.04183,"16.0":0.12549,"17.0":0.03137,"18.0":0.11503,"19.0":0.92025},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.206},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02423,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.54117},Q:{"13.1":0},O:{"0":0.134},H:{"0":0.45867},L:{"0":41.60779}}; diff --git a/node_modules/caniuse-lite/data/regions/NE.js b/node_modules/caniuse-lite/data/regions/NE.js new file mode 100644 index 0000000..b1d108e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00177,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00177,"98":0,"99":0.00177,"100":0,"101":0,"102":0.0053,"103":0,"104":0.00353,"105":0,"106":0.01767,"107":0.00177,"108":0.00177,"109":0.00177,"110":0.0053,"111":0.14313,"112":0.11309,"113":0.00177,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00707,"41":0,"42":0,"43":0.0053,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00177,"50":0,"51":0.00177,"52":0,"53":0,"54":0,"55":0.03534,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00177,"75":0,"76":0,"77":0,"78":0,"79":0.01414,"80":0.00353,"81":0.00707,"83":0.00177,"84":0,"85":0,"86":0.00177,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00177,"96":0.00177,"97":0,"98":0,"99":0.0053,"100":0,"101":0,"102":0.00177,"103":0.0053,"104":0.00177,"105":0.00177,"106":0.00353,"107":0.00177,"108":0.00353,"109":0.09895,"110":0.03004,"111":0.31453,"112":0.24385,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00177,"27":0.00353,"28":0.00177,"29":0,"30":0.00177,"31":0.02297,"32":0.00177,"33":0,"34":0,"35":0,"36":0,"37":0.01237,"38":0,"39":0,"40":0,"41":0,"42":0.00177,"43":0,"44":0,"45":0,"46":0.00884,"47":0,"48":0,"49":0,"50":0,"51":0.00177,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.05301,"62":0,"63":0.04594,"64":0.0053,"65":0,"66":0.0159,"67":0.04241,"68":0.04771,"69":0.13076,"70":0,"71":0,"72":0,"73":0,"74":0.00177,"75":0,"76":0,"77":0,"78":0,"79":0.00177,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01944,"96":0.0106,"97":0.06715,"98":0.00353,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00177},B:{"12":0.00177,"13":0,"14":0,"15":0.00177,"16":0.00177,"17":0.00177,"18":0.00177,"79":0,"80":0,"81":0,"83":0,"84":0.00177,"85":0,"86":0,"87":0,"88":0,"89":0.00177,"90":0,"91":0,"92":0.00353,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00177,"101":0,"102":0,"103":0,"104":0.05124,"105":0.00707,"106":0.00177,"107":0,"108":0.02827,"109":0.0106,"110":0.00707,"111":0.20674,"112":0.182,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00177,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.02827,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0106,"14.1":0.00177,"15.1":0.11486,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.0053,"16.0":0,"16.1":0.00177,"16.2":0.00177,"16.3":0.0053,"16.4":0.00707,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00252,"6.0-6.1":0.00252,"7.0-7.1":0.01767,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08668,"10.0-10.2":0,"10.3":0.29789,"11.0-11.2":0.00168,"11.3-11.4":0.00252,"12.0-12.1":0.00084,"12.2-12.5":0.76745,"13.0-13.1":0,"13.2":0.00084,"13.3":0.06311,"13.4-13.7":0.04208,"14.0-14.4":0.52005,"14.5-14.8":0.4603,"15.0-15.1":0.22468,"15.2-15.3":0.7927,"15.4":0.0791,"15.5":0.2373,"15.6":0.25498,"16.0":0.50574,"16.1":0.62019,"16.2":0.48639,"16.3":1.52565,"16.4":0.78176,"16.5":0.01683},P:{"4":0.1132,"20":0.49398,"5.0-5.4":0.01029,"6.2-6.4":0.03087,"7.2-7.4":0.07204,"8.2":0,"9.2":0.05146,"10.1":0,"11.1-11.2":0.01029,"12.0":0,"13.0":0.07204,"14.0":0.02058,"15.0":0.01029,"16.0":0.02058,"17.0":0.02058,"18.0":0.02058,"19.0":0.08233},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00054,"4.4":0,"4.4.3-4.4.4":0.06476},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0106,"5.5":0},S:{"2.5":0.01647,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.0988},Q:{"13.1":0.03293},O:{"0":1.67953},H:{"0":3.78032},L:{"0":81.65118}}; diff --git a/node_modules/caniuse-lite/data/regions/NF.js b/node_modules/caniuse-lite/data/regions/NF.js new file mode 100644 index 0000000..cf2b877 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.51741,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.33045,"110":0,"111":1.50441,"112":0.13914,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.04783,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.13914,"109":0.42176,"110":0,"111":1.55224,"112":3.29144,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.37393,"112":0.65655,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.33045,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.09566,"15.6":0.28262,"16.0":0,"16.1":0.987,"16.2":3.76102,"16.3":0.04783,"16.4":0.04783,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":1.64738,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.75914,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":1.01735,"15.6":1.14129,"16.0":0.38215,"16.1":1.90559,"16.2":18.2709,"16.3":24.35948,"16.4":1.14129,"16.5":0},P:{"4":0,"20":2.4527,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":1.02894},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":1.03432},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":28.96756}}; diff --git a/node_modules/caniuse-lite/data/regions/NG.js b/node_modules/caniuse-lite/data/regions/NG.js new file mode 100644 index 0000000..b38cb3a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00203,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00405,"44":0,"45":0,"46":0,"47":0.00203,"48":0,"49":0,"50":0,"51":0,"52":0.00203,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00203,"66":0,"67":0,"68":0.00405,"69":0,"70":0,"71":0,"72":0.00203,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00203,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00203,"92":0,"93":0,"94":0,"95":0,"96":0.00405,"97":0,"98":0.00203,"99":0.00608,"100":0.00203,"101":0.00203,"102":0.00405,"103":0.00203,"104":0.00203,"105":0.00203,"106":0.00405,"107":0.00608,"108":0.00608,"109":0.00608,"110":0.01823,"111":0.1782,"112":0.14783,"113":0.0081,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.00405,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00203,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00608,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00405,"56":0,"57":0,"58":0.00203,"59":0.00203,"60":0,"61":0,"62":0.00203,"63":0,"64":0.00203,"65":0,"66":0,"67":0,"68":0.00203,"69":0.00203,"70":0.00203,"71":0.00203,"72":0.00203,"73":0.00203,"74":0.00405,"75":0.00203,"76":0.00203,"77":0.00608,"78":0,"79":0.0081,"80":0.00405,"81":0.01013,"83":0.00203,"84":0.00203,"85":0.00405,"86":0.00203,"87":0.0081,"88":0.00405,"89":0.00203,"90":0.00203,"91":0.00405,"92":0.00203,"93":0.02228,"94":0.00608,"95":0.00405,"96":0.00405,"97":0.00405,"98":0.00203,"99":0.00203,"100":0.00405,"101":0.00203,"102":0.00608,"103":0.01215,"104":0.00608,"105":0.0081,"106":0.0081,"107":0.01013,"108":0.01823,"109":0.25313,"110":0.03645,"111":0.56903,"112":0.60953,"113":0.00203,"114":0.00203,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0.00203,"24":0.0243,"25":0,"26":0.01418,"27":0.02633,"28":0.02025,"29":0.00405,"30":0.02228,"31":0.01013,"32":0.0243,"33":0.0081,"34":0,"35":0.00203,"36":0.0081,"37":0.00405,"38":0.01215,"39":0.00203,"40":0,"41":0,"42":0.01823,"43":0,"44":0.00203,"45":0.00405,"46":0.01418,"47":0.00608,"48":0.00203,"49":0,"50":0.02025,"51":0.0081,"52":0,"53":0.00203,"54":0.01418,"55":0.01215,"56":0.00405,"57":0.01215,"58":0.03038,"60":0.20048,"62":0.00405,"63":0.2106,"64":0.0486,"65":0.0243,"66":0.27135,"67":0.39488,"68":0.31793,"69":0.41513,"70":0.0081,"71":0.00405,"72":0.01013,"73":0.03038,"74":0.05873,"75":0.01418,"76":0,"77":0,"78":0,"79":0.00405,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00203,"86":0,"87":0,"88":0.00203,"89":0,"90":0.00203,"91":0,"92":0.00203,"93":0,"94":0.0081,"95":0.0081,"96":0.02835,"97":0.04658,"98":0.00203,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.02835},B:{"12":0.00405,"13":0,"14":0,"15":0.00203,"16":0,"17":0,"18":0.00405,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00405,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00203,"102":0.00203,"103":0,"104":0,"105":0.00203,"106":0,"107":0.00203,"108":0.00608,"109":0.01013,"110":0.02025,"111":0.06683,"112":0.12758,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00203,"14":0.00405,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00405,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00405,"14.1":0.00608,"15.1":0.00203,"15.2-15.3":0,"15.4":0.00203,"15.5":0.00203,"15.6":0.01418,"16.0":0.00203,"16.1":0.00405,"16.2":0.00608,"16.3":0.0162,"16.4":0.0081,"16.5":0},G:{"8":0.00375,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0025,"5.0-5.1":0.00125,"6.0-6.1":0.00375,"7.0-7.1":0.00626,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02628,"10.0-10.2":0,"10.3":0.02127,"11.0-11.2":0.00626,"11.3-11.4":0.005,"12.0-12.1":0.03378,"12.2-12.5":1.00724,"13.0-13.1":0.03879,"13.2":0.01501,"13.3":0.07507,"13.4-13.7":0.13638,"14.0-14.4":0.76074,"14.5-14.8":0.80078,"15.0-15.1":0.44418,"15.2-15.3":0.44418,"15.4":0.34033,"15.5":0.51801,"15.6":0.66315,"16.0":1.13861,"16.1":1.04352,"16.2":0.94217,"16.3":2.042,"16.4":0.88462,"16.5":0.02002},P:{"4":0.0406,"20":0.47705,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05075,"8.2":0,"9.2":0.0203,"10.1":0,"11.1-11.2":0.0203,"12.0":0,"13.0":0.0203,"14.0":0.0203,"15.0":0.0203,"16.0":0.0406,"17.0":0.03045,"18.0":0.0406,"19.0":0.11165},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00575,"4.2-4.3":0.0023,"4.4":0,"4.4.3-4.4.4":0.07815},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00203,"9":0,"10":0,"11":0.00405,"5.5":0},S:{"2.5":0.04785,_:"3.0-3.1"},J:{"7":0,"10":0.00798},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.31103},Q:{"13.1":0.00798},O:{"0":1.16435},H:{"0":26.30495},L:{"0":49.20563}}; diff --git a/node_modules/caniuse-lite/data/regions/NI.js b/node_modules/caniuse-lite/data/regions/NI.js new file mode 100644 index 0000000..224a7fa --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00444,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00444,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00444,"98":0.04888,"99":0.00444,"100":0,"101":0,"102":0.00444,"103":0,"104":0,"105":0.00444,"106":0.00444,"107":0.00444,"108":0.00444,"109":0.00444,"110":0.01778,"111":0.32886,"112":0.39552,"113":0.00444,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00444,"39":0,"40":0,"41":0,"42":0.00889,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00889,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00444,"66":0,"67":0,"68":0.00444,"69":0.00444,"70":0,"71":0,"72":0,"73":0.00444,"74":0,"75":0.00444,"76":0.00444,"77":0,"78":0,"79":0.07555,"80":0.00444,"81":0.01333,"83":0.01333,"84":0.00444,"85":0.00444,"86":0.00444,"87":0.02222,"88":0.02222,"89":0,"90":0.00444,"91":0.06222,"92":0.00444,"93":0.00444,"94":0.00444,"95":0.00444,"96":0.01333,"97":0.01333,"98":0.00889,"99":0.01778,"100":0.02222,"101":0.00889,"102":0.00889,"103":0.06222,"104":0.02222,"105":0.01333,"106":0.01778,"107":0.02666,"108":0.04888,"109":2.63529,"110":0.09777,"111":4.29735,"112":4.95062,"113":0.00444,"114":0.00444,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00889,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00444,"68":0.02222,"69":0.03555,"70":0.01333,"71":0,"72":0,"73":0,"74":0.00444,"75":0.00444,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03111,"96":0.12443,"97":0.36885,"98":0.00889,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00444,"15":0,"16":0.00889,"17":0,"18":0.00444,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01333,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00444,"104":0.00444,"105":0.00444,"106":0.00444,"107":0.00889,"108":0.00444,"109":0.03555,"110":0.02666,"111":0.37774,"112":0.99101,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00444,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00889,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.03555,"14.1":0.02222,"15.1":0.00444,"15.2-15.3":0,"15.4":0.00444,"15.5":0.00889,"15.6":0.09777,"16.0":0.00444,"16.1":0.01778,"16.2":0.02666,"16.3":0.14665,"16.4":0.04,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00658,"6.0-6.1":0,"7.0-7.1":0.04718,"8.1-8.4":0.0011,"9.0-9.2":0,"9.3":0.05925,"10.0-10.2":0,"10.3":0.02414,"11.0-11.2":0.01865,"11.3-11.4":0.00878,"12.0-12.1":0.00329,"12.2-12.5":0.21178,"13.0-13.1":0.00549,"13.2":0.00219,"13.3":0.00878,"13.4-13.7":0.03072,"14.0-14.4":0.124,"14.5-14.8":0.25787,"15.0-15.1":0.0823,"15.2-15.3":0.09437,"15.4":0.09876,"15.5":0.13058,"15.6":0.44441,"16.0":0.71435,"16.1":1.05232,"16.2":0.78787,"16.3":3.44884,"16.4":2.1584,"16.5":0.05596},P:{"4":0.30456,"20":2.06087,"5.0-5.4":0.01015,"6.2-6.4":0.03046,"7.2-7.4":0.43654,"8.2":0.0203,"9.2":0.0203,"10.1":0.01015,"11.1-11.2":0.09137,"12.0":0.01015,"13.0":0.06091,"14.0":0.05076,"15.0":0.04061,"16.0":0.19289,"17.0":0.10152,"18.0":0.11167,"19.0":0.32487},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00761,"4.2-4.3":0.02284,"4.4":0,"4.4.3-4.4.4":0.22842},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00489,"9":0,"10":0,"11":0.044,"5.5":0},S:{"2.5":0.00556,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.11112},Q:{"13.1":0},O:{"0":0.19446},H:{"0":0.38398},L:{"0":67.11904}}; diff --git a/node_modules/caniuse-lite/data/regions/NL.js b/node_modules/caniuse-lite/data/regions/NL.js new file mode 100644 index 0000000..eb94b20 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00529,"39":0,"40":0,"41":0,"42":0,"43":0.00529,"44":0.01058,"45":0.00529,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00529,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00529,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01588,"79":0.00529,"80":0.00529,"81":0.01058,"82":0,"83":0.00529,"84":0,"85":0,"86":0,"87":0,"88":0.00529,"89":0,"90":0,"91":0.00529,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.11642,"103":0.00529,"104":0.00529,"105":0.00529,"106":0.00529,"107":0.00529,"108":0.01058,"109":0.02117,"110":0.03175,"111":0.90493,"112":0.77792,"113":0.00529,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00529,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.14818,"48":0.02117,"49":0.01058,"50":0,"51":0,"52":0.02117,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00529,"61":0.00529,"62":0,"63":0,"64":0,"65":0,"66":0.02117,"67":0.00529,"68":0,"69":0,"70":0,"71":0.01058,"72":0.03704,"73":0,"74":0,"75":0,"76":0.00529,"77":0.00529,"78":0.00529,"79":0.04234,"80":0.00529,"81":0.00529,"83":0.01058,"84":0.01588,"85":0.12172,"86":0.03704,"87":0.02646,"88":0.00529,"89":0.00529,"90":0.01588,"91":0.02646,"92":0.02117,"93":0.02646,"94":0.05821,"95":0.00529,"96":0.02117,"97":0.01058,"98":0.01058,"99":0.00529,"100":0.03175,"101":0.04763,"102":0.03175,"103":0.11113,"104":0.05821,"105":0.08467,"106":0.0688,"107":0.04763,"108":0.14288,"109":0.78851,"110":0.25931,"111":6.04346,"112":6.615,"113":0.01058,"114":0.00529,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00529,"69":0.02646,"70":0,"71":0,"72":0,"73":0,"74":0.00529,"75":0.00529,"76":0,"77":0.00529,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00529,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00529,"95":0.02117,"96":0.1323,"97":0.38632,"98":0.01588,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00529,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00529,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00529,"104":0,"105":0,"106":0.00529,"107":0.00529,"108":0.01588,"109":0.0635,"110":0.0635,"111":1.27008,"112":2.7095,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0.00529,"10":0,"11":0,"12":0,"13":0.00529,"14":0.0635,"15":0.01588,_:"0","3.1":0,"3.2":0,"5.1":0.00529,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.03704,"13.1":0.17993,"14.1":0.16934,"15.1":0.04234,"15.2-15.3":0.02646,"15.4":0.04763,"15.5":0.07938,"15.6":0.42336,"16.0":0.05292,"16.1":0.16405,"16.2":0.24872,"16.3":1.2542,"16.4":0.61387,"16.5":0.01058},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00639,"8.1-8.4":0.00959,"9.0-9.2":0.07991,"9.3":0.07032,"10.0-10.2":0,"10.3":0.11508,"11.0-11.2":0.0032,"11.3-11.4":0.03516,"12.0-12.1":0.00639,"12.2-12.5":0.44751,"13.0-13.1":0.00639,"13.2":0.00639,"13.3":0.01598,"13.4-13.7":0.06073,"14.0-14.4":0.16622,"14.5-14.8":0.39957,"15.0-15.1":0.13425,"15.2-15.3":0.1822,"15.4":0.21097,"15.5":0.42194,"15.6":1.39369,"16.0":2.18004,"16.1":4.59022,"16.2":2.37183,"16.3":12.31304,"16.4":5.35419,"16.5":0.10868},P:{"4":0.30855,"20":4.49455,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01029,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.01029,"13.0":0.01029,"14.0":0.02057,"15.0":0.01029,"16.0":0.02057,"17.0":0.03086,"18.0":0.03086,"19.0":0.11314},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00933,"4.2-4.3":0.10265,"4.4":0,"4.4.3-4.4.4":0.09331},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00874,"9":0.05246,"10":0,"11":0.13989,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.56025},Q:{"13.1":0.00942},O:{"0":0.4143},H:{"0":0.36995},L:{"0":33.01333}}; diff --git a/node_modules/caniuse-lite/data/regions/NO.js b/node_modules/caniuse-lite/data/regions/NO.js new file mode 100644 index 0000000..20805a9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.02642,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01321,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00661,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.01982,"102":0.07926,"103":0,"104":0,"105":0.00661,"106":0,"107":0,"108":0.00661,"109":0.04624,"110":0.01982,"111":0.68032,"112":0.50198,"113":0.00661,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00661,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01982,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00661,"65":0,"66":0.1321,"67":0.00661,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00661,"78":0,"79":0.01321,"80":0,"81":0.00661,"83":0,"84":0,"85":2.7741,"86":0.01321,"87":0.02642,"88":0,"89":0.01982,"90":0.01321,"91":0.01321,"92":0.01321,"93":0.01982,"94":0.06605,"95":0.00661,"96":0.00661,"97":0.00661,"98":0.00661,"99":0.00661,"100":0.01321,"101":0.01982,"102":0.01321,"103":0.11889,"104":0.01321,"105":0.06605,"106":0.03963,"107":0.05284,"108":0.17173,"109":1.0502,"110":0.54161,"111":11.14924,"112":14.37909,"113":0.01982,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00661,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00661,"91":0,"92":0,"93":0,"94":0,"95":0.01982,"96":0.23778,"97":0.61427,"98":0.01321,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.01321,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00661,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01321,"103":0,"104":0.00661,"105":0.00661,"106":0.03963,"107":0.01321,"108":0.02642,"109":0.10568,"110":0.05284,"111":1.3144,"112":3.39497,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01321,"14":0.05284,"15":0.01321,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.02642,"12.1":0.01321,"13.1":0.07266,"14.1":0.21136,"15.1":0.05284,"15.2-15.3":0.03303,"15.4":0.07926,"15.5":0.11229,"15.6":0.48217,"16.0":0.03303,"16.1":0.16513,"16.2":0.25099,"16.3":1.34742,"16.4":0.68032,"16.5":0.00661},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00364,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04729,"10.0-10.2":0,"10.3":0.07275,"11.0-11.2":0,"11.3-11.4":0.20006,"12.0-12.1":0.00727,"12.2-12.5":0.32374,"13.0-13.1":0,"13.2":0,"13.3":0.01091,"13.4-13.7":0.02546,"14.0-14.4":0.12731,"14.5-14.8":0.4947,"15.0-15.1":0.1164,"15.2-15.3":0.24371,"15.4":0.24007,"15.5":0.5238,"15.6":1.77145,"16.0":2.77176,"16.1":5.73267,"16.2":2.81905,"16.3":14.21163,"16.4":5.52897,"16.5":0.07639},P:{"4":0.06155,"20":2.22602,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01026,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.01026,"17.0":0.01026,"18.0":0.02052,"19.0":0.04103},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01073,"4.2-4.3":0.12444,"4.4":0,"4.4.3-4.4.4":0.03218},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05284,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.4074},Q:{"13.1":0},O:{"0":0.01358},H:{"0":0.14142},L:{"0":17.63037}}; diff --git a/node_modules/caniuse-lite/data/regions/NP.js b/node_modules/caniuse-lite/data/regions/NP.js new file mode 100644 index 0000000..4f909eb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NP.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00327,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.0392,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00327,"87":0.25156,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00653,"103":0.01307,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00327,"110":0.00653,"111":0.20909,"112":0.20582,"113":0.0098,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00327,"66":0,"67":0,"68":0,"69":0.00327,"70":0,"71":0,"72":0.00327,"73":0,"74":0.00327,"75":0.00327,"76":0,"77":0,"78":0,"79":0.00653,"80":0,"81":0.00327,"83":0.00327,"84":0,"85":0,"86":0.00327,"87":0.00653,"88":0.00327,"89":0.20909,"90":0,"91":0.00327,"92":0,"93":0.00327,"94":0,"95":0.00327,"96":0.00327,"97":0.00327,"98":0.00327,"99":0.00327,"100":0.00653,"101":0.00327,"102":0.00327,"103":0.0294,"104":0.00653,"105":0.00327,"106":0.01307,"107":0.01307,"108":0.0196,"109":1.21206,"110":0.04247,"111":2.54826,"112":3.23106,"113":0.01307,"114":0.00327,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00327,"68":0.02614,"69":0.06207,"70":0,"71":0,"72":0,"73":0,"74":0.00327,"75":0.03267,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00653,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0098,"96":0.01634,"97":0.08821,"98":0.00327,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00327,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.08821,"90":0,"91":0,"92":0.00327,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00327,"101":0,"102":0,"103":0,"104":0.00327,"105":0,"106":0,"107":0.00327,"108":0.00327,"109":0.0098,"110":0.00653,"111":0.16008,"112":0.37571,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0392,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00327,"13.1":0.00653,"14.1":0.0098,"15.1":0,"15.2-15.3":0,"15.4":0.00327,"15.5":0.00327,"15.6":0.0294,"16.0":0.00327,"16.1":0.0098,"16.2":0.01307,"16.3":0.04901,"16.4":0.03594,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00251,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01002,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03383,"10.0-10.2":0,"10.3":0.0426,"11.0-11.2":0.01504,"11.3-11.4":0.00501,"12.0-12.1":0.01002,"12.2-12.5":0.53506,"13.0-13.1":0.00376,"13.2":0.00501,"13.3":0.02005,"13.4-13.7":0.05012,"14.0-14.4":0.14285,"14.5-14.8":0.32204,"15.0-15.1":0.05263,"15.2-15.3":0.09398,"15.4":0.08646,"15.5":0.19548,"15.6":0.66287,"16.0":0.39472,"16.1":1.1641,"16.2":0.61651,"16.3":4.50228,"16.4":1.82823,"16.5":0.05012},P:{"4":0.11198,"20":0.53952,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.03054,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01018,"12.0":0.01018,"13.0":0.02036,"14.0":0,"15.0":0.01018,"16.0":0.02036,"17.0":0.0509,"18.0":0.02036,"19.0":0.03054},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.21335},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00327,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.0808},Q:{"13.1":0},O:{"0":0.82143},H:{"0":0.4972},L:{"0":76.62102}}; diff --git a/node_modules/caniuse-lite/data/regions/NR.js b/node_modules/caniuse-lite/data/regions/NR.js new file mode 100644 index 0000000..25d28a0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00588,"110":0.00588,"111":0.0294,"112":0.0735,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02352,"79":0.03822,"80":0.02058,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.0147,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00882,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.1029,"110":0.00882,"111":1.21422,"112":1.97568,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.03822,"68":0,"69":0.12936,"70":0,"71":0,"72":0,"73":0.0294,"74":0,"75":0.00588,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00588,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0147,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00882,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00588,"109":0,"110":0,"111":0.47334,"112":0.5586,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00588,"15.6":0,"16.0":0,"16.1":0.00882,"16.2":0,"16.3":0.02058,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.02061,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.10305,"13.0-13.1":0,"13.2":0.22742,"13.3":0.04122,"13.4-13.7":0,"14.0-14.4":0.47475,"14.5-14.8":0,"15.0-15.1":0.61973,"15.2-15.3":0,"15.4":0.06183,"15.5":0.02061,"15.6":0.43353,"16.0":2.35526,"16.1":1.13641,"16.2":0.24803,"16.3":0.88837,"16.4":0.41292,"16.5":0},P:{"4":0,"20":1.3175,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.26132,"12.0":0,"13.0":0.3811,"14.0":0.19599,"15.0":0,"16.0":0.23955,"17.0":0.02178,"18.0":0,"19.0":1.3175},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0294},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":4.4478},H:{"0":2.13218},L:{"0":74.92574}}; diff --git a/node_modules/caniuse-lite/data/regions/NU.js b/node_modules/caniuse-lite/data/regions/NU.js new file mode 100644 index 0000000..9538734 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0.10319,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0.71971,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0.10319,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":1.64846,"16.0":0,"16.1":0.20639,"16.2":0.20639,"16.3":1.95539,"16.4":0.9261,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0.49817,"15.2-15.3":3.47782,"15.4":0,"15.5":0,"15.6":0,"16.0":5.96868,"16.1":27.85073,"16.2":10.94102,"16.3":21.38387,"16.4":10.44285,"16.5":12.43554},P:{"4":0,"20":0,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":0}}; diff --git a/node_modules/caniuse-lite/data/regions/NZ.js b/node_modules/caniuse-lite/data/regions/NZ.js new file mode 100644 index 0000000..d92177a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/NZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01677,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00559,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00559,"53":0,"54":0.00559,"55":0,"56":0,"57":0,"58":0,"59":0.00559,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00559,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02795,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00559,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00559,"97":0,"98":0,"99":0.00559,"100":0,"101":0.00559,"102":0.03913,"103":0.00559,"104":0.00559,"105":0,"106":0,"107":0.00559,"108":0.01118,"109":0.01677,"110":0.03354,"111":0.94471,"112":0.85527,"113":0.00559,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00559,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.01677,"35":0,"36":0,"37":0,"38":0.06149,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01677,"50":0,"51":0,"52":0,"53":0.00559,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00559,"60":0,"61":0.00559,"62":0,"63":0.00559,"64":0,"65":0.00559,"66":0.03354,"67":0.00559,"68":0.00559,"69":0.00559,"70":0,"71":0,"72":0.00559,"73":0.00559,"74":0.01118,"75":0,"76":0.01118,"77":0.00559,"78":0.00559,"79":0.08385,"80":0.00559,"81":0.00559,"83":0.01118,"84":0,"85":0.00559,"86":0.00559,"87":0.03913,"88":0.00559,"89":0.00559,"90":0.01118,"91":0.00559,"92":0.01677,"93":0.03913,"94":0.04472,"95":0.01118,"96":0.02236,"97":0.02236,"98":0.01677,"99":0.03354,"100":0.02236,"101":0.01677,"102":0.02236,"103":0.19565,"104":0.02236,"105":0.03913,"106":0.02795,"107":0.06149,"108":0.12857,"109":0.7267,"110":0.38571,"111":6.9875,"112":7.8819,"113":0.01118,"114":0.00559,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01118,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.02795,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00559,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00559,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01677,"96":0.14534,"97":0.35776,"98":0.00559,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00559,"15":0,"16":0,"17":0,"18":0.00559,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00559,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00559,"104":0,"105":0.00559,"106":0.00559,"107":0.00559,"108":0.02236,"109":0.03913,"110":0.03913,"111":1.0621,"112":2.36457,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01677,"14":0.10062,"15":0.01677,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.01118,"12.1":0.02795,"13.1":0.1677,"14.1":0.32981,"15.1":0.02795,"15.2-15.3":0.04472,"15.4":0.09503,"15.5":0.14534,"15.6":0.68198,"16.0":0.06708,"16.1":0.19565,"16.2":0.43043,"16.3":1.68818,"16.4":0.67639,"16.5":0.01118},G:{"8":0.00665,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0133,"7.0-7.1":0.00665,"8.1-8.4":0.02659,"9.0-9.2":0.02992,"9.3":0.15624,"10.0-10.2":0.00332,"10.3":0.2327,"11.0-11.2":0.01995,"11.3-11.4":0.09973,"12.0-12.1":0.02327,"12.2-12.5":0.96073,"13.0-13.1":0.00332,"13.2":0.00332,"13.3":0.03324,"13.4-13.7":0.08976,"14.0-14.4":0.23603,"14.5-14.8":0.58508,"15.0-15.1":0.20943,"15.2-15.3":0.22273,"15.4":0.24268,"15.5":0.46208,"15.6":1.57906,"16.0":1.57574,"16.1":4.26845,"16.2":3.10493,"16.3":12.65577,"16.4":4.54105,"16.5":0.08643},P:{"4":0.2331,"20":2.75482,"5.0-5.4":0.02119,"6.2-6.4":0,"7.2-7.4":0.0106,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0106,"12.0":0,"13.0":0.02119,"14.0":0.02119,"15.0":0.0106,"16.0":0.03179,"17.0":0.03179,"18.0":0.02119,"19.0":0.09536},I:{"0":0,"3":0,"4":0.01068,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00712,"4.2-4.3":0.01779,"4.4":0,"4.4.3-4.4.4":0.07473},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01553,"9":0,"10":0,"11":0.12422,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.41895},Q:{"13.1":0.00441},O:{"0":0.04851},H:{"0":0.21293},L:{"0":33.71501}}; diff --git a/node_modules/caniuse-lite/data/regions/OM.js b/node_modules/caniuse-lite/data/regions/OM.js new file mode 100644 index 0000000..97ccbfd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/OM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.0037,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01851,"103":0,"104":0,"105":0,"106":0,"107":0.0037,"108":0,"109":0,"110":0.0037,"111":0.08144,"112":0.08144,"113":0.0037,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0037,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0037,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.0037,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.0037,"63":0,"64":0,"65":0.0037,"66":0,"67":0,"68":0.0037,"69":0.0037,"70":0.0037,"71":0,"72":0.0074,"73":0,"74":0.0074,"75":0.0037,"76":0,"77":0,"78":0,"79":0.01851,"80":0,"81":0.0074,"83":0.0037,"84":0,"85":0.0037,"86":0.01481,"87":0.0074,"88":0.0074,"89":0.0037,"90":0,"91":0.0074,"92":0.0074,"93":0.03702,"94":0.0037,"95":0.01111,"96":0.0037,"97":0.0037,"98":0.0074,"99":0.04072,"100":0.02221,"101":0.0037,"102":0.0074,"103":0.05923,"104":0.0037,"105":0.0074,"106":0.01111,"107":0.01111,"108":0.02221,"109":0.75891,"110":0.05923,"111":3.30218,"112":3.94263,"113":0.01481,"114":0.0037,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.0074,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0037,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.0074,"70":0,"71":0,"72":0,"73":0,"74":0.0037,"75":0.0037,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01111,"96":0.03332,"97":0.12217,"98":0.0037,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.0037,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0037,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.0037,"108":0.0074,"109":0.02962,"110":0.02221,"111":0.29986,"112":0.61083,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0037,"14":0.01481,"15":0.0037,_:"0","3.1":0,"3.2":0,"5.1":0.0074,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.0037,"13.1":0.01481,"14.1":0.03332,"15.1":0.01851,"15.2-15.3":0.0037,"15.4":0.01481,"15.5":0.04813,"15.6":0.11846,"16.0":0.0074,"16.1":0.10366,"16.2":0.09625,"16.3":0.44054,"16.4":0.1814,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00229,"6.0-6.1":0,"7.0-7.1":0.03885,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06171,"10.0-10.2":0,"10.3":0.05256,"11.0-11.2":0.00914,"11.3-11.4":0.01371,"12.0-12.1":0.00457,"12.2-12.5":0.47079,"13.0-13.1":0.01143,"13.2":0.00914,"13.3":0.09827,"13.4-13.7":0.07999,"14.0-14.4":0.3131,"14.5-14.8":0.4685,"15.0-15.1":0.13255,"15.2-15.3":0.18512,"15.4":0.26967,"15.5":0.52792,"15.6":0.99871,"16.0":1.50378,"16.1":2.18254,"16.2":1.52206,"16.3":7.17152,"16.4":4.90214,"16.5":0.0937},P:{"4":0.15243,"20":2.60145,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.1321,"8.2":0,"9.2":0.02032,"10.1":0,"11.1-11.2":0.07113,"12.0":0.03049,"13.0":0.07113,"14.0":0.06097,"15.0":0.14227,"16.0":0.09146,"17.0":0.0813,"18.0":0.0813,"19.0":0.2134},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02166,"4.4":0,"4.4.3-4.4.4":0.15165},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.04442,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.06298},Q:{"13.1":0},O:{"0":1.41705},H:{"0":0.32794},L:{"0":59.91706}}; diff --git a/node_modules/caniuse-lite/data/regions/PA.js b/node_modules/caniuse-lite/data/regions/PA.js new file mode 100644 index 0000000..d238b8b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00449,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.03142,"74":0,"75":0,"76":0,"77":0,"78":0.00449,"79":0,"80":0,"81":0,"82":0,"83":0.01347,"84":0,"85":0,"86":0,"87":0,"88":0.00449,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.02245,"99":0,"100":0,"101":0,"102":0.00449,"103":0.00898,"104":0.03142,"105":0,"106":0,"107":0,"108":0.00449,"109":0.00449,"110":0.02693,"111":0.29627,"112":0.31872,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00449,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00898,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.02245,"69":0.00898,"70":0.00449,"71":0,"72":0,"73":0.01347,"74":0.01796,"75":0.00449,"76":0.00449,"77":0.00449,"78":0.00449,"79":0.05836,"80":0.00449,"81":0.02693,"83":0.01796,"84":0,"85":0.00449,"86":0.00449,"87":0.02693,"88":0.00898,"89":0.00898,"90":0.00449,"91":0.02245,"92":0.02245,"93":0.01796,"94":0.38157,"95":0.00449,"96":0.02245,"97":0.01347,"98":0.01347,"99":0.02693,"100":0.01796,"101":0.02693,"102":0.00898,"103":0.06734,"104":0.01347,"105":0.0404,"106":0.01796,"107":0.06734,"108":0.04489,"109":0.62397,"110":0.1212,"111":4.34086,"112":5.306,"113":0.00449,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01796,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00449,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00449,"64":0,"65":0,"66":0,"67":0.00449,"68":0.00449,"69":0.00898,"70":0,"71":0,"72":0,"73":0,"74":0.00449,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02245,"96":0.23792,"97":0.86638,"98":0.01347,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00449,"79":0,"80":0,"81":0,"83":0,"84":0.00449,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00449,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00449,"105":0,"106":0.00449,"107":0.00449,"108":0.00898,"109":0.02693,"110":0.03591,"111":0.60602,"112":1.29732,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00449,"13":0.00898,"14":0.01796,"15":0.00449,_:"0","3.1":0,"3.2":0,"5.1":0.00449,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00449,"13.1":0.03142,"14.1":0.11671,"15.1":0.00449,"15.2-15.3":0.00898,"15.4":0.00898,"15.5":0.03591,"15.6":0.14365,"16.0":0.02245,"16.1":0.04938,"16.2":0.1212,"16.3":0.31872,"16.4":0.13916,"16.5":0.01796},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00339,"6.0-6.1":0.01525,"7.0-7.1":0.08981,"8.1-8.4":0.00508,"9.0-9.2":0,"9.3":0.09659,"10.0-10.2":0,"10.3":0.04745,"11.0-11.2":0.01186,"11.3-11.4":0,"12.0-12.1":0.00678,"12.2-12.5":0.41346,"13.0-13.1":0.03389,"13.2":0.00169,"13.3":0.0322,"13.4-13.7":0.09489,"14.0-14.4":0.13387,"14.5-14.8":0.26265,"15.0-15.1":0.08981,"15.2-15.3":0.09659,"15.4":0.12539,"15.5":0.2762,"15.6":0.66763,"16.0":0.98451,"16.1":1.8809,"16.2":1.26071,"16.3":5.84095,"16.4":3.23311,"16.5":0.07625},P:{"4":0.28607,"20":3.10589,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.34737,"8.2":0,"9.2":0.02043,"10.1":0,"11.1-11.2":0.09195,"12.0":0.01022,"13.0":0.02043,"14.0":0.04087,"15.0":0.03065,"16.0":0.08173,"17.0":0.1226,"18.0":0.08173,"19.0":0.23499},I:{"0":0,"3":0,"4":0.06593,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01884,"4.2-4.3":0.03767,"4.4":0,"4.4.3-4.4.4":0.18836},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01459,"9":0.00486,"10":0.00486,"11":0.03404,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.27004},Q:{"13.1":0},O:{"0":0.12675},H:{"0":0.41218},L:{"0":59.17513}}; diff --git a/node_modules/caniuse-lite/data/regions/PE.js b/node_modules/caniuse-lite/data/regions/PE.js new file mode 100644 index 0000000..c396abd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.01129,"41":0.02257,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00564,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00564,"85":0,"86":0,"87":0,"88":0.01129,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00564,"98":0,"99":0,"100":0,"101":0,"102":0.00564,"103":0,"104":0.01693,"105":0,"106":0,"107":0,"108":0.00564,"109":0.01129,"110":0.04514,"111":0.24265,"112":0.25958,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00564,"35":0,"36":0,"37":0,"38":0.02822,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00564,"48":0,"49":0.01693,"50":0,"51":0,"52":0,"53":0.01129,"54":0,"55":0,"56":0.00564,"57":0,"58":0,"59":0,"60":0,"61":0.00564,"62":0.00564,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01693,"69":0,"70":0,"71":0,"72":0.00564,"73":0,"74":0.01129,"75":0,"76":0.00564,"77":0.00564,"78":0.00564,"79":0.33858,"80":0.01129,"81":0.02257,"83":0.00564,"84":0,"85":0.01129,"86":0.00564,"87":0.04514,"88":0.01129,"89":0.00564,"90":0.00564,"91":0.03386,"92":0.01129,"93":0.01693,"94":0.08465,"95":0.02822,"96":0.05079,"97":0.03386,"98":0.04514,"99":0.04514,"100":0.03386,"101":0.01693,"102":0.02822,"103":0.06772,"104":0.03386,"105":0.04514,"106":0.04514,"107":0.05643,"108":0.10157,"109":1.99762,"110":0.19186,"111":8.48707,"112":11.90673,"113":0.01129,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01129,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00564,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00564,"69":0.01129,"70":0,"71":0,"72":0,"73":0,"74":0.00564,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04514,"96":0.41758,"97":1.0496,"98":0.02822,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00564,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00564,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00564,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.01129,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.02257,"108":0.00564,"109":0.02822,"110":0.02822,"111":0.44015,"112":1.17939,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01129,"15":0.00564,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01693,"14.1":0.02257,"15.1":0.00564,"15.2-15.3":0,"15.4":0.01129,"15.5":0.01693,"15.6":0.05079,"16.0":0.00564,"16.1":0.04514,"16.2":0.03386,"16.3":0.13543,"16.4":0.06207,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0039,"6.0-6.1":0.00065,"7.0-7.1":0.0026,"8.1-8.4":0.0078,"9.0-9.2":0.0026,"9.3":0.01626,"10.0-10.2":0,"10.3":0.01431,"11.0-11.2":0.00911,"11.3-11.4":0.0026,"12.0-12.1":0.00325,"12.2-12.5":0.18146,"13.0-13.1":0.0052,"13.2":0.0013,"13.3":0.01041,"13.4-13.7":0.02537,"14.0-14.4":0.05984,"14.5-14.8":0.16455,"15.0-15.1":0.03967,"15.2-15.3":0.05463,"15.4":0.06374,"15.5":0.14764,"15.6":0.34146,"16.0":0.44942,"16.1":0.76877,"16.2":0.66535,"16.3":2.01427,"16.4":1.07705,"16.5":0.02016},P:{"4":0.32102,"20":0.74558,"5.0-5.4":0.02071,"6.2-6.4":0,"7.2-7.4":0.08284,"8.2":0,"9.2":0.01036,"10.1":0,"11.1-11.2":0.02071,"12.0":0,"13.0":0.06213,"14.0":0.02071,"15.0":0.01036,"16.0":0.05178,"17.0":0.05178,"18.0":0.03107,"19.0":0.08284},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00816,"4.2-4.3":0.00326,"4.4":0,"4.4.3-4.4.4":0.10115},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00564,"9":0,"10":0,"11":0.05079,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.07407},Q:{"13.1":0},O:{"0":0.02614},H:{"0":0.18975},L:{"0":62.26151}}; diff --git a/node_modules/caniuse-lite/data/regions/PF.js b/node_modules/caniuse-lite/data/regions/PF.js new file mode 100644 index 0000000..31d5767 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00984,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00492,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0246,"68":0.02951,"69":0,"70":0,"71":0,"72":0.02951,"73":0,"74":0,"75":0.13281,"76":0,"77":0,"78":0.08362,"79":0,"80":0,"81":0,"82":0.04919,"83":0.00984,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.27546,"92":0.00492,"93":0,"94":0.00492,"95":0,"96":0,"97":0.00492,"98":0.00984,"99":0.00492,"100":0,"101":0,"102":0.08362,"103":0,"104":0.01968,"105":0.00984,"106":0,"107":0.00492,"108":0.00492,"109":0.04919,"110":0.03935,"111":1.69706,"112":1.41175,"113":0.00984,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.09838,"41":0.00492,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00492,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00492,"58":0.01476,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00492,"66":0,"67":0.00492,"68":0,"69":0,"70":0.01476,"71":0.0246,"72":0.00492,"73":0.00984,"74":0.00492,"75":0.00492,"76":0.02951,"77":0,"78":0.00492,"79":0.15741,"80":0.01476,"81":0.14265,"83":0.00492,"84":0.01476,"85":0.32957,"86":0.0246,"87":0.30498,"88":0.00492,"89":0,"90":0,"91":0.01476,"92":0.01968,"93":0.00984,"94":0.00492,"95":0,"96":0.00984,"97":0,"98":0.02951,"99":0.00492,"100":0.01476,"101":0.00984,"102":0.00492,"103":0.1033,"104":0,"105":0.00984,"106":0.01968,"107":0.01968,"108":0.06887,"109":0.67882,"110":0.17708,"111":3.48757,"112":4.15656,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.03443,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0.01968,"66":0,"67":0,"68":0,"69":0.00492,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01476,"96":0.08854,"97":0.23119,"98":0.00492,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.04427,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0.00984,"87":0,"88":0,"89":0,"90":0.01476,"91":0,"92":0.02951,"93":0.03443,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00492,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00984,"106":0,"107":0,"108":0.00984,"109":0.13281,"110":0.0246,"111":0.55093,"112":1.51013,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00984,"14":0.0787,"15":0.00984,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00492,"10.1":0,"11.1":0.19676,"12.1":0.09838,"13.1":0.1033,"14.1":0.23119,"15.1":0.02951,"15.2-15.3":0.03443,"15.4":0.05411,"15.5":0.11806,"15.6":0.58536,"16.0":0.13281,"16.1":0.12298,"16.2":0.28038,"16.3":1.22483,"16.4":0.41812,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01504,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00602,"9.0-9.2":0,"9.3":0.19852,"10.0-10.2":0.05715,"10.3":0.08723,"11.0-11.2":0.00902,"11.3-11.4":0.03008,"12.0-12.1":0.02105,"12.2-12.5":0.66473,"13.0-13.1":0.01203,"13.2":0,"13.3":0.06316,"13.4-13.7":0.0391,"14.0-14.4":0.40305,"14.5-14.8":0.98957,"15.0-15.1":0.2677,"15.2-15.3":0.58351,"15.4":0.23762,"15.5":0.60457,"15.6":1.32644,"16.0":1.71746,"16.1":4.09664,"16.2":2.41527,"16.3":10.17542,"16.4":3.75675,"16.5":0.03309},P:{"4":0.07215,"20":3.5972,"5.0-5.4":0.01031,"6.2-6.4":0,"7.2-7.4":0.07215,"8.2":0,"9.2":0.01031,"10.1":0,"11.1-11.2":0.03092,"12.0":0.01031,"13.0":0.12369,"14.0":0.03092,"15.0":0,"16.0":0.07215,"17.0":0.03092,"18.0":0.05154,"19.0":0.21645},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.1533},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.15741,"5.5":0},S:{"2.5":0.00508,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.52334},Q:{"13.1":0},O:{"0":0.03049},H:{"0":1.00537},L:{"0":41.97523}}; diff --git a/node_modules/caniuse-lite/data/regions/PG.js b/node_modules/caniuse-lite/data/regions/PG.js new file mode 100644 index 0000000..affc364 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.00386,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00386,"78":0.00386,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.05021,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00772,"98":0.00772,"99":0.00386,"100":0,"101":0.00386,"102":0.00386,"103":0.00386,"104":0.00386,"105":0.01159,"106":0.00386,"107":0.00386,"108":0.02317,"109":0.04248,"110":0.07338,"111":0.34372,"112":0.23172,"113":0.00386,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00386,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00772,"41":0,"42":0,"43":0.00386,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00386,"56":0,"57":0,"58":0,"59":0,"60":0.00386,"61":0,"62":0,"63":0.00386,"64":0.00772,"65":0.00386,"66":0.00772,"67":0.00772,"68":0.00772,"69":0.04634,"70":0.01159,"71":0,"72":0,"73":0,"74":0.00386,"75":0,"76":0.00386,"77":0,"78":0.00386,"79":0.00386,"80":0.00386,"81":0.01159,"83":0,"84":0.00386,"85":0.00386,"86":0.00386,"87":0.01159,"88":0.06179,"89":0.00772,"90":0.00772,"91":0.00386,"92":0.01545,"93":0,"94":0.00386,"95":0.00386,"96":0.00386,"97":0.00386,"98":0.00772,"99":0.02317,"100":0.01159,"101":0.00386,"102":0.00772,"103":0.15448,"104":0.01545,"105":0.01931,"106":0.0309,"107":0.05407,"108":0.05793,"109":0.50206,"110":0.09655,"111":1.85762,"112":1.92714,"113":0.00386,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00772,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00772,"62":0,"63":0.00772,"64":0.00386,"65":0,"66":0,"67":0.00772,"68":0.02317,"69":0.03476,"70":0,"71":0,"72":0.00386,"73":0.01159,"74":0.11586,"75":0.01159,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00772,"95":0.05407,"96":0.01931,"97":0.23558,"98":0.00386,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.01545,"13":0.00772,"14":0.00386,"15":0.00386,"16":0.01545,"17":0.02317,"18":0.05021,"79":0,"80":0.01159,"81":0,"83":0,"84":0.03476,"85":0.00772,"86":0,"87":0,"88":0,"89":0.0309,"90":0.01931,"91":0,"92":0.0309,"93":0.00386,"94":0,"95":0,"96":0,"97":0,"98":0.00386,"99":0.00386,"100":0.02317,"101":0.00772,"102":0.00386,"103":0.00772,"104":0.00772,"105":0.0309,"106":0.00772,"107":0.02317,"108":0.01931,"109":0.02317,"110":0.10041,"111":0.54454,"112":1.16632,"113":0.00386},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00386,"14":0.00772,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00386,"14.1":0.01545,"15.1":0.00386,"15.2-15.3":0.00386,"15.4":0,"15.5":0.01159,"15.6":0.01931,"16.0":0.00772,"16.1":0.00772,"16.2":0.00772,"16.3":0.04248,"16.4":0.01159,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00116,"7.0-7.1":0.00155,"8.1-8.4":0,"9.0-9.2":0.00271,"9.3":0.02904,"10.0-10.2":0.00116,"10.3":0.00232,"11.0-11.2":0.00465,"11.3-11.4":0.01471,"12.0-12.1":0.01162,"12.2-12.5":0.26292,"13.0-13.1":0.00736,"13.2":0.00194,"13.3":0.0213,"13.4-13.7":0.11771,"14.0-14.4":0.07512,"14.5-14.8":0.0395,"15.0-15.1":0.13591,"15.2-15.3":0.10842,"15.4":0.08945,"15.5":0.75739,"15.6":0.21606,"16.0":0.07241,"16.1":0.27918,"16.2":0.20716,"16.3":0.60018,"16.4":0.52893,"16.5":0.00077},P:{"4":0.09227,"20":1.6404,"5.0-5.4":0.03076,"6.2-6.4":0,"7.2-7.4":0.30757,"8.2":0,"9.2":0.0205,"10.1":0,"11.1-11.2":0.10252,"12.0":0.01025,"13.0":0.14353,"14.0":0.11278,"15.0":0.06151,"16.0":0.50237,"17.0":0.08202,"18.0":0.22555,"19.0":0.38959},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0098,"4.2-4.3":0.01714,"4.4":0,"4.4.3-4.4.4":0.1494},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00832,"11":0.04575,"5.5":0},S:{"2.5":0.02455,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.23324},Q:{"13.1":0.00614},O:{"0":1.74319},H:{"0":1.06342},L:{"0":77.38964}}; diff --git a/node_modules/caniuse-lite/data/regions/PH.js b/node_modules/caniuse-lite/data/regions/PH.js new file mode 100644 index 0000000..0e344f0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.03393,"57":0,"58":0,"59":0.00566,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00566,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00566,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00566,"109":0.00566,"110":0.00566,"111":0.22055,"112":0.20924,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00566,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.01697,"67":0,"68":0,"69":0.00566,"70":0,"71":0,"72":0,"73":0,"74":0.01131,"75":0.00566,"76":0.00566,"77":0,"78":0.01131,"79":0.03959,"80":0.00566,"81":0.00566,"83":0.01697,"84":0.00566,"85":0.00566,"86":0.01131,"87":0.03959,"88":0.01131,"89":0.01131,"90":0.01131,"91":0.02828,"92":0.01697,"93":0.164,"94":0.02262,"95":0.01131,"96":0.02262,"97":0.02262,"98":0.01131,"99":0.08483,"100":0.01131,"101":0.01131,"102":0.03393,"103":0.24317,"104":0.02828,"105":0.04524,"106":0.07917,"107":0.06786,"108":0.13007,"109":1.32893,"110":0.31103,"111":9.95846,"112":10.80671,"113":0.01697,"114":0.00566,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01131,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00566,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00566,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.01131,"68":0.01131,"69":0.02828,"70":0,"71":0,"72":0,"73":0,"74":0.01697,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01697,"96":0.164,"97":0.34496,"98":0.00566,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00566,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00566,"104":0.00566,"105":0,"106":0,"107":0.00566,"108":0.00566,"109":0.02828,"110":0.02828,"111":0.76343,"112":1.65126,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00566,"14":0.01131,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00566,"12.1":0,"13.1":0.01131,"14.1":0.02262,"15.1":0.00566,"15.2-15.3":0.00566,"15.4":0.01131,"15.5":0.01697,"15.6":0.07352,"16.0":0.00566,"16.1":0.03393,"16.2":0.03393,"16.3":0.15269,"16.4":0.06786,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00939,"6.0-6.1":0.00085,"7.0-7.1":0.01792,"8.1-8.4":0.00341,"9.0-9.2":0,"9.3":0.099,"10.0-10.2":0.00427,"10.3":0.04267,"11.0-11.2":0.01195,"11.3-11.4":0.02816,"12.0-12.1":0.00853,"12.2-12.5":0.39858,"13.0-13.1":0.00341,"13.2":0.00597,"13.3":0.02048,"13.4-13.7":0.04353,"14.0-14.4":0.12802,"14.5-14.8":0.22617,"15.0-15.1":0.06828,"15.2-15.3":0.09303,"15.4":0.12632,"15.5":0.18606,"15.6":0.40797,"16.0":0.60939,"16.1":0.89957,"16.2":0.57525,"16.3":2.27368,"16.4":1.3357,"16.5":0.02987},P:{"4":0.19707,"20":0.61194,"5.0-5.4":0.02074,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01037,"12.0":0,"13.0":0.01037,"14.0":0,"15.0":0.01037,"16.0":0.02074,"17.0":0.02074,"18.0":0.01037,"19.0":0.05186},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.12393},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.66729,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.06952},Q:{"13.1":0},O:{"0":0.38236},H:{"0":0.3949},L:{"0":60.41778}}; diff --git a/node_modules/caniuse-lite/data/regions/PK.js b/node_modules/caniuse-lite/data/regions/PK.js new file mode 100644 index 0000000..e6f0a61 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PK.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00514,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00257,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00257,"98":0.00257,"99":0,"100":0,"101":0,"102":0.00257,"103":0,"104":0,"105":0,"106":0.00257,"107":0.00772,"108":0.00257,"109":0.00257,"110":0.01029,"111":0.08745,"112":0.07716,"113":0.00257,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00772,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00257,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00257,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00257,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00257,"64":0.00514,"65":0.00257,"66":0.00257,"67":0.00257,"68":0.00772,"69":0.00257,"70":0.00257,"71":0.00257,"72":0.00514,"73":0.00257,"74":0.01286,"75":0.00514,"76":0.00257,"77":0.00257,"78":0.00257,"79":0.00514,"80":0.00514,"81":0.00772,"83":0.00772,"84":0.01286,"85":0.07202,"86":0.01029,"87":0.01286,"88":0.00257,"89":0.00514,"90":0.00514,"91":0.00514,"92":0.00257,"93":0.00772,"94":0.00772,"95":0.00514,"96":0.00257,"97":0.00257,"98":0.00257,"99":0.00514,"100":0.00257,"101":0.00257,"102":0.00514,"103":0.018,"104":0.00514,"105":0.01029,"106":0.01543,"107":0.018,"108":0.02829,"109":0.81532,"110":0.04887,"111":1.38374,"112":1.71295,"113":0.00514,"114":0.00257,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00257,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.01543,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00257,"62":0,"63":0.00257,"64":0.00257,"65":0,"66":0.00257,"67":0.00772,"68":0.02829,"69":0.09002,"70":0,"71":0,"72":0,"73":0,"74":0.00514,"75":0.00257,"76":0,"77":0,"78":0,"79":0.00257,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00257,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02315,"96":0.02058,"97":0.09516,"98":0.00514,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00257,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00257,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00257,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00257,"108":0.00257,"109":0.01286,"110":0.01029,"111":0.07459,"112":0.15432,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00514,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00514,"6.1":0,"7.1":0,"9.1":0.00514,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00257,"14.1":0.00514,"15.1":0,"15.2-15.3":0,"15.4":0.00257,"15.5":0.00257,"15.6":0.01543,"16.0":0,"16.1":0.00772,"16.2":0.00772,"16.3":0.02315,"16.4":0.01029,"16.5":0},G:{"8":0.00123,"3.2":0.00061,"4.0-4.1":0,"4.2-4.3":0.00123,"5.0-5.1":0.00922,"6.0-6.1":0.00246,"7.0-7.1":0.09645,"8.1-8.4":0.00922,"9.0-9.2":0.00369,"9.3":0.06942,"10.0-10.2":0.00307,"10.3":0.05099,"11.0-11.2":0.0129,"11.3-11.4":0.0043,"12.0-12.1":0.0086,"12.2-12.5":0.34097,"13.0-13.1":0.00491,"13.2":0.00491,"13.3":0.01597,"13.4-13.7":0.05161,"14.0-14.4":0.12594,"14.5-14.8":0.15482,"15.0-15.1":0.04485,"15.2-15.3":0.05714,"15.4":0.05714,"15.5":0.13086,"15.6":0.22486,"16.0":0.31025,"16.1":0.52159,"16.2":0.28199,"16.3":1.66369,"16.4":0.90188,"16.5":0.02519},P:{"4":0.20131,"20":0.83543,"5.0-5.4":0.01007,"6.2-6.4":0.01007,"7.2-7.4":0.0302,"8.2":0,"9.2":0.02013,"10.1":0,"11.1-11.2":0.01007,"12.0":0.01007,"13.0":0.0302,"14.0":0.01007,"15.0":0.01007,"16.0":0.0302,"17.0":0.07046,"18.0":0.0302,"19.0":0.08052},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01056,"4.4":0,"4.4.3-4.4.4":0.11831},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00257,"9":0,"10":0,"11":0.02315,"5.5":0},S:{"2.5":0.08914,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.05942},Q:{"13.1":0},O:{"0":3.01577},H:{"0":1.28692},L:{"0":81.9827}}; diff --git a/node_modules/caniuse-lite/data/regions/PL.js b/node_modules/caniuse-lite/data/regions/PL.js new file mode 100644 index 0000000..82e1294 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01767,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00442,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01325,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00442,"88":0.00442,"89":0,"90":0,"91":0.00442,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00442,"100":0.00442,"101":0,"102":0.04418,"103":0.00442,"104":0.00442,"105":0.00442,"106":0.00442,"107":0.00884,"108":0.01325,"109":0.01325,"110":0.03093,"111":1.13984,"112":1.01172,"113":0.00442,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00884,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00442,"59":0,"60":0.00442,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00442,"79":0.16347,"80":0,"81":0.00442,"83":0.00442,"84":0.00884,"85":0.01767,"86":0.01325,"87":0.00884,"88":0,"89":0.01325,"90":0.00442,"91":0.00442,"92":0.00442,"93":0.00442,"94":0.01325,"95":0.01767,"96":0.00884,"97":0.00442,"98":0.00442,"99":0.02651,"100":0.00442,"101":0.00442,"102":0.01325,"103":0.02209,"104":0.13696,"105":0.01325,"106":0.01767,"107":0.01767,"108":0.03976,"109":0.50807,"110":0.08394,"111":3.44162,"112":4.14408,"113":0.00442,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00442,"69":0.01325,"70":0,"71":0,"72":0,"73":0,"74":0.03093,"75":0.00442,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00884,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00442,"94":0.00442,"95":0.0972,"96":1.05148,"97":2.38572,"98":0.06185,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00884,"108":0.00442,"109":0.02209,"110":0.03093,"111":0.41087,"112":0.7599,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00442,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00884,"14.1":0.01767,"15.1":0.00442,"15.2-15.3":0.00442,"15.4":0.00884,"15.5":0.01325,"15.6":0.04418,"16.0":0.00884,"16.1":0.02651,"16.2":0.03093,"16.3":0.13254,"16.4":0.08394,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00967,"10.0-10.2":0,"10.3":0.01796,"11.0-11.2":0,"11.3-11.4":0.00276,"12.0-12.1":0.00138,"12.2-12.5":0.06633,"13.0-13.1":0.00276,"13.2":0,"13.3":0.00691,"13.4-13.7":0.02625,"14.0-14.4":0.08291,"14.5-14.8":0.1976,"15.0-15.1":0.03869,"15.2-15.3":0.076,"15.4":0.08982,"15.5":0.1976,"15.6":0.49745,"16.0":0.8498,"16.1":2.02433,"16.2":1.09438,"16.3":5.07118,"16.4":2.78431,"16.5":0.08291},P:{"4":0.01019,"20":2.44442,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01019,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01019,"12.0":0,"13.0":0.01019,"14.0":0.02037,"15.0":0.01019,"16.0":0.02037,"17.0":0.03056,"18.0":0.05093,"19.0":0.11204},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01091,"4.4":0,"4.4.3-4.4.4":0.01909},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01325,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.64751},Q:{"13.1":0},O:{"0":0.03349},H:{"0":2.60535},L:{"0":60.76415}}; diff --git a/node_modules/caniuse-lite/data/regions/PM.js b/node_modules/caniuse-lite/data/regions/PM.js new file mode 100644 index 0000000..1ea6ed2 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.05781,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00526,"89":0,"90":0,"91":0.00526,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.03153,"103":0,"104":0,"105":0,"106":0,"107":0.00526,"108":0.00526,"109":0,"110":0.03153,"111":0.32581,"112":0.40464,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00526,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00526,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.00526,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.11561,"103":0.05255,"104":0,"105":0,"106":0.00526,"107":0,"108":0.59382,"109":1.2612,"110":0.42566,"111":4.45624,"112":4.07263,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.01051,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.01577,"95":0.01577,"96":0.13663,"97":0.70417,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00526,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.02102,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.02102,"109":0.00526,"110":0.01051,"111":1.3663,"112":1.90231,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0.01577,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.04204,"14.1":0.11036,"15.1":0.18393,"15.2-15.3":0.09985,"15.4":0.01577,"15.5":0.04204,"15.6":1.5765,"16.0":0.07883,"16.1":0.23648,"16.2":0.59382,"16.3":2.95857,"16.4":2.58021,"16.5":0.05255},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01185,"10.0-10.2":0.25471,"10.3":0.04739,"11.0-11.2":0.05924,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":1.58751,"13.0-13.1":0.05924,"13.2":0,"13.3":0.17771,"13.4-13.7":0.13624,"14.0-14.4":0.19548,"14.5-14.8":0.55681,"15.0-15.1":0.62197,"15.2-15.3":1.42165,"15.4":0.29618,"15.5":1.17286,"15.6":3.18095,"16.0":2.18579,"16.1":7.08457,"16.2":4.45451,"16.3":20.98716,"16.4":10.76903,"16.5":1.7356},P:{"4":0,"20":0.89156,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0.01061,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0.18043,"19.0":0.12737},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01051,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04271},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":14.69371}}; diff --git a/node_modules/caniuse-lite/data/regions/PN.js b/node_modules/caniuse-lite/data/regions/PN.js new file mode 100644 index 0000000..1519d9c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":11.97875,"112":0,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":3.99611,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":19.96139,"110":0,"111":0,"112":55.89764,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0,"16.3":8.16611,"16.4":0,"16.5":0},P:{"4":0,"20":0,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":0}}; diff --git a/node_modules/caniuse-lite/data/regions/PR.js b/node_modules/caniuse-lite/data/regions/PR.js new file mode 100644 index 0000000..e851096 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.1116,"39":0,"40":0,"41":0,"42":0,"43":0.08248,"44":0.37846,"45":0.08734,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00485,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.02426,"74":0,"75":0,"76":0,"77":0,"78":0.00485,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00485,"101":0,"102":0.00485,"103":0,"104":0.03882,"105":0.00485,"106":0,"107":0.00485,"108":0,"109":0.00485,"110":0.02426,"111":0.48035,"112":0.47064,"113":0.00485,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.08248,"48":1.07714,"49":0.22319,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.01941,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00485,"75":0,"76":0,"77":0.00485,"78":0,"79":0.02426,"80":0.00485,"81":0.00485,"83":0,"84":0.00485,"85":0.00485,"86":0,"87":0.02911,"88":0.00485,"89":0.15526,"90":0.00485,"91":0.0097,"92":0,"93":0.0097,"94":0,"95":0,"96":0,"97":0.00485,"98":0.00485,"99":0.00485,"100":0.0097,"101":0.00485,"102":0.00485,"103":0.1213,"104":0.0097,"105":0.0097,"106":0.01941,"107":0.01941,"108":0.04852,"109":0.43183,"110":0.20378,"111":3.90586,"112":4.81318,"113":0.0097,"114":0.00485,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00485,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00485,"75":0.0097,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00485,"96":0.14071,"97":0.32508,"98":0.00485,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.04367,"13":0.03882,"14":0,"15":0,"16":0,"17":0,"18":0.01456,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00485,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00485,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00485,"106":0.01456,"107":0.0097,"108":0.01456,"109":0.05822,"110":0.04367,"111":0.8588,"112":2.13973,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0.02911,"9":0.13586,"10":0,"11":0,"12":0,"13":0.00485,"14":0.05822,"15":0.01456,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00485,"13.1":0.10189,"14.1":0.19408,"15.1":0.01941,"15.2-15.3":0.01941,"15.4":0.07278,"15.5":0.17952,"15.6":0.52402,"16.0":0.06308,"16.1":0.22319,"16.2":0.2426,"16.3":1.28578,"16.4":0.41242,"16.5":0.0097},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.08153,"9.3":0.09706,"10.0-10.2":0,"10.3":0.01941,"11.0-11.2":0.00388,"11.3-11.4":0.01941,"12.0-12.1":0.01553,"12.2-12.5":0.16695,"13.0-13.1":0.00776,"13.2":0,"13.3":0.04271,"13.4-13.7":0.066,"14.0-14.4":0.27954,"14.5-14.8":0.74155,"15.0-15.1":0.29507,"15.2-15.3":0.34942,"15.4":0.25624,"15.5":0.67167,"15.6":2.04219,"16.0":2.98563,"16.1":4.92687,"16.2":3.21858,"16.3":14.85827,"16.4":6.72447,"16.5":0.18636},P:{"4":0.22882,"20":2.35064,"5.0-5.4":0.0104,"6.2-6.4":0,"7.2-7.4":0.0208,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0208,"12.0":0,"13.0":0.0312,"14.0":0.0104,"15.0":0.0104,"16.0":0.10401,"17.0":0.0208,"18.0":0.07281,"19.0":0.17682},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01951,"4.2-4.3":0.08778,"4.4":0,"4.4.3-4.4.4":0.18531},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0097,"9":0.07278,"10":0,"11":0.14556,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.23681},Q:{"13.1":0},O:{"0":0.03604},H:{"0":0.19983},L:{"0":35.37658}}; diff --git a/node_modules/caniuse-lite/data/regions/PS.js b/node_modules/caniuse-lite/data/regions/PS.js new file mode 100644 index 0000000..0116105 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00387,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.01162,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00387,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00387,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00387,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00387,"109":0.01162,"110":0.02712,"111":0.22469,"112":0.13559,"113":0.00387,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00387,"35":0,"36":0,"37":0,"38":0.00775,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00387,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0.00387,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00387,"64":0,"65":0,"66":0,"67":0,"68":0.00387,"69":0.00387,"70":0,"71":0.00387,"72":0,"73":0.00775,"74":0.00387,"75":0,"76":0.00387,"77":0.06198,"78":0.00387,"79":0.04649,"80":0.00387,"81":0.01162,"83":0.00775,"84":0.00387,"85":0.00387,"86":0.00775,"87":0.01162,"88":0.00387,"89":0.01162,"90":0.00387,"91":0.00387,"92":0.00387,"93":0.00387,"94":0,"95":0.02324,"96":0.00775,"97":0.01162,"98":0.01162,"99":0.00775,"100":0.07361,"101":0.00387,"102":0.00775,"103":0.02712,"104":0.00775,"105":0.00775,"106":0.00775,"107":0.0155,"108":0.05811,"109":0.81741,"110":1.96799,"111":4.21879,"112":2.8009,"113":0,"114":0.00387,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00387,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00387,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0155,"69":0.05036,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0155,"96":0.06198,"97":0.16658,"98":0.00775,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00387,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00387,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00387,"108":0.00387,"109":0.01162,"110":0.02712,"111":0.24406,"112":0.46488,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00387,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.0155,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00775,"14.1":0.0155,"15.1":0,"15.2-15.3":0,"15.4":0.00387,"15.5":0.01162,"15.6":0.04649,"16.0":0.00387,"16.1":0.7748,"16.2":0.02712,"16.3":0.09298,"16.4":0.03487,"16.5":0},G:{"8":0.05022,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00295,"6.0-6.1":0.01034,"7.0-7.1":0.18611,"8.1-8.4":0.40472,"9.0-9.2":0.02363,"9.3":0.03102,"10.0-10.2":0.00148,"10.3":0.01329,"11.0-11.2":0.02511,"11.3-11.4":0.00148,"12.0-12.1":0.00295,"12.2-12.5":0.16396,"13.0-13.1":0.00295,"13.2":0.00295,"13.3":0.01772,"13.4-13.7":0.0325,"14.0-14.4":0.1226,"14.5-14.8":0.37813,"15.0-15.1":0.06056,"15.2-15.3":0.12851,"15.4":0.10044,"15.5":0.22304,"15.6":0.59231,"16.0":1.19791,"16.1":1.35152,"16.2":0.90545,"16.3":5.00581,"16.4":2.73259,"16.5":0.07976},P:{"4":0.47788,"20":2.88764,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.06101,"8.2":0,"9.2":0.01017,"10.1":0.01017,"11.1-11.2":0.07117,"12.0":0.02034,"13.0":0.07117,"14.0":0.07117,"15.0":0.05084,"16.0":0.14235,"17.0":0.16268,"18.0":0.10168,"19.0":0.26436},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00739,"4.4":0,"4.4.3-4.4.4":0.13297},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00417,"9":0,"10":0.00417,"11":0.04589,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09189},Q:{"13.1":0},O:{"0":0.07351},H:{"0":0.27839},L:{"0":66.22814}}; diff --git a/node_modules/caniuse-lite/data/regions/PT.js b/node_modules/caniuse-lite/data/regions/PT.js new file mode 100644 index 0000000..83e2c5a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01784,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00595,"76":0,"77":0,"78":0.01784,"79":0,"80":0,"81":0,"82":0.00595,"83":0.00595,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00595,"92":0,"93":0,"94":0,"95":0.00595,"96":0,"97":0,"98":0,"99":0,"100":0.00595,"101":0.00595,"102":0.04758,"103":0,"104":0.00595,"105":0,"106":0.00595,"107":0.00595,"108":0.01189,"109":0.01189,"110":0.02974,"111":0.86826,"112":0.85042,"113":0.00595,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.03568,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00595,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.02379,"80":0.00595,"81":0.00595,"83":0,"84":0,"85":0.02379,"86":0.00595,"87":0.02379,"88":0.01189,"89":0.04163,"90":0.00595,"91":0.04758,"92":0.00595,"93":0.07136,"94":0.05947,"95":0.00595,"96":0.00595,"97":0.01189,"98":0.00595,"99":0.01784,"100":0.02379,"101":0.01189,"102":0.01189,"103":0.07731,"104":0.01784,"105":0.02379,"106":0.03568,"107":0.02974,"108":0.08326,"109":0.91584,"110":0.20815,"111":8.92645,"112":10.62729,"113":0.01784,"114":0.00595,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.00595,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00595,"69":0.02974,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00595,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00595,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02974,"96":0.96341,"97":1.96846,"98":0.04758,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00595,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00595,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00595,"107":0.00595,"108":0.01784,"109":0.06542,"110":0.05352,"111":1.15967,"112":2.61073,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00595,"14":0.03568,"15":0.01189,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00595,"12.1":0.01189,"13.1":0.05947,"14.1":0.11299,"15.1":0.01189,"15.2-15.3":0.01784,"15.4":0.02379,"15.5":0.05352,"15.6":0.23788,"16.0":0.04163,"16.1":0.10705,"16.2":0.13083,"16.3":0.63633,"16.4":0.28546,"16.5":0.00595},G:{"8":0.00213,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00213,"7.0-7.1":0,"8.1-8.4":0.00427,"9.0-9.2":0,"9.3":0.06617,"10.0-10.2":0,"10.3":0.11099,"11.0-11.2":0.00427,"11.3-11.4":0.01067,"12.0-12.1":0.00427,"12.2-12.5":0.37353,"13.0-13.1":0.00427,"13.2":0.00213,"13.3":0.01281,"13.4-13.7":0.04909,"14.0-14.4":0.14087,"14.5-14.8":0.37993,"15.0-15.1":0.08324,"15.2-15.3":0.10245,"15.4":0.13447,"15.5":0.24119,"15.6":0.79829,"16.0":1.34471,"16.1":2.42689,"16.2":1.31056,"16.3":8.46529,"16.4":4.00426,"16.5":0.20918},P:{"4":0.06126,"20":1.6641,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01021,"12.0":0.01021,"13.0":0.02042,"14.0":0.01021,"15.0":0,"16.0":0.03063,"17.0":0.02042,"18.0":0.01021,"19.0":0.05105},I:{"0":0,"3":0,"4":0.019,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0095,"4.2-4.3":0.02375,"4.4":0,"4.4.3-4.4.4":0.13775},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01189,"9":0,"10":0,"11":0.07136,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.19454},Q:{"13.1":0},O:{"0":0.16212},H:{"0":0.27627},L:{"0":41.85721}}; diff --git a/node_modules/caniuse-lite/data/regions/PW.js b/node_modules/caniuse-lite/data/regions/PW.js new file mode 100644 index 0000000..1d3b213 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.075,"106":0,"107":0,"108":0,"109":0,"110":0.09375,"111":0.475,"112":0.03125,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00625,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.00625,"77":0,"78":0.0375,"79":0.03125,"80":0,"81":0,"83":0.00625,"84":0,"85":0,"86":0.0875,"87":0.04375,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.01875,"94":0,"95":0,"96":0,"97":0.00625,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.25,"104":0.0125,"105":0.00625,"106":0.00625,"107":0,"108":0.575,"109":0.825,"110":0.1625,"111":5.61875,"112":21.73125,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.0375,"97":0.34375,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.04375,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.0125,"110":0,"111":1.21875,"112":1.05625,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00625,"14":0.00625,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.1,"14.1":0.875,"15.1":0,"15.2-15.3":0.00625,"15.4":0.0125,"15.5":0.00625,"15.6":0.30625,"16.0":0,"16.1":0.25625,"16.2":0.06875,"16.3":0.725,"16.4":0.13125,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.11054,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.00867,"14.0-14.4":0.01734,"14.5-14.8":0.20807,"15.0-15.1":0.04768,"15.2-15.3":0.0802,"15.4":0.0867,"15.5":0.22975,"15.6":0.4595,"16.0":0.77594,"16.1":1.56923,"16.2":3.03442,"16.3":8.85184,"16.4":3.77135,"16.5":0.03251},P:{"4":0,"20":1.23023,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":1.12856,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.01017,"14.0":0.0305,"15.0":0.25418,"16.0":0.02033,"17.0":0.0305,"18.0":0.53886,"19.0":0.10167},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.1575},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.04375,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0.05625},O:{"0":0.22125},H:{"0":0.10296},L:{"0":39.06375}}; diff --git a/node_modules/caniuse-lite/data/regions/PY.js b/node_modules/caniuse-lite/data/regions/PY.js new file mode 100644 index 0000000..f05420c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/PY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00765,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.0051,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.0306,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00255,"70":0,"71":0,"72":0,"73":0.01275,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00255,"85":0,"86":0,"87":0,"88":0.00255,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00255,"103":0,"104":0,"105":0.00255,"106":0,"107":0,"108":0.00255,"109":0.0153,"110":0.01275,"111":0.1275,"112":0.1377,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00255,"48":0,"49":0.0051,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00765,"65":0.0051,"66":0,"67":0,"68":0.0051,"69":0.01785,"70":0.0051,"71":0,"72":0,"73":0.00255,"74":0.00255,"75":0,"76":0,"77":0,"78":0,"79":0.02295,"80":0,"81":0.00255,"83":0.0051,"84":0,"85":0,"86":0,"87":0.2193,"88":0.00255,"89":0.02295,"90":0.00255,"91":0.0459,"92":0.00255,"93":0.00255,"94":0.00255,"95":0.01785,"96":0.0051,"97":0.0051,"98":0.0051,"99":0.0051,"100":0.0102,"101":0.00255,"102":0.0051,"103":0.0102,"104":0.00765,"105":0.0051,"106":0.00765,"107":0.102,"108":0.01785,"109":0.4998,"110":0.0357,"111":1.38465,"112":1.73145,"113":0.00255,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00255,"68":0.00255,"69":0.00765,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00765,"96":0.07395,"97":0.17085,"98":0.00255,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00255,"18":0,"79":0,"80":0.00765,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00255,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00255,"107":0,"108":0.00255,"109":0.00765,"110":0.0102,"111":0.1326,"112":0.31365,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00765,"14":0.00255,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.0051,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00255,"14.1":0.0051,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00255,"15.6":0.01275,"16.0":0,"16.1":0.01275,"16.2":0.00765,"16.3":0.04335,"16.4":0.01785,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00271,"6.0-6.1":0,"7.0-7.1":0.04704,"8.1-8.4":0.00181,"9.0-9.2":0,"9.3":0.04071,"10.0-10.2":0,"10.3":0.01267,"11.0-11.2":0.00814,"11.3-11.4":0.00543,"12.0-12.1":0.0009,"12.2-12.5":0.26144,"13.0-13.1":0.00271,"13.2":0.00271,"13.3":0.02352,"13.4-13.7":0.02171,"14.0-14.4":0.13479,"14.5-14.8":0.20807,"15.0-15.1":0.02352,"15.2-15.3":0.04071,"15.4":0.04976,"15.5":0.1357,"15.6":0.37724,"16.0":0.5455,"16.1":0.91731,"16.2":0.48308,"16.3":3.08664,"16.4":1.37506,"16.5":0.05156},P:{"4":0.4776,"20":2.59124,"5.0-5.4":0.01016,"6.2-6.4":0.01016,"7.2-7.4":0.75197,"8.2":0,"9.2":0.04065,"10.1":0,"11.1-11.2":0.06097,"12.0":0.02032,"13.0":0.07113,"14.0":0.07113,"15.0":0.03049,"16.0":0.26421,"17.0":0.39631,"18.0":0.10162,"19.0":0.29469},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01993,"4.2-4.3":0.05979,"4.4":0,"4.4.3-4.4.4":0.12954},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00765,"9":0,"10":0,"11":0.0102,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.11175},Q:{"13.1":0},O:{"0":0.03725},H:{"0":0.19749},L:{"0":79.07975}}; diff --git a/node_modules/caniuse-lite/data/regions/QA.js b/node_modules/caniuse-lite/data/regions/QA.js new file mode 100644 index 0000000..e48a054 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/QA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0.05229,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00327,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00327,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00327,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00654,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00654,"103":0,"104":0,"105":0,"106":0,"107":0.02288,"108":0,"109":0,"110":0.00327,"111":0.08824,"112":0.0817,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00327,"35":0,"36":0,"37":0,"38":0.00327,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00327,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00327,"69":0,"70":0,"71":0,"72":0,"73":0.00327,"74":0.00327,"75":0.00327,"76":0.00327,"77":0,"78":0.00327,"79":0.01307,"80":0,"81":0.00327,"83":0,"84":0.00327,"85":0.00327,"86":0.00327,"87":0.00654,"88":0.00327,"89":0.00327,"90":0,"91":0.00327,"92":0,"93":0.00327,"94":0.00327,"95":0.00327,"96":0.00327,"97":0.00327,"98":0.00327,"99":0.00654,"100":0.00327,"101":0.00327,"102":0.00327,"103":0.03268,"104":0.00327,"105":0.0098,"106":0.0098,"107":0.0098,"108":0.02288,"109":0.41177,"110":0.05882,"111":2.44446,"112":2.68303,"113":0.00327,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00327,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0098,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00327,"64":0,"65":0,"66":0,"67":0.00327,"68":0.01634,"69":0.06536,"70":0,"71":0,"72":0,"73":0,"74":0.00654,"75":0.00654,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00327,"93":0,"94":0,"95":0.00654,"96":0.0719,"97":0.17647,"98":0.00654,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00327,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00327,"108":0.0098,"109":0.01961,"110":0.01961,"111":0.28432,"112":0.57517,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0.00327,"10":0,"11":0,"12":0,"13":0.00327,"14":0.0098,"15":0.00327,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00327,"13.1":0.02288,"14.1":0.02941,"15.1":0.00327,"15.2-15.3":0.00327,"15.4":0.01961,"15.5":0.02941,"15.6":0.08824,"16.0":0.00654,"16.1":0.03268,"16.2":0.04575,"16.3":0.22876,"16.4":0.11765,"16.5":0.00327},G:{"8":0.00215,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00215,"6.0-6.1":0,"7.0-7.1":0.02366,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04731,"10.0-10.2":0,"10.3":0.03441,"11.0-11.2":0.0129,"11.3-11.4":0.00645,"12.0-12.1":0.0043,"12.2-12.5":0.23656,"13.0-13.1":0.0043,"13.2":0,"13.3":0.01505,"13.4-13.7":0.03656,"14.0-14.4":0.12688,"14.5-14.8":0.30322,"15.0-15.1":0.08602,"15.2-15.3":0.11398,"15.4":0.14193,"15.5":0.25591,"15.6":0.72903,"16.0":1.12472,"16.1":1.87956,"16.2":1.2301,"16.3":7.23436,"16.4":6.19136,"16.5":0.2043},P:{"4":0.06075,"20":2.18689,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.0405,"8.2":0,"9.2":0.01012,"10.1":0,"11.1-11.2":0.01012,"12.0":0.01012,"13.0":0.01012,"14.0":0.02025,"15.0":0.01012,"16.0":0.02025,"17.0":0.0405,"18.0":0.05062,"19.0":0.09112},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00965,"4.4":0,"4.4.3-4.4.4":0.04342},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0817,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10098},Q:{"13.1":0},O:{"0":4.08632},H:{"0":0.89865},L:{"0":61.51479}}; diff --git a/node_modules/caniuse-lite/data/regions/RE.js b/node_modules/caniuse-lite/data/regions/RE.js new file mode 100644 index 0000000..d1a3987 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00915,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00457,"69":0,"70":0.01372,"71":0,"72":0.00915,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.08231,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00915,"86":0,"87":0,"88":0.00457,"89":0.01829,"90":0,"91":0.10975,"92":0.00457,"93":0.00457,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00457,"100":0.00457,"101":0,"102":0.08231,"103":0.00457,"104":0.00457,"105":0.01829,"106":0,"107":0.00457,"108":0.02744,"109":0.02744,"110":0.03201,"111":1.17983,"112":1.0838,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00457,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00457,"48":0,"49":0.01829,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00457,"59":0,"60":0,"61":0.00457,"62":0,"63":0.00457,"64":0,"65":0,"66":0,"67":0,"68":0.00457,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00915,"80":0,"81":0.00457,"83":0.01372,"84":0,"85":0.00915,"86":0.00457,"87":0.01372,"88":0.00457,"89":0,"90":0.00457,"91":0.00457,"92":0.00457,"93":0,"94":0.00457,"95":0.00457,"96":0,"97":0.00457,"98":0,"99":0.00457,"100":0.00915,"101":0.00457,"102":0,"103":0.05945,"104":0.00915,"105":0.01372,"106":0.00915,"107":0.03201,"108":0.02287,"109":0.61736,"110":0.16463,"111":3.52578,"112":4.95713,"113":0,"114":0.00457,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00457,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00457,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00457,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00915,"96":0.21036,"97":0.63107,"98":0.01829,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00457,"18":0.00457,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01829,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.01829,"108":0.01829,"109":0.03201,"110":0.03201,"111":0.80485,"112":2.27735,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.05488,"15":0.00915,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00457,"12.1":0.01372,"13.1":0.13719,"14.1":0.16006,"15.1":0.01372,"15.2-15.3":0.01372,"15.4":0.03658,"15.5":0.05488,"15.6":0.21493,"16.0":0.03201,"16.1":0.06402,"16.2":0.08231,"16.3":0.53961,"16.4":0.24237,"16.5":0.00457},G:{"8":0.03371,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00259,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.17113,"10.0-10.2":0,"10.3":0.21002,"11.0-11.2":0.00778,"11.3-11.4":0.00778,"12.0-12.1":0.01037,"12.2-12.5":0.96972,"13.0-13.1":0.00519,"13.2":0,"13.3":0.01556,"13.4-13.7":0.05704,"14.0-14.4":0.20483,"14.5-14.8":0.30077,"15.0-15.1":0.14001,"15.2-15.3":0.17113,"15.4":0.34485,"15.5":0.41226,"15.6":1.10974,"16.0":1.5583,"16.1":3.51849,"16.2":1.8098,"16.3":9.50017,"16.4":4.06817,"16.5":0.22817},P:{"4":0.02086,"20":2.68115,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05216,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02086,"12.0":0,"13.0":0.02086,"14.0":0.07303,"15.0":0.02086,"16.0":0.07303,"17.0":0.04173,"18.0":0.06259,"19.0":0.15649},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01903,"4.4":0,"4.4.3-4.4.4":0.157},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02287,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.41245},Q:{"13.1":0},O:{"0":0.06512},H:{"0":0.20038},L:{"0":50.90645}}; diff --git a/node_modules/caniuse-lite/data/regions/RO.js b/node_modules/caniuse-lite/data/regions/RO.js new file mode 100644 index 0000000..62b2e0b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.03642,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00455,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00455,"79":0,"80":0,"81":0,"82":0,"83":0.00455,"84":0,"85":0,"86":0,"87":0,"88":0.00455,"89":0,"90":0,"91":0.00455,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00455,"100":0,"101":0.01821,"102":0.03186,"103":0.36416,"104":0.00455,"105":0.00455,"106":0.00455,"107":0.00455,"108":0.04097,"109":0.01366,"110":0.01821,"111":2.2669,"112":2.17586,"113":0.00455,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.00455,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.01366,"50":0,"51":0.00455,"52":0,"53":0.00455,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.16842,"61":0.00455,"62":0,"63":0.00455,"64":0.00455,"65":0.00455,"66":0,"67":0.00455,"68":0,"69":0,"70":0.00455,"71":0,"72":0,"73":0,"74":0.00455,"75":0.00455,"76":0.00455,"77":0.00455,"78":0,"79":0.02276,"80":0.00455,"81":0.0091,"83":0,"84":0.00455,"85":0.0091,"86":0.00455,"87":0.0091,"88":0.0091,"89":0.00455,"90":0.00455,"91":0.01366,"92":0.00455,"93":0.00455,"94":0.01821,"95":0.00455,"96":0.00455,"97":0.01821,"98":0.0091,"99":0.01366,"100":0.01366,"101":0.00455,"102":0.0091,"103":0.02276,"104":0.0091,"105":0.01821,"106":0.01821,"107":0.01821,"108":0.05007,"109":1.00144,"110":0.11835,"111":4.3335,"112":4.76139,"113":0.0091,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00455,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00455,"70":0,"71":0,"72":0,"73":0,"74":0.00455,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.01366,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04552,"96":0.26857,"97":0.72377,"98":0.02276,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00455,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00455,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00455,"108":0.0091,"109":0.02276,"110":0.01821,"111":0.32319,"112":0.65094,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0091,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00455,"13.1":0.01366,"14.1":0.02276,"15.1":0.00455,"15.2-15.3":0.00455,"15.4":0.0091,"15.5":0.02731,"15.6":0.05462,"16.0":0.0091,"16.1":0.05462,"16.2":0.03186,"16.3":0.14566,"16.4":0.08194,"16.5":0},G:{"8":0.00786,"3.2":0.03143,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.11591,"6.0-6.1":0,"7.0-7.1":0.01179,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02357,"10.0-10.2":0,"10.3":0.05304,"11.0-11.2":0.02947,"11.3-11.4":0.00786,"12.0-12.1":0.01768,"12.2-12.5":0.17681,"13.0-13.1":0.00393,"13.2":0.00393,"13.3":0.01965,"13.4-13.7":0.05304,"14.0-14.4":0.18663,"14.5-14.8":0.41452,"15.0-15.1":0.09626,"15.2-15.3":0.13359,"15.4":0.17092,"15.5":0.28879,"15.6":0.90567,"16.0":1.45771,"16.1":2.40856,"16.2":1.36931,"16.3":6.52041,"16.4":4.13346,"16.5":0.12966},P:{"4":0.21316,"20":3.1162,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01015,"8.2":0,"9.2":0.01015,"10.1":0,"11.1-11.2":0.03045,"12.0":0.01015,"13.0":0.0406,"14.0":0.0406,"15.0":0.01015,"16.0":0.05075,"17.0":0.0406,"18.0":0.07105,"19.0":0.21316},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02709,"4.2-4.3":0.03792,"4.4":0,"4.4.3-4.4.4":0.20044},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0052,"9":0,"10":0,"11":0.03121,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00545},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.23426},Q:{"13.1":0},O:{"0":0.04358},H:{"0":0.26305},L:{"0":55.7544}}; diff --git a/node_modules/caniuse-lite/data/regions/RS.js b/node_modules/caniuse-lite/data/regions/RS.js new file mode 100644 index 0000000..74dd623 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.04462,"53":0,"54":0,"55":0,"56":0.00446,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00446,"67":0,"68":0.00892,"69":0,"70":0,"71":0,"72":0.00446,"73":0.02231,"74":0,"75":0,"76":0,"77":0.00446,"78":0.01339,"79":0,"80":0,"81":0,"82":0.00446,"83":0,"84":0.00446,"85":0,"86":0,"87":0,"88":0.00892,"89":0.00446,"90":0,"91":0.00446,"92":0.07585,"93":0.00446,"94":0.00446,"95":0.00446,"96":0,"97":0,"98":0,"99":0.02677,"100":0.00446,"101":0,"102":0.02677,"103":0.00446,"104":0.00446,"105":0.00892,"106":0.00892,"107":0.00892,"108":0.01339,"109":0.01339,"110":0.10709,"111":0.92363,"112":0.79424,"113":0.00446,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00446,"39":0,"40":0,"41":0,"42":0,"43":0.00446,"44":0,"45":0,"46":0,"47":0,"48":0.00892,"49":0.08478,"50":0,"51":0,"52":0,"53":0.00446,"54":0,"55":0,"56":0.00446,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00446,"65":0,"66":0.00446,"67":0,"68":0.02677,"69":0,"70":0.00446,"71":0.00446,"72":0.00446,"73":0.00446,"74":0.00446,"75":0.00892,"76":0.00446,"77":0.00446,"78":0.00446,"79":0.06693,"80":0.00446,"81":0.01785,"83":0.01339,"84":0.01339,"85":0.02231,"86":0.01339,"87":0.03123,"88":0.00892,"89":0.01339,"90":0.00446,"91":0.00446,"92":0.00446,"93":0.00446,"94":0.00446,"95":0.00892,"96":0.01339,"97":0.02231,"98":0.00892,"99":0.02231,"100":0.02231,"101":0.00892,"102":0.00892,"103":0.04462,"104":0.01339,"105":0.02677,"106":0.02677,"107":0.0357,"108":0.07585,"109":2.23546,"110":0.12494,"111":4.27906,"112":4.72526,"113":0.00446,"114":0.00446,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00892,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00446,"37":0,"38":0,"39":0,"40":0.01339,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00446,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00446,"69":0.02231,"70":0,"71":0,"72":0,"73":0,"74":0.00446,"75":0.00446,"76":0,"77":0,"78":0,"79":0.00446,"80":0,"81":0,"82":0,"83":0.00446,"84":0,"85":0.02231,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.12047,"96":0.1874,"97":0.69607,"98":0.03123,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00446,"16":0,"17":0,"18":0.00446,"79":0,"80":0,"81":0,"83":0,"84":0.00446,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00446,"109":0.01785,"110":0.02231,"111":0.27664,"112":0.54883,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00892,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00446,"13.1":0.02231,"14.1":0.02231,"15.1":0.00446,"15.2-15.3":0,"15.4":0.00446,"15.5":0.00892,"15.6":0.04462,"16.0":0.00892,"16.1":0.01339,"16.2":0.02231,"16.3":0.08924,"16.4":0.08032,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00594,"6.0-6.1":0.00297,"7.0-7.1":0.03268,"8.1-8.4":0.01931,"9.0-9.2":0.00297,"9.3":0.05941,"10.0-10.2":0.00594,"10.3":0.07872,"11.0-11.2":0.02525,"11.3-11.4":0.00594,"12.0-12.1":0.00446,"12.2-12.5":0.27032,"13.0-13.1":0.00594,"13.2":0.00743,"13.3":0.03416,"13.4-13.7":0.09209,"14.0-14.4":0.13813,"14.5-14.8":0.43815,"15.0-15.1":0.05941,"15.2-15.3":0.10842,"15.4":0.13813,"15.5":0.27032,"15.6":0.90304,"16.0":1.06047,"16.1":1.69468,"16.2":1.02037,"16.3":4.90878,"16.4":2.38681,"16.5":0.06535},P:{"4":0.08144,"20":2.58583,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.01018,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0509,"12.0":0.01018,"13.0":0.03054,"14.0":0.04072,"15.0":0.01018,"16.0":0.03054,"17.0":0.03054,"18.0":0.0509,"19.0":0.14253},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02308,"4.2-4.3":0.00888,"4.4":0,"4.4.3-4.4.4":0.06036},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.03526,"9":0.00504,"10":0.01008,"11":0.10579,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.27136},Q:{"13.1":0},O:{"0":0.02769},H:{"0":0.44041},L:{"0":63.50944}}; diff --git a/node_modules/caniuse-lite/data/regions/RU.js b/node_modules/caniuse-lite/data/regions/RU.js new file mode 100644 index 0000000..9a26bd0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00626,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00626,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00626,"51":0,"52":0.13144,"53":0.00626,"54":0,"55":0,"56":0.00626,"57":0,"58":0,"59":0,"60":0.00626,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01252,"69":0,"70":0.00626,"71":0,"72":0.01252,"73":0,"74":0,"75":0.01252,"76":0,"77":0.00626,"78":0.01252,"79":0.00626,"80":0.00626,"81":0.00626,"82":0.00626,"83":0.00626,"84":0.01252,"85":0,"86":0,"87":0,"88":0.00626,"89":0.00626,"90":0.00626,"91":0.01878,"92":0,"93":0.00626,"94":0,"95":0.00626,"96":0.00626,"97":0.00626,"98":0.00626,"99":0.01878,"100":0.01252,"101":0.00626,"102":0.05633,"103":0.00626,"104":0.01878,"105":0.01252,"106":0.01252,"107":0.02504,"108":0.01878,"109":0.04381,"110":0.05633,"111":0.81367,"112":0.68223,"113":0.00626,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00626,"23":0,"24":0,"25":0.01878,"26":0.00626,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00626,"39":0,"40":0,"41":0.00626,"42":0,"43":0,"44":0.00626,"45":0.00626,"46":0,"47":0.00626,"48":0.00626,"49":0.05633,"50":0,"51":0.05007,"52":0.00626,"53":0.00626,"54":0,"55":0.01252,"56":0.03755,"57":0,"58":0.00626,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00626,"65":0.00626,"66":0.01252,"67":0.00626,"68":0.00626,"69":0.00626,"70":0.01252,"71":0.01252,"72":0.01878,"73":0.00626,"74":0.01878,"75":0.01252,"76":0.02504,"77":0.00626,"78":0.01252,"79":0.06885,"80":0.0313,"81":0.10014,"83":0.02504,"84":0.0313,"85":0.06885,"86":0.06259,"87":0.06259,"88":0.03755,"89":0.04381,"90":0.56331,"91":0.55705,"92":0.54453,"93":0.56957,"94":0.55079,"95":0.01252,"96":0.01878,"97":0.0313,"98":0.06259,"99":0.08763,"100":0.0313,"101":0.02504,"102":0.1064,"103":0.17525,"104":0.45691,"105":0.09389,"106":0.14396,"107":0.18777,"108":0.25662,"109":2.17813,"110":0.32547,"111":5.24504,"112":4.82569,"113":0.00626,"114":0.00626,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00626,"35":0,"36":0.03755,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00626,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00626,"68":0.00626,"69":0.00626,"70":0.00626,"71":0,"72":0.00626,"73":0.00626,"74":0.01878,"75":0.00626,"76":0.00626,"77":0.00626,"78":0,"79":0.02504,"80":0,"81":0,"82":0.00626,"83":0.00626,"84":0.01252,"85":0.06885,"86":0.02504,"87":0.00626,"88":0,"89":0.00626,"90":0.00626,"91":0.00626,"92":0.00626,"93":0.00626,"94":0.01252,"95":0.66971,"96":0.50698,"97":2.03418,"98":0.09389,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00626},B:{"12":0,"13":0.00626,"14":0,"15":0,"16":0,"17":0.00626,"18":0.01878,"79":0,"80":0,"81":0,"83":0.00626,"84":0.00626,"85":0.00626,"86":0.00626,"87":0,"88":0,"89":0.00626,"90":0.00626,"91":0,"92":0.01252,"93":0,"94":0,"95":0,"96":0,"97":0.00626,"98":0.00626,"99":0.00626,"100":0,"101":0,"102":0,"103":0.00626,"104":0.00626,"105":0.00626,"106":0,"107":0.01252,"108":0.01878,"109":0.05007,"110":0.0313,"111":0.55079,"112":1.27058,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.05633,"14":0.08763,"15":0.01878,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.0313,"10.1":0,"11.1":0.00626,"12.1":0.01252,"13.1":0.09389,"14.1":0.11266,"15.1":0.0313,"15.2-15.3":0.0313,"15.4":0.03755,"15.5":0.04381,"15.6":0.16899,"16.0":0.01252,"16.1":0.06259,"16.2":0.06259,"16.3":0.28166,"16.4":0.15022,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00177,"6.0-6.1":0,"7.0-7.1":0.02296,"8.1-8.4":0.02296,"9.0-9.2":0.02472,"9.3":0.10595,"10.0-10.2":0.01413,"10.3":0.09536,"11.0-11.2":0.07063,"11.3-11.4":0.03179,"12.0-12.1":0.02119,"12.2-12.5":0.35141,"13.0-13.1":0.01589,"13.2":0.0106,"13.3":0.05121,"13.4-13.7":0.09536,"14.0-14.4":0.31786,"14.5-14.8":0.61629,"15.0-15.1":0.30196,"15.2-15.3":0.5898,"15.4":0.25075,"15.5":0.34434,"15.6":0.6675,"16.0":1.72172,"16.1":2.19673,"16.2":1.39327,"16.3":4.35462,"16.4":2.80949,"16.5":0.0671},P:{"4":0.05359,"20":0.86811,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.0643,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02143,"12.0":0,"13.0":0.02143,"14.0":0.01072,"15.0":0.01072,"16.0":0.02143,"17.0":0.02143,"18.0":0.02143,"19.0":0.07502},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00453,"4.2-4.3":0.03399,"4.4":0,"4.4.3-4.4.4":0.07025},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.0129,"9":0.00645,"10":0,"11":0.19346,"5.5":0},S:{"2.5":0.00374,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.1459},Q:{"13.1":0.00748},O:{"0":0.15338},H:{"0":0.62689},L:{"0":36.09214}}; diff --git a/node_modules/caniuse-lite/data/regions/RW.js b/node_modules/caniuse-lite/data/regions/RW.js new file mode 100644 index 0000000..968a2c0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/RW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00467,"35":0,"36":0,"37":0.00467,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00467,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.03269,"69":0,"70":0,"71":0,"72":0.00467,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00467,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01401,"103":0,"104":0,"105":0.00467,"106":0,"107":0.00467,"108":0.00467,"109":0.00467,"110":0.02335,"111":0.44365,"112":0.39695,"113":0.02802,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00934,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00467,"35":0,"36":0,"37":0,"38":0.00934,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00467,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00467,"56":0,"57":0,"58":0.00934,"59":0.00467,"60":0,"61":0.00467,"62":0,"63":0,"64":0.00934,"65":0.00467,"66":0.00467,"67":0,"68":0.00934,"69":0.01401,"70":0.00467,"71":0,"72":0.00934,"73":0,"74":0.00934,"75":0.00934,"76":0.00467,"77":0.00467,"78":0.00467,"79":0.00934,"80":0.07472,"81":0.00467,"83":0.01401,"84":0.01868,"85":0,"86":0.00467,"87":0.02335,"88":0.00934,"89":0.00934,"90":0.00467,"91":0.00467,"92":0.01401,"93":0.02802,"94":0.00467,"95":0.01401,"96":0.00467,"97":0.01401,"98":0.00934,"99":0.00934,"100":0.00467,"101":0.00934,"102":0.01401,"103":0.06538,"104":0.02802,"105":0.02335,"106":0.04203,"107":0.09807,"108":0.07005,"109":1.00405,"110":0.21015,"111":6.31851,"112":6.19242,"113":0.02802,"114":0.02335,"115":0,"116":0},F:{"9":0,"11":0.00467,"12":0,"15":0,"16":0.01401,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00467,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.00467,"32":0,"33":0.00467,"34":0,"35":0.00467,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.00934,"52":0,"53":0.00934,"54":0,"55":0.00467,"56":0.00934,"57":0.00467,"58":0.00934,"60":0.07005,"62":0,"63":0.1401,"64":0.00934,"65":0.00467,"66":0.05137,"67":0.16812,"68":0.36893,"69":0.25685,"70":0,"71":0,"72":0,"73":0.05137,"74":0.00934,"75":0.00467,"76":0,"77":0,"78":0,"79":0.00467,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.03269,"96":0.0467,"97":0.33157,"98":0.02335,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00467},B:{"12":0.02335,"13":0.01401,"14":0.00934,"15":0.00467,"16":0.00467,"17":0.00467,"18":0.03736,"79":0,"80":0,"81":0,"83":0,"84":0.00934,"85":0,"86":0,"87":0,"88":0,"89":0.00934,"90":0.00467,"91":0,"92":0.0467,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00934,"101":0,"102":0,"103":0,"104":0.00467,"105":0.00467,"106":0.00467,"107":0.00934,"108":0.00934,"109":0.01868,"110":0.06538,"111":0.62578,"112":1.02273,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00934,"14":0.00467,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00934,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00467,"13.1":0.03736,"14.1":0.02335,"15.1":0.00934,"15.2-15.3":0,"15.4":0.01401,"15.5":0.00467,"15.6":0.09807,"16.0":0.00467,"16.1":0.02335,"16.2":0.04203,"16.3":0.03736,"16.4":0.02335,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00118,"6.0-6.1":0,"7.0-7.1":0.00118,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06745,"10.0-10.2":0,"10.3":0.08756,"11.0-11.2":0.0071,"11.3-11.4":0.00828,"12.0-12.1":0.01302,"12.2-12.5":1.11699,"13.0-13.1":0.00473,"13.2":0.00355,"13.3":0.04733,"13.4-13.7":0.07455,"14.0-14.4":0.24848,"14.5-14.8":0.33013,"15.0-15.1":0.11596,"15.2-15.3":0.20825,"15.4":0.18695,"15.5":0.24493,"15.6":0.523,"16.0":0.38574,"16.1":0.66972,"16.2":0.69339,"16.3":2.65049,"16.4":2.0281,"16.5":0.02721},P:{"4":0.13357,"20":0.80139,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.24658,"8.2":0,"9.2":0.02055,"10.1":0,"11.1-11.2":0.01027,"12.0":0,"13.0":0.01027,"14.0":0,"15.0":0.01027,"16.0":0.03082,"17.0":0.07192,"18.0":0.02055,"19.0":0.20549},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00416,"4.2-4.3":0.00416,"4.4":0,"4.4.3-4.4.4":0.10304},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.04203,"5.5":0},S:{"2.5":0.06396,_:"3.0-3.1"},J:{"7":0,"10":0.01066},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09594},Q:{"13.1":0},O:{"0":0.20254},H:{"0":7.87192},L:{"0":56.58461}}; diff --git a/node_modules/caniuse-lite/data/regions/SA.js b/node_modules/caniuse-lite/data/regions/SA.js new file mode 100644 index 0000000..d2d63eb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0023,"103":0,"104":0.0092,"105":0,"106":0,"107":0,"108":0,"109":0.0023,"110":0.0069,"111":0.06437,"112":0.04368,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.0023,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.0023,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0023,"68":0.0023,"69":0.0023,"70":0,"71":0,"72":0,"73":0,"74":0.0023,"75":0,"76":0.0023,"77":0,"78":0.0023,"79":0.0092,"80":0,"81":0.0023,"83":0.0023,"84":0.0023,"85":0.0023,"86":0.0023,"87":0.0046,"88":0.0046,"89":0.0023,"90":0.0023,"91":0.0023,"92":0.0046,"93":0.0069,"94":0.0069,"95":0.0023,"96":0.0023,"97":0.0023,"98":0.0023,"99":0.02069,"100":0.0023,"101":0.0023,"102":0.0046,"103":0.01379,"104":0.0023,"105":0.0069,"106":0.0069,"107":0.0092,"108":0.02069,"109":0.25059,"110":0.04368,"111":1.23916,"112":1.24376,"113":0.0023,"114":0.0023,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.0023,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.0023,"69":0.0046,"70":0,"71":0,"72":0,"73":0,"74":0.0046,"75":0.0023,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.0023,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0023,"96":0.01609,"97":0.04368,"98":0.0023,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.0023,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0023,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.0023,"108":0.0046,"109":0.0092,"110":0.01379,"111":0.21841,"112":0.28048,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0023,"14":0.01379,"15":0.0046,_:"0","3.1":0,"3.2":0,"5.1":0.0069,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0069,"14.1":0.02759,"15.1":0.0046,"15.2-15.3":0.0046,"15.4":0.01379,"15.5":0.02069,"15.6":0.09886,"16.0":0.0115,"16.1":0.05288,"16.2":0.04138,"16.3":0.17013,"16.4":0.08736,"16.5":0.0023},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01928,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04628,"10.0-10.2":0,"10.3":0.08484,"11.0-11.2":0.00386,"11.3-11.4":0.00386,"12.0-12.1":0.027,"12.2-12.5":0.45121,"13.0-13.1":0.03471,"13.2":0.01928,"13.3":0.06942,"13.4-13.7":0.1774,"14.0-14.4":0.96026,"14.5-14.8":1.29192,"15.0-15.1":0.47049,"15.2-15.3":0.52062,"15.4":0.66717,"15.5":1.12223,"15.6":2.2946,"16.0":3.33584,"16.1":4.20355,"16.2":3.07746,"16.3":10.80967,"16.4":7.11132,"16.5":0.08099},P:{"4":0.03091,"20":1.74132,"5.0-5.4":0.0103,"6.2-6.4":0,"7.2-7.4":0.05152,"8.2":0,"9.2":0.0103,"10.1":0,"11.1-11.2":0.02061,"12.0":0,"13.0":0.02061,"14.0":0.03091,"15.0":0.0103,"16.0":0.06182,"17.0":0.03091,"18.0":0.05152,"19.0":0.15455},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.08609},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01379,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.06931},Q:{"13.1":0},O:{"0":1.87904},H:{"0":0.26976},L:{"0":53.03662}}; diff --git a/node_modules/caniuse-lite/data/regions/SB.js b/node_modules/caniuse-lite/data/regions/SB.js new file mode 100644 index 0000000..d42d18a --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SB.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00372,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0.00744,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00372,"89":0,"90":0,"91":0,"92":0.00744,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00372,"103":0,"104":0,"105":0,"106":0,"107":0.00372,"108":0,"109":0,"110":0.24924,"111":0.36456,"112":0.17856,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.02232,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02232,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00372,"70":0,"71":0,"72":0,"73":0,"74":0.00372,"75":0,"76":0,"77":0,"78":0,"79":0.00372,"80":0.00372,"81":0.00744,"83":0.00744,"84":0,"85":0,"86":0.00372,"87":0.01116,"88":0,"89":0.00744,"90":0.00744,"91":0,"92":0,"93":0,"94":0.02604,"95":0,"96":0,"97":0.01116,"98":0,"99":0,"100":0.01488,"101":0,"102":0.01488,"103":0.42036,"104":0.04092,"105":0.01116,"106":0.01488,"107":0.0186,"108":0.17856,"109":0.38316,"110":0.06696,"111":2.18364,"112":2.7714,"113":0.00744,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0.00372,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00372,"44":0,"45":0.00372,"46":0,"47":0,"48":0,"49":0,"50":0.00744,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00744,"64":0.00372,"65":0,"66":0,"67":0.03348,"68":0.0186,"69":0.0558,"70":0,"71":0,"72":0,"73":0.00744,"74":0.09672,"75":0.00372,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00372,"96":0.0186,"97":0.093,"98":0.00372,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.01488,"13":0.02232,"14":0.5766,"15":0.02976,"16":0.02976,"17":0.0186,"18":0.03348,"79":0,"80":0,"81":0,"83":0,"84":0.00744,"85":0,"86":0,"87":0,"88":0.00372,"89":0.02232,"90":0.00372,"91":0,"92":0.00372,"93":0,"94":0.00372,"95":0.00372,"96":0.00372,"97":0.00372,"98":0,"99":0,"100":0,"101":0.00744,"102":0.00372,"103":0.01116,"104":0.00372,"105":0.00744,"106":0.01488,"107":0.02232,"108":0.03348,"109":0.11904,"110":0.13764,"111":0.59892,"112":1.11228,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00744,"14":0.00744,"15":0.00372,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00744,"13.1":0,"14.1":0.01116,"15.1":0,"15.2-15.3":0,"15.4":0.00744,"15.5":0.00744,"15.6":0.0558,"16.0":0,"16.1":0,"16.2":0.00372,"16.3":0.04464,"16.4":0.02976,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.02054,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.03082,"9.3":0.01541,"10.0-10.2":0,"10.3":0.13261,"11.0-11.2":0.00233,"11.3-11.4":0.00233,"12.0-12.1":0,"12.2-12.5":0.20125,"13.0-13.1":0.01027,"13.2":0,"13.3":0.08171,"13.4-13.7":0.05883,"14.0-14.4":0.10739,"14.5-14.8":0.14475,"15.0-15.1":0.06864,"15.2-15.3":0.14522,"15.4":0.10179,"15.5":0.12981,"15.6":0.07891,"16.0":0.26008,"16.1":0.20125,"16.2":0.60421,"16.3":1.18787,"16.4":0.32358,"16.5":0},P:{"4":0.25372,"20":1.53249,"5.0-5.4":0,"6.2-6.4":0.03045,"7.2-7.4":0.24357,"8.2":0,"9.2":0.0203,"10.1":0.01015,"11.1-11.2":0.06089,"12.0":0.01015,"13.0":0.10149,"14.0":0.08119,"15.0":0.0406,"16.0":0.33491,"17.0":0.01015,"18.0":0.16238,"19.0":0.50745},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.11812},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.27528,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.8164},Q:{"13.1":0},O:{"0":3.98152},H:{"0":1.43881},L:{"0":72.17988}}; diff --git a/node_modules/caniuse-lite/data/regions/SC.js b/node_modules/caniuse-lite/data/regions/SC.js new file mode 100644 index 0000000..7bf4e51 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00557,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00557,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00557,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00557,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.0167,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00557,"101":0.00557,"102":0.46746,"103":0,"104":0.0167,"105":0.16139,"106":0.00557,"107":0,"108":0.05565,"109":0.02226,"110":0.0167,"111":0.24486,"112":0.25599,"113":0.00557,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.03896,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00557,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.05565,"60":0.0167,"61":0,"62":0,"63":0.00557,"64":0.00557,"65":0.00557,"66":0,"67":0,"68":0.00557,"69":0.00557,"70":0.01113,"71":0.00557,"72":0.7958,"73":0.00557,"74":0.00557,"75":0.00557,"76":0.00557,"77":0,"78":0.0167,"79":0.03896,"80":0.00557,"81":0.01113,"83":0.45077,"84":0.02783,"85":0.05009,"86":0.18921,"87":0.03339,"88":0.01113,"89":0.08904,"90":1.56377,"91":1.61942,"92":1.63055,"93":1.61385,"94":1.58603,"95":0,"96":0.0167,"97":0.00557,"98":0.05009,"99":0.30051,"100":0.01113,"101":0.00557,"102":0.02783,"103":0.06678,"104":0.01113,"105":0.07235,"106":0.18921,"107":0.06122,"108":0.09461,"109":2.99954,"110":3.85655,"111":3.2444,"112":2.82702,"113":0.01113,"114":0.00557,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00557,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00557,"68":0.04452,"69":0.2393,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.02226,"90":0,"91":0,"92":0,"93":0,"94":0.03339,"95":0.0167,"96":0.05009,"97":0.1113,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.01113,"79":0,"80":0,"81":0,"83":0.02783,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00557,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.03896,"101":0.00557,"102":0,"103":0,"104":0.00557,"105":0.0167,"106":0.00557,"107":0,"108":0.04452,"109":0.02226,"110":0.03339,"111":0.30608,"112":0.51755,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0167,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00557,"6.1":0,"7.1":0,"9.1":0.02226,"10.1":0,"11.1":0,"12.1":0.49529,"13.1":0.0167,"14.1":0.03339,"15.1":0.02783,"15.2-15.3":0.02226,"15.4":0.00557,"15.5":0.00557,"15.6":0.06122,"16.0":0.02226,"16.1":0.05009,"16.2":0.02226,"16.3":0.13913,"16.4":0.09461,"16.5":0.01113},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0036,"6.0-6.1":0,"7.0-7.1":0.0072,"8.1-8.4":0,"9.0-9.2":0.0036,"9.3":0.03361,"10.0-10.2":0,"10.3":0.02761,"11.0-11.2":0.0144,"11.3-11.4":0.0096,"12.0-12.1":0.02521,"12.2-12.5":0.4921,"13.0-13.1":0.0108,"13.2":0.0132,"13.3":0.03601,"13.4-13.7":0.14403,"14.0-14.4":0.39848,"14.5-14.8":0.41889,"15.0-15.1":0.20764,"15.2-15.3":0.28686,"15.4":0.25925,"15.5":0.19324,"15.6":0.4897,"16.0":0.85338,"16.1":1.27587,"16.2":0.74176,"16.3":3.26949,"16.4":1.65635,"16.5":0.02521},P:{"4":0.08053,"20":1.40934,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.0906,"8.2":0,"9.2":0.02013,"10.1":0,"11.1-11.2":0.0302,"12.0":0.0604,"13.0":0.0604,"14.0":0.04027,"15.0":0.04027,"16.0":0.05033,"17.0":0.1208,"18.0":0.0604,"19.0":0.31207},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0567},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.05565,"9":0,"10":0,"11":0.1113,"5.5":0},S:{"2.5":0.00444,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.43907},Q:{"13.1":0.03105},O:{"0":1.20632},H:{"0":0.697},L:{"0":53.27575}}; diff --git a/node_modules/caniuse-lite/data/regions/SD.js b/node_modules/caniuse-lite/data/regions/SD.js new file mode 100644 index 0000000..65cce47 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00143,"39":0,"40":0,"41":0,"42":0,"43":0.00143,"44":0,"45":0,"46":0,"47":0.00143,"48":0,"49":0.00143,"50":0,"51":0,"52":0.00285,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00143,"69":0,"70":0,"71":0,"72":0.00285,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00143,"86":0,"87":0,"88":0.00143,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00143,"95":0,"96":0.00143,"97":0,"98":0,"99":0.00143,"100":0,"101":0,"102":0.00428,"103":0.00143,"104":0.00143,"105":0.00143,"106":0.00143,"107":0.00143,"108":0.00285,"109":0.00999,"110":0.02283,"111":0.15412,"112":0.03425,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00143,"30":0,"31":0.00143,"32":0,"33":0.00143,"34":0,"35":0,"36":0.00285,"37":0,"38":0,"39":0,"40":0.00285,"41":0,"42":0,"43":0.00285,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00143,"51":0,"52":0,"53":0,"54":0,"55":0.00143,"56":0,"57":0.00143,"58":0.00143,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00143,"65":0.00143,"66":0,"67":0,"68":0.00143,"69":0.00143,"70":0.00428,"71":0.00143,"72":0.00285,"73":0,"74":0.00143,"75":0.00143,"76":0,"77":0.00143,"78":0.00285,"79":0.00999,"80":0.00143,"81":0.00428,"83":0.00143,"84":0,"85":0.00143,"86":0.00143,"87":0.00285,"88":0.00571,"89":0,"90":0.00143,"91":0.00143,"92":0.00571,"93":0.00143,"94":0,"95":0.00143,"96":0.00143,"97":0.00143,"98":0.00571,"99":0.00714,"100":0.00143,"101":0.00143,"102":0.00143,"103":0.0157,"104":0.00714,"105":0.00571,"106":0.00428,"107":0.00856,"108":0.00999,"109":0.1056,"110":0.02854,"111":0.35675,"112":0.13271,"113":0.00143,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00285,"25":0,"26":0.00143,"27":0,"28":0.00571,"29":0,"30":0.00143,"31":0,"32":0.00143,"33":0.00143,"34":0,"35":0,"36":0,"37":0,"38":0.00143,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0.00143,"54":0,"55":0,"56":0.00143,"57":0,"58":0.00571,"60":0.00856,"62":0,"63":0.01284,"64":0.01142,"65":0.00285,"66":0.00571,"67":0.02141,"68":0.03568,"69":0.06707,"70":0,"71":0,"72":0.00143,"73":0.00285,"74":0.01427,"75":0.00428,"76":0,"77":0,"78":0,"79":0.00428,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00143,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00143,"95":0.00856,"96":0.01284,"97":0.03853,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0.00285,"10.6":0.00428,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00856},B:{"12":0.00428,"13":0.00143,"14":0.00143,"15":0,"16":0.00143,"17":0.00143,"18":0.00571,"79":0,"80":0,"81":0,"83":0,"84":0.00285,"85":0,"86":0,"87":0,"88":0,"89":0.00143,"90":0.00143,"91":0,"92":0.00856,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00428,"106":0.00143,"107":0.00285,"108":0.00428,"109":0.02426,"110":0.01427,"111":0.10132,"112":0.09418,"113":0.00143},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00571,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.12558,"6.1":0,"7.1":0,"9.1":0.00143,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00428,"14.1":0.00714,"15.1":0.00285,"15.2-15.3":0,"15.4":0.00285,"15.5":0.00143,"15.6":0.02283,"16.0":0.00143,"16.1":0.00285,"16.2":0.01142,"16.3":0.01712,"16.4":0.00571,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00245,"5.0-5.1":0,"6.0-6.1":0.00491,"7.0-7.1":0.00245,"8.1-8.4":0.00613,"9.0-9.2":0.00368,"9.3":0.02085,"10.0-10.2":0,"10.3":0.00981,"11.0-11.2":0.00245,"11.3-11.4":0.00859,"12.0-12.1":0.03557,"12.2-12.5":0.55813,"13.0-13.1":0.02331,"13.2":0.00368,"13.3":0.02331,"13.4-13.7":0.05152,"14.0-14.4":2.74279,"14.5-14.8":0.31034,"15.0-15.1":0.19258,"15.2-15.3":0.1705,"15.4":0.20853,"15.5":0.26005,"15.6":0.35941,"16.0":1.15551,"16.1":0.9666,"16.2":0.84148,"16.3":2.10861,"16.4":1.35054,"16.5":0.01349},P:{"4":0.35858,"20":1.37286,"5.0-5.4":0.02049,"6.2-6.4":0.04098,"7.2-7.4":0.28687,"8.2":0,"9.2":0.03074,"10.1":0.02049,"11.1-11.2":0.1127,"12.0":0.02049,"13.0":0.06147,"14.0":0.15368,"15.0":0.04098,"16.0":0.47128,"17.0":0.09221,"18.0":0.23564,"19.0":0.40981},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01016,"4.4":0,"4.4.3-4.4.4":0.09269},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00999,"5.5":0},S:{"2.5":0.00857,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.18003},Q:{"13.1":0},O:{"0":1.56029},H:{"0":12.96183},L:{"0":64.78112}}; diff --git a/node_modules/caniuse-lite/data/regions/SE.js b/node_modules/caniuse-lite/data/regions/SE.js new file mode 100644 index 0000000..9df1a46 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00578,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00578,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.01734,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00578,"89":0,"90":0,"91":0.00578,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.04046,"103":0,"104":0,"105":0.00578,"106":0.00578,"107":0,"108":0.00578,"109":0.01156,"110":0.02312,"111":0.56644,"112":0.54332,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00578,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00578,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.02312,"67":0.00578,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.01156,"76":0.00578,"77":0.01156,"78":0.00578,"79":0.01734,"80":0.00578,"81":0.00578,"83":0.00578,"84":0.01156,"85":0.01156,"86":0.01156,"87":0.09248,"88":0.00578,"89":0.02312,"90":0.01156,"91":0.00578,"92":0.01734,"93":0.17918,"94":0.04046,"95":0.00578,"96":0.01156,"97":0.00578,"98":0.01156,"99":0.01156,"100":0.00578,"101":0.01734,"102":0.05202,"103":0.23698,"104":0.01156,"105":0.06358,"106":0.02312,"107":0.04046,"108":0.24276,"109":1.05774,"110":0.49708,"111":9.7393,"112":9.58324,"113":0.01734,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00578,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00578,"70":0.00578,"71":0,"72":0,"73":0,"74":0,"75":0.00578,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00578,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00578,"95":0.01734,"96":0.15028,"97":0.36414,"98":0.01156,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00578,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00578,"102":0,"103":0.00578,"104":0.00578,"105":0.00578,"106":0.00578,"107":0.01156,"108":0.01734,"109":0.07514,"110":0.08092,"111":1.41032,"112":2.9767,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00578,"14":0.04624,"15":0.01156,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00578,"10.1":0,"11.1":0.00578,"12.1":0.01734,"13.1":0.06936,"14.1":0.16762,"15.1":0.01734,"15.2-15.3":0.01734,"15.4":0.04624,"15.5":0.0867,"15.6":0.41616,"16.0":0.03468,"16.1":0.10982,"16.2":0.19652,"16.3":0.96526,"16.4":0.4335,"16.5":0.00578},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00397,"8.1-8.4":0,"9.0-9.2":0.00795,"9.3":0.09538,"10.0-10.2":0,"10.3":0.11525,"11.0-11.2":0.00397,"11.3-11.4":0.05564,"12.0-12.1":0.01192,"12.2-12.5":0.50074,"13.0-13.1":0.00795,"13.2":0.00795,"13.3":0.02782,"13.4-13.7":0.1232,"14.0-14.4":0.26229,"14.5-14.8":0.86635,"15.0-15.1":0.14307,"15.2-15.3":0.23845,"15.4":0.28216,"15.5":0.58022,"15.6":2.17383,"16.0":2.10627,"16.1":5.45245,"16.2":2.67854,"16.3":15.6142,"16.4":6.10818,"16.5":0.08743},P:{"4":0.05181,"20":3.43998,"5.0-5.4":0.01036,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.01036,"14.0":0.01036,"15.0":0.01036,"16.0":0.02072,"17.0":0.02072,"18.0":0.03108,"19.0":0.10361},I:{"0":0,"3":0,"4":0.02123,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00708,"4.2-4.3":0.00708,"4.4":0,"4.4.3-4.4.4":0.05306},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0289,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.34604},Q:{"13.1":0},O:{"0":0.01266},H:{"0":0.12385},L:{"0":24.26552}}; diff --git a/node_modules/caniuse-lite/data/regions/SG.js b/node_modules/caniuse-lite/data/regions/SG.js new file mode 100644 index 0000000..c853fb0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0.00269,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0.00269,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00269,"69":0,"70":0,"71":0,"72":0.05649,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00538,"79":0.00269,"80":0.00269,"81":0.00269,"82":0.00269,"83":0.00269,"84":0,"85":0,"86":0,"87":0,"88":0.00269,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00807,"103":0.00269,"104":0,"105":0.00538,"106":0.00269,"107":0.00269,"108":0.00269,"109":0.00538,"110":0.00807,"111":0.17216,"112":0.14795,"113":0.00269,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00538,"30":0,"31":0,"32":0,"33":0,"34":0.00538,"35":0,"36":0,"37":0,"38":0.02152,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00538,"48":0,"49":0.00269,"50":0,"51":0,"52":0,"53":0.00538,"54":0,"55":0,"56":0.00269,"57":0,"58":0,"59":0,"60":0.00269,"61":0.00269,"62":0,"63":0,"64":0,"65":0.00269,"66":0,"67":0.00269,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00538,"74":0.00269,"75":0.00269,"76":0,"77":0.00269,"78":0.00269,"79":0.05649,"80":0.00538,"81":0.01614,"83":0.01345,"84":0.02421,"85":0.02152,"86":0.02959,"87":0.03497,"88":0,"89":0.00269,"90":0,"91":0.01345,"92":0.00269,"93":0.00269,"94":0.00807,"95":0.00269,"96":0.00538,"97":0.00538,"98":0.00538,"99":0.01076,"100":0.01345,"101":0.00807,"102":0.00807,"103":0.02421,"104":0.01076,"105":0.01614,"106":0.0269,"107":0.02959,"108":0.04573,"109":0.18292,"110":0.06994,"111":1.47143,"112":1.81037,"113":0.00538,"114":0.00269,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00538,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00269,"37":0.00269,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01076,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00269,"68":0.01345,"69":0.03228,"70":0,"71":0.00269,"72":0,"73":0,"74":0.00269,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00269,"95":0.00269,"96":0.01883,"97":0.06187,"98":0.00269,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00269,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0.00269,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00269,"107":0.00269,"108":0.00538,"109":0.01076,"110":0.01345,"111":0.1614,"112":0.35508,"113":0},E:{"4":0.00269,"5":0,"6":0,"7":0,"8":0.00269,"9":0,"10":0,"11":0,"12":0,"13":0.00538,"14":0.01614,"15":0.00269,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00269,"13.1":0.01883,"14.1":0.03766,"15.1":0.00538,"15.2-15.3":0.00538,"15.4":0.01883,"15.5":0.0269,"15.6":0.11567,"16.0":0.01883,"16.1":0.04573,"16.2":0.05649,"16.3":0.27976,"16.4":0.1345,"16.5":0},G:{"8":0,"3.2":0.00191,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00191,"6.0-6.1":0.00383,"7.0-7.1":0.01532,"8.1-8.4":0.0134,"9.0-9.2":0.00574,"9.3":0.07277,"10.0-10.2":0,"10.3":0.05362,"11.0-11.2":0.0134,"11.3-11.4":0.01149,"12.0-12.1":0.00957,"12.2-12.5":0.26617,"13.0-13.1":0.00766,"13.2":0.00383,"13.3":0.03064,"13.4-13.7":0.08043,"14.0-14.4":0.1666,"14.5-14.8":0.26426,"15.0-15.1":0.09958,"15.2-15.3":0.10724,"15.4":0.13213,"15.5":0.21639,"15.6":0.71618,"16.0":1.14895,"16.1":2.50281,"16.2":1.36151,"16.3":7.26139,"16.4":3.81644,"16.5":0.05745},P:{"4":0.45091,"20":2.58247,"5.0-5.4":0.04099,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0.01025,"11.1-11.2":0,"12.0":0.01025,"13.0":0.0205,"14.0":0,"15.0":0,"16.0":0.0205,"17.0":0.0205,"18.0":0.0205,"19.0":0.06149},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":22.08849,"4.4":0,"4.4.3-4.4.4":22.08849},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.04889,"9":0.0163,"10":0.0163,"11":0.19558,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.42398},Q:{"13.1":0.00731},O:{"0":0.55556},H:{"0":0.44984},L:{"0":20.10541}}; diff --git a/node_modules/caniuse-lite/data/regions/SH.js b/node_modules/caniuse-lite/data/regions/SH.js new file mode 100644 index 0000000..49b6b25 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":5.44449,"112":0,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0,"16.3":9.07161,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0},P:{"4":0,"20":0,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":28.56685},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":46.03188}}; diff --git a/node_modules/caniuse-lite/data/regions/SI.js b/node_modules/caniuse-lite/data/regions/SI.js new file mode 100644 index 0000000..e74307f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.05629,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0.00563,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.01126,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0.00563,"78":0.01689,"79":0,"80":0.00563,"81":0,"82":0,"83":0.00563,"84":0,"85":0,"86":0,"87":0,"88":0.00563,"89":0.00563,"90":0,"91":0.00563,"92":0.01689,"93":0.00563,"94":0,"95":0,"96":0.00563,"97":0.01126,"98":0.00563,"99":0.00563,"100":0.00563,"101":0,"102":0.12947,"103":0.00563,"104":0.00563,"105":0.01126,"106":0.00563,"107":0.00563,"108":0.02252,"109":0.01689,"110":0.08444,"111":2.00392,"112":1.67744,"113":0.00563,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02252,"50":0,"51":0.02252,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.00563,"74":0,"75":0,"76":0,"77":0,"78":0.00563,"79":0.02815,"80":0.00563,"81":0.01126,"83":0.00563,"84":0.00563,"85":0.01126,"86":0.00563,"87":0.01126,"88":0.00563,"89":0.00563,"90":0.01126,"91":0.00563,"92":0.00563,"93":0,"94":0.00563,"95":0.11821,"96":0.00563,"97":0.00563,"98":0.02252,"99":0.02815,"100":0.01126,"101":0.00563,"102":0.01126,"103":0.04503,"104":0.06192,"105":0.02252,"106":0.02815,"107":0.02815,"108":0.06192,"109":1.19335,"110":0.18013,"111":8.35344,"112":8.51668,"113":0.01126,"114":0.00563,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00563,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.01689,"47":0,"48":0,"49":0.00563,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00563,"70":0,"71":0,"72":0,"73":0,"74":0.00563,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02252,"96":0.26456,"97":0.70363,"98":0.02252,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00563,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00563,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00563,"102":0,"103":0.00563,"104":0,"105":0.00563,"106":0,"107":0.01126,"108":0.01126,"109":0.05629,"110":0.05629,"111":0.93441,"112":2.00392,"113":0.01689},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00563,"14":0.02252,"15":0.00563,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00563,"13.1":0.07881,"14.1":0.09006,"15.1":0.01126,"15.2-15.3":0.01689,"15.4":0.02815,"15.5":0.0394,"15.6":0.15761,"16.0":0.04503,"16.1":0.09569,"16.2":0.12384,"16.3":0.47284,"16.4":0.25893,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00179,"8.1-8.4":0.00179,"9.0-9.2":0,"9.3":0.02144,"10.0-10.2":0,"10.3":0.01786,"11.0-11.2":0.00357,"11.3-11.4":0.00357,"12.0-12.1":0.00536,"12.2-12.5":0.1822,"13.0-13.1":0,"13.2":0.00179,"13.3":0.01072,"13.4-13.7":0.0786,"14.0-14.4":0.09825,"14.5-14.8":0.34475,"15.0-15.1":0.11432,"15.2-15.3":0.10003,"15.4":0.16434,"15.5":0.26258,"15.6":0.85027,"16.0":1.83095,"16.1":2.30431,"16.2":1.40045,"16.3":6.23415,"16.4":3.09206,"16.5":0.13933},P:{"4":0.13304,"20":3.35665,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02047,"12.0":0.01023,"13.0":0.02047,"14.0":0.0307,"15.0":0.02047,"16.0":0.04093,"17.0":0.04093,"18.0":0.04093,"19.0":0.15351},I:{"0":0,"3":0,"4":0.00948,"2.1":0,"2.2":0,"2.3":0.00474,"4.1":0.02843,"4.2-4.3":0.01895,"4.4":0,"4.4.3-4.4.4":0.08529},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01126,"9":0,"10":0,"11":0.0394,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.44584},Q:{"13.1":0},O:{"0":0.01311},H:{"0":0.21519},L:{"0":46.50072}}; diff --git a/node_modules/caniuse-lite/data/regions/SK.js b/node_modules/caniuse-lite/data/regions/SK.js new file mode 100644 index 0000000..bdba991 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SK.js @@ -0,0 +1 @@ +module.exports={C:{"33":0.01475,"43":0.00492,"52":0.08851,"56":0.00492,"68":0.00983,"69":0.00492,"78":0.01967,"88":0.01475,"99":0.01475,"101":0.00492,"102":0.09342,"103":0.00492,"104":0.00492,"105":0.00492,"106":0.00983,"107":0.00983,"108":0.03934,"109":0.0295,"110":0.07376,"111":2.46833,"112":2.18315,"113":0.00492,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 100 114 3.5 3.6"},D:{"38":0.04917,"47":0.00983,"48":0.00983,"49":0.04425,"53":0.01967,"63":0.03934,"68":0.00983,"70":0.00492,"72":0.03442,"79":0.34911,"80":0.00983,"81":0.02459,"83":0.00983,"84":0.03442,"85":0.02459,"86":0.01475,"87":0.05409,"88":0.01475,"89":0.01967,"90":0.22127,"91":0.21143,"92":0.21635,"93":0.30485,"94":0.6933,"95":0.00492,"96":0.00983,"97":0.00983,"98":0.01475,"99":0.01967,"100":0.02459,"101":0.00983,"102":0.00983,"103":0.09342,"104":0.00983,"105":0.02459,"106":0.03442,"107":0.03934,"108":0.09342,"109":2.57651,"110":0.25568,"111":10.11919,"112":11.79588,"113":0.01475,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 55 56 57 58 59 60 61 62 64 65 66 67 69 71 73 74 75 76 77 78 114 115 116"},F:{"28":0.01967,"36":0.00983,"46":0.0295,"85":0.0295,"94":0.00492,"95":0.16718,"96":0.70805,"97":2.04547,"98":0.09834,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"86":0.01475,"92":0.00492,"101":0.00492,"103":0.00492,"105":0.00983,"107":0.01475,"108":0.03442,"109":0.12293,"110":0.04917,"111":1.16533,"112":2.69943,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 87 88 89 90 91 93 94 95 96 97 98 99 100 102 104 106 113"},E:{"4":0,"14":0.04917,"15":0.00983,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00983,"13.1":0.059,"14.1":0.08851,"15.1":0.02459,"15.2-15.3":0.01967,"15.4":0.03442,"15.5":0.059,"15.6":0.2311,"16.0":0.0295,"16.1":0.11309,"16.2":0.15243,"16.3":0.6638,"16.4":0.41795,"16.5":0.01475},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00254,"6.0-6.1":0,"7.0-7.1":0.00508,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02538,"10.0-10.2":0,"10.3":0.08376,"11.0-11.2":0.00254,"11.3-11.4":0.00127,"12.0-12.1":0,"12.2-12.5":0.1434,"13.0-13.1":0.00635,"13.2":0.00635,"13.3":0.00508,"13.4-13.7":0.04442,"14.0-14.4":0.08502,"14.5-14.8":0.20051,"15.0-15.1":0.07233,"15.2-15.3":0.07741,"15.4":0.10406,"15.5":0.17259,"15.6":0.42258,"16.0":0.79441,"16.1":1.55836,"16.2":0.87309,"16.3":4.41238,"16.4":2.77915,"16.5":0.10533},P:{"4":0.35346,"20":2.39104,"5.0-5.4":0.04099,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0.01025,"11.1-11.2":0,"12.0":0.01025,"13.0":0.02079,"14.0":0,"15.0":0,"16.0":0.02079,"17.0":0.02079,"18.0":0.02079,"19.0":0.12475},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0097,"4.2-4.3":0.01746,"4.4":0,"4.4.3-4.4.4":0.07956},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00983,"11":0.06392,_:"6 7 9 10 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.31},Q:{"13.1":0},O:{"0":0.06607},H:{"0":0.48113},L:{"0":41.37194}}; diff --git a/node_modules/caniuse-lite/data/regions/SL.js b/node_modules/caniuse-lite/data/regions/SL.js new file mode 100644 index 0000000..0f8b3cf --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0.00194,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00194,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00194,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00194,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00194,"109":0.00194,"110":0.00194,"111":0.06014,"112":0.04268,"113":0.00388,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00388,"41":0,"42":0,"43":0.00194,"44":0,"45":0,"46":0,"47":0.00194,"48":0.00194,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00194,"59":0,"60":0,"61":0.00194,"62":0,"63":0,"64":0.00194,"65":0,"66":0,"67":0,"68":0,"69":0.00194,"70":0.00388,"71":0,"72":0.00388,"73":0,"74":0.00194,"75":0.00194,"76":0.00388,"77":0.00388,"78":0,"79":0.00194,"80":0.00194,"81":0.00776,"83":0.00194,"84":0,"85":0,"86":0,"87":0.00194,"88":0.00194,"89":0.00194,"90":0.00582,"91":0,"92":0.00582,"93":0.00776,"94":0,"95":0.00194,"96":0.00194,"97":0.00194,"98":0.00194,"99":0.00194,"100":0,"101":0.00388,"102":0.00582,"103":0.01552,"104":0,"105":0.00582,"106":0.00194,"107":0.00776,"108":0.00582,"109":0.097,"110":0.02716,"111":0.38024,"112":0.35502,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0.00194,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.02134,"25":0,"26":0.00388,"27":0,"28":0.00776,"29":0,"30":0.00776,"31":0,"32":0.00582,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00194,"43":0,"44":0,"45":0.00388,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.02134,"55":0.00388,"56":0,"57":0.00776,"58":0.00582,"60":0.097,"62":0,"63":0.23862,"64":0.02134,"65":0.02716,"66":0.18236,"67":0.23668,"68":0.23086,"69":0.23086,"70":0,"71":0,"72":0,"73":0,"74":0.00388,"75":0.00194,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00388,"96":0.01552,"97":0.06014,"98":0.00194,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0.00194,"11.1":0,"11.5":0,"11.6":0,"12.1":0.06208},B:{"12":0.00194,"13":0.0097,"14":0.00194,"15":0.0097,"16":0.00194,"17":0,"18":0.00582,"79":0,"80":0,"81":0,"83":0,"84":0.00194,"85":0.00194,"86":0,"87":0,"88":0,"89":0,"90":0.00582,"91":0,"92":0.00776,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00194,"105":0.00194,"106":0,"107":0.00194,"108":0.00388,"109":0.00388,"110":0.02328,"111":0.11446,"112":0.17266,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00194,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.01552,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00194,"12.1":0.00194,"13.1":0.00194,"14.1":0.00194,"15.1":0.00194,"15.2-15.3":0,"15.4":0.00194,"15.5":0.00194,"15.6":0.01358,"16.0":0,"16.1":0.00388,"16.2":0.01164,"16.3":0.01552,"16.4":0.00582,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02057,"8.1-8.4":0.01028,"9.0-9.2":0.07946,"9.3":0.09629,"10.0-10.2":0,"10.3":0.04394,"11.0-11.2":0.00093,"11.3-11.4":0.00841,"12.0-12.1":0.08413,"12.2-12.5":0.60577,"13.0-13.1":0.05142,"13.2":0.01776,"13.3":0.03085,"13.4-13.7":0.06731,"14.0-14.4":0.62072,"14.5-14.8":0.61418,"15.0-15.1":0.36271,"15.2-15.3":0.40291,"15.4":0.42441,"15.5":0.34495,"15.6":0.32812,"16.0":0.43189,"16.1":0.5207,"16.2":0.43563,"16.3":1.69016,"16.4":1.0227,"16.5":0.02711},P:{"4":0.19582,"20":0.43286,"5.0-5.4":0.11337,"6.2-6.4":0.01031,"7.2-7.4":0.13398,"8.2":0.01031,"9.2":0.04122,"10.1":0,"11.1-11.2":0.03092,"12.0":0,"13.0":0.01031,"14.0":0.03092,"15.0":0.08245,"16.0":0.03092,"17.0":0.02061,"18.0":0.02061,"19.0":0.09276},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00533,"4.2-4.3":0.00533,"4.4":0,"4.4.3-4.4.4":0.12621},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0097,"5.5":0},S:{"2.5":0.15314,_:"3.0-3.1"},J:{"7":0,"10":0.00806},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.03224},Q:{"13.1":0},O:{"0":0.86242},H:{"0":13.73524},L:{"0":69.3949}}; diff --git a/node_modules/caniuse-lite/data/regions/SM.js b/node_modules/caniuse-lite/data/regions/SM.js new file mode 100644 index 0000000..9f3bfe5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.02399,"49":0,"50":0,"51":0,"52":0.006,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0.012,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.02399,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.08397,"103":0,"104":0,"105":0,"106":0.012,"107":0.012,"108":0,"109":0,"110":0.12596,"111":1.18161,"112":1.33156,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.006,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0.05998,"77":0,"78":0,"79":0.05998,"80":0,"81":0,"83":0,"84":0.012,"85":0.006,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.01799,"95":0,"96":0,"97":0.012,"98":0.02999,"99":0.07797,"100":0.12596,"101":0,"102":0,"103":0.36588,"104":0.02399,"105":0.51583,"106":0,"107":0,"108":0.09597,"109":2.22526,"110":0.08997,"111":8.84705,"112":13.77741,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.06598,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.04798,"97":0.21593,"98":0.006,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.012,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.01799,"109":0.02399,"110":0.04199,"111":0.6118,"112":1.31356,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.006,"12":0,"13":0.006,"14":0.17994,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.06598,"13.1":0.24592,"14.1":0.33589,"15.1":0.006,"15.2-15.3":0.012,"15.4":0.01799,"15.5":0.20993,"15.6":0.32989,"16.0":0.09597,"16.1":0.06598,"16.2":0.02999,"16.3":0.5878,"16.4":0.18594,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03137,"10.0-10.2":0,"10.3":0.02509,"11.0-11.2":0.03764,"11.3-11.4":0,"12.0-12.1":0.01255,"12.2-12.5":0.3492,"13.0-13.1":0,"13.2":0.01255,"13.3":0.00627,"13.4-13.7":0.00627,"14.0-14.4":0.60222,"14.5-14.8":0.13174,"15.0-15.1":0.069,"15.2-15.3":0.11292,"15.4":0.06273,"15.5":0.08782,"15.6":0.93678,"16.0":0.81132,"16.1":2.00948,"16.2":0.67122,"16.3":9.61248,"16.4":4.70064,"16.5":0.05018},P:{"4":0.0507,"20":4.00519,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0.01014},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.012,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.11606},Q:{"13.1":0},O:{"0":0},H:{"0":0.00379},L:{"0":38.73261}}; diff --git a/node_modules/caniuse-lite/data/regions/SN.js b/node_modules/caniuse-lite/data/regions/SN.js new file mode 100644 index 0000000..9498fc9 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0.00239,"33":0,"34":0.00239,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00478,"53":0,"54":0,"55":0,"56":0,"57":0.00239,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00239,"69":0,"70":0.00718,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00478,"79":0,"80":0.00239,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00478,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00718,"103":0.00239,"104":0.00239,"105":0,"106":0.00239,"107":0.00239,"108":0.00239,"109":0.00478,"110":0.00478,"111":0.16026,"112":0.18179,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0.00239,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00478,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00478,"66":0,"67":0,"68":0.00239,"69":0.00239,"70":0.00718,"71":0,"72":0,"73":0,"74":0.00239,"75":0.00239,"76":0.00478,"77":0.00239,"78":0,"79":0.00957,"80":0,"81":0.01914,"83":0.00239,"84":0,"85":0,"86":0.00239,"87":0.00478,"88":0.00239,"89":0,"90":0,"91":0.00478,"92":0,"93":0.00957,"94":0.00239,"95":0.00239,"96":0.00239,"97":0.00478,"98":0.00239,"99":0.00239,"100":0.00239,"101":0.00239,"102":0.00239,"103":0.0287,"104":0.00239,"105":0.00239,"106":0.00239,"107":0.00478,"108":0.01196,"109":0.28226,"110":0.01914,"111":0.85634,"112":1.08836,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00478,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00239,"62":0,"63":0,"64":0.00239,"65":0,"66":0,"67":0.00239,"68":0.00478,"69":0.00718,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00239,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00239,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01914,"96":0.01196,"97":0.0909,"98":0.00718,"9.5-9.6":0,"10.0-10.1":0,"10.5":0.00239,"10.6":0.00239,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00239,"15":0.00718,"16":0,"17":0,"18":0.00718,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00239,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.00239,"107":0,"108":0.00239,"109":0.01435,"110":0.01196,"111":0.16026,"112":0.3588,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00239,"15":0.00478,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00239,"13.1":0.00957,"14.1":0.00957,"15.1":0,"15.2-15.3":0,"15.4":0.00239,"15.5":0.00239,"15.6":0.01674,"16.0":0.00239,"16.1":0.00478,"16.2":0.01196,"16.3":0.04306,"16.4":0.01435,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.04639,"8.1-8.4":0.0145,"9.0-9.2":0.03189,"9.3":0.08118,"10.0-10.2":0,"10.3":0.21166,"11.0-11.2":0.0116,"11.3-11.4":0.0058,"12.0-12.1":0.13627,"12.2-12.5":1.89332,"13.0-13.1":0.04349,"13.2":0.0203,"13.3":0.15077,"13.4-13.7":0.32183,"14.0-14.4":1.18586,"14.5-14.8":1.60628,"15.0-15.1":0.62047,"15.2-15.3":0.4726,"15.4":0.38852,"15.5":0.85243,"15.6":1.32793,"16.0":1.30764,"16.1":2.4616,"16.2":1.66716,"16.3":6.9383,"16.4":3.12267,"16.5":0.13337},P:{"4":0.38486,"20":1.54956,"5.0-5.4":0,"6.2-6.4":0.02026,"7.2-7.4":0.41524,"8.2":0,"9.2":0.03038,"10.1":0,"11.1-11.2":0.11141,"12.0":0.03038,"13.0":0.07089,"14.0":0.04051,"15.0":0.03038,"16.0":0.13166,"17.0":0.11141,"18.0":0.06077,"19.0":0.19243},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00167,"4.2-4.3":0.00547,"4.4":0,"4.4.3-4.4.4":0.08353},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00718,"5.5":0},S:{"2.5":0.02282,_:"3.0-3.1"},J:{"7":0,"10":0.00761},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12934},Q:{"13.1":0.00761},O:{"0":0.03043},H:{"0":0.40335},L:{"0":66.15474}}; diff --git a/node_modules/caniuse-lite/data/regions/SO.js b/node_modules/caniuse-lite/data/regions/SO.js new file mode 100644 index 0000000..99e8d0e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00259,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00259,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00259,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00259,"111":0.11664,"112":0.09331,"113":0.01037,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00259,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.00259,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00778,"65":0,"66":0,"67":0,"68":0.02333,"69":0.00518,"70":0.01037,"71":0.00518,"72":0,"73":0,"74":0.00778,"75":0,"76":0,"77":0.00259,"78":0.00259,"79":0.01296,"80":0.00259,"81":0.03629,"83":0.00778,"84":0,"85":0,"86":0,"87":0.04925,"88":0.00259,"89":0,"90":0,"91":0.00259,"92":0.00259,"93":0.02333,"94":0.02851,"95":0.00259,"96":0.01296,"97":0.00259,"98":0,"99":0.0959,"100":0.00259,"101":0.01296,"102":0.00518,"103":0.01037,"104":0.02333,"105":0.00778,"106":0.02851,"107":0.01555,"108":0.02851,"109":0.2281,"110":0.08035,"111":1.63037,"112":1.91549,"113":0.01037,"114":0.00259,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00259,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00518,"60":0,"62":0,"63":0.00518,"64":0.00259,"65":0,"66":0.00259,"67":0.00778,"68":0.04666,"69":0.20218,"70":0,"71":0,"72":0,"73":0,"74":0.01814,"75":0.01037,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00259,"95":0.00518,"96":0.02592,"97":0.07517,"98":0.00778,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00259,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00518,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00518,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00259,"108":0.00259,"109":0.01037,"110":0.02074,"111":0.10627,"112":0.24883,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00259,"15":0.00259,_:"0","3.1":0,"3.2":0,"5.1":0.01296,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00778,"14.1":0.00518,"15.1":0.00518,"15.2-15.3":0.00259,"15.4":0.01037,"15.5":0.00259,"15.6":0.04925,"16.0":0.00259,"16.1":0.00518,"16.2":0.00778,"16.3":0.08554,"16.4":0.01037,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00271,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05276,"10.0-10.2":0,"10.3":0.07441,"11.0-11.2":0.00135,"11.3-11.4":0.01218,"12.0-12.1":0.069,"12.2-12.5":0.52899,"13.0-13.1":0.00812,"13.2":0.00135,"13.3":0.02165,"13.4-13.7":0.5317,"14.0-14.4":0.51276,"14.5-14.8":0.94163,"15.0-15.1":0.43158,"15.2-15.3":0.19347,"15.4":0.33147,"15.5":0.34094,"15.6":0.50329,"16.0":1.42463,"16.1":1.23387,"16.2":1.07557,"16.3":2.04427,"16.4":2.15385,"16.5":0.08253},P:{"4":0.24346,"20":1.92736,"5.0-5.4":0.03043,"6.2-6.4":0.04058,"7.2-7.4":0.86224,"8.2":0,"9.2":0.05072,"10.1":0,"11.1-11.2":0.12173,"12.0":0.03043,"13.0":0.04058,"14.0":0.10144,"15.0":0.04058,"16.0":0.23331,"17.0":0.13187,"18.0":0.20288,"19.0":0.62893},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.07907,"4.4":0,"4.4.3-4.4.4":0.21314},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00259,"5.5":0},S:{"2.5":0.00741,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04445},Q:{"13.1":0},O:{"0":1.49642},H:{"0":1.90765},L:{"0":71.03144}}; diff --git a/node_modules/caniuse-lite/data/regions/SR.js b/node_modules/caniuse-lite/data/regions/SR.js new file mode 100644 index 0000000..5afbddd --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00361,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00361,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00361,"109":0.00361,"110":0.00361,"111":0.42971,"112":0.32138,"113":0.00361,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00361,"50":0,"51":0,"52":0,"53":0.00722,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01444,"70":0.00361,"71":0,"72":0,"73":0.00361,"74":0,"75":0,"76":0.00361,"77":0,"78":0,"79":0.00722,"80":0,"81":0.01083,"83":0.01083,"84":0.00361,"85":0,"86":0.00361,"87":0.01083,"88":0,"89":0.00361,"90":0.00361,"91":0.00361,"92":0,"93":0.00361,"94":0,"95":0.00361,"96":0.01806,"97":0,"98":0.04694,"99":0.00361,"100":0.00361,"101":0.00361,"102":0.00361,"103":0.11194,"104":0.00722,"105":0.00722,"106":0.01083,"107":0.01083,"108":0.01083,"109":0.48387,"110":0.02889,"111":3.12713,"112":3.22823,"113":0.00361,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00722,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01444,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00361,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.08666,"97":0.28166,"98":0.00361,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00361,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00361,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00722,"109":0.02528,"110":0.01083,"111":0.35749,"112":0.84859,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0325,"15":0.00722,_:"0","3.1":0,"3.2":0,"5.1":0.00361,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.01444,"14.1":0.03972,"15.1":0.00361,"15.2-15.3":0,"15.4":0.00361,"15.5":0.01083,"15.6":0.065,"16.0":0.00722,"16.1":0.0325,"16.2":0.01806,"16.3":0.14083,"16.4":0.04333,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00535,"6.0-6.1":0,"7.0-7.1":0.05082,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07757,"10.0-10.2":0,"10.3":3.15633,"11.0-11.2":0.00267,"11.3-11.4":0.00802,"12.0-12.1":0.00267,"12.2-12.5":0.73291,"13.0-13.1":0.00267,"13.2":0,"13.3":0.05617,"13.4-13.7":0.17387,"14.0-14.4":0.20596,"14.5-14.8":0.60719,"15.0-15.1":0.0428,"15.2-15.3":0.0642,"15.4":0.27818,"15.5":0.17119,"15.6":0.8827,"16.0":1.15821,"16.1":1.59956,"16.2":1.68248,"16.3":6.09867,"16.4":3.1911,"16.5":0.06152},P:{"4":0.63009,"20":5.51591,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.42351,"8.2":0,"9.2":0.03099,"10.1":0,"11.1-11.2":0.07231,"12.0":0.03099,"13.0":0.15494,"14.0":0.04132,"15.0":0.02066,"16.0":0.21692,"17.0":0.34087,"18.0":0.25824,"19.0":0.40285},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01089,"4.2-4.3":0.14702,"4.4":0,"4.4.3-4.4.4":0.21236},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01083,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00639},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.33223},Q:{"13.1":0.00639},O:{"0":0.72196},H:{"0":0.27219},L:{"0":56.28379}}; diff --git a/node_modules/caniuse-lite/data/regions/ST.js b/node_modules/caniuse-lite/data/regions/ST.js new file mode 100644 index 0000000..1986e0b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ST.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00586,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02932,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00586,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.75633,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00586,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.02345,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.03518,"110":0.01173,"111":0.32247,"112":0.08795,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.04104,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.04104,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00586,"53":0.02932,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00586,"63":0,"64":0.03518,"65":0,"66":0,"67":0,"68":0,"69":0.01173,"70":0.04104,"71":0,"72":0,"73":0,"74":0,"75":0.01173,"76":0.01173,"77":0.01173,"78":0,"79":0.05863,"80":0.01759,"81":0.04104,"83":0.01173,"84":0,"85":0,"86":0,"87":0.01759,"88":0,"89":3.72887,"90":0,"91":0,"92":0,"93":0,"94":0.01173,"95":0.01173,"96":0,"97":0,"98":0.01173,"99":0.01173,"100":0.00586,"101":0,"102":0.03518,"103":0.01173,"104":0.04104,"105":0,"106":0,"107":0,"108":0.09381,"109":5.94508,"110":0.08208,"111":6.76004,"112":5.01287,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.06449,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.01173,"44":0,"45":0,"46":0.03518,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00586,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.01759,"68":0.01759,"69":0.14071,"70":0,"71":0,"72":0,"73":0,"74":0.01173,"75":0,"76":0,"77":0,"78":0,"79":0.00586,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00586,"92":0,"93":0,"94":0,"95":0.06449,"96":0.04104,"97":0.36351,"98":0.05863,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01173},B:{"12":0.00586,"13":0,"14":0,"15":0.00586,"16":0,"17":0,"18":0.0469,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.01173,"88":0,"89":0.00586,"90":0,"91":0,"92":0.01759,"93":0,"94":0,"95":0,"96":0,"97":0.00586,"98":0,"99":0.01173,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.01173,"106":0,"107":0.01173,"108":0,"109":0.14658,"110":0.09967,"111":1.07879,"112":1.20778,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0.00586,"13":0,"14":0.01759,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0.01173,"15.4":0.00586,"15.5":0,"15.6":0.04104,"16.0":0,"16.1":0.01759,"16.2":0.00586,"16.3":0.08795,"16.4":0.02345,"16.5":0},G:{"8":0.01438,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.18214,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01438,"10.0-10.2":0,"10.3":0.05592,"11.0-11.2":0.04234,"11.3-11.4":0,"12.0-12.1":0.02796,"12.2-12.5":0.05592,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.01438,"14.0-14.4":0.04234,"14.5-14.8":0.19652,"15.0-15.1":0.09826,"15.2-15.3":0.04234,"15.4":0.02796,"15.5":0.02796,"15.6":0.23885,"16.0":0.08388,"16.1":1.61446,"16.2":0.08388,"16.3":3.43982,"16.4":0.64546,"16.5":0},P:{"4":0.63507,"20":0.93213,"5.0-5.4":0,"6.2-6.4":0.01024,"7.2-7.4":0.31754,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01024,"12.0":0,"13.0":0,"14.0":0.02049,"15.0":0,"16.0":0.04097,"17.0":0.15365,"18.0":0.05122,"19.0":0.17413},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00679,"4.2-4.3":0.00194,"4.4":0,"4.4.3-4.4.4":0.52547},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01173,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10756},Q:{"13.1":0},O:{"0":5.69665},H:{"0":0.43083},L:{"0":51.46804}}; diff --git a/node_modules/caniuse-lite/data/regions/SV.js b/node_modules/caniuse-lite/data/regions/SV.js new file mode 100644 index 0000000..0114d33 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SV.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.02783,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01855,"53":0,"54":0,"55":0,"56":0.00464,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00928,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00464,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.02783,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.01391,"92":0,"93":0,"94":0,"95":0,"96":0.00464,"97":0,"98":0.00464,"99":0.00928,"100":0,"101":0,"102":0.0371,"103":0.00928,"104":0.07421,"105":0.00464,"106":0.00464,"107":0,"108":0.00464,"109":0.01391,"110":0.02783,"111":0.4638,"112":0.58903,"113":0.00464,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.03247,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00464,"66":0,"67":0.00464,"68":0.00464,"69":0,"70":0.00464,"71":0,"72":0,"73":0,"74":0.00464,"75":0.00464,"76":0.00928,"77":0,"78":0.00928,"79":0.08812,"80":0.00928,"81":0.00464,"83":0.00464,"84":0.00464,"85":0,"86":0,"87":0.02319,"88":0.00928,"89":0,"90":0.00464,"91":0.03247,"92":0.01855,"93":0.00928,"94":0.00928,"95":0.00464,"96":0.00928,"97":0.01391,"98":0.00464,"99":0.01391,"100":0.02783,"101":0.05566,"102":0.01391,"103":0.05102,"104":0.01855,"105":0.01391,"106":0.02783,"107":0.02319,"108":0.07885,"109":1.22907,"110":0.11131,"111":4.58698,"112":6.83177,"113":0.00464,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00464,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0.00464,"63":0,"64":0,"65":0,"66":0,"67":0.00464,"68":0.00464,"69":0.00928,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00464,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02783,"96":0.24118,"97":0.58903,"98":0.01855,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00464,"15":0.00464,"16":0,"17":0,"18":0.00464,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01855,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00464,"104":0.00464,"105":0.00464,"106":0.00928,"107":0.01391,"108":0.00464,"109":0.02783,"110":0.03247,"111":0.43597,"112":1.21052,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00464,"14":0.00464,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00464,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00464,"13.1":0.02783,"14.1":0.02783,"15.1":0.00464,"15.2-15.3":0.00464,"15.4":0.00464,"15.5":0.01391,"15.6":0.05566,"16.0":0.00928,"16.1":0.03247,"16.2":0.04174,"16.3":0.13914,"16.4":0.06957,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00668,"6.0-6.1":0.04006,"7.0-7.1":0.0178,"8.1-8.4":0,"9.0-9.2":0.00111,"9.3":0.03783,"10.0-10.2":0,"10.3":0.02225,"11.0-11.2":0.00334,"11.3-11.4":0.00111,"12.0-12.1":0.00334,"12.2-12.5":0.24592,"13.0-13.1":0.00334,"13.2":0.00223,"13.3":0.01001,"13.4-13.7":0.02893,"14.0-14.4":0.13242,"14.5-14.8":0.17025,"15.0-15.1":0.04228,"15.2-15.3":0.06343,"15.4":0.0612,"15.5":0.12908,"15.6":0.43508,"16.0":0.55192,"16.1":1.09717,"16.2":0.7422,"16.3":4.14943,"16.4":2.21659,"16.5":0.05341},P:{"4":0.14304,"20":2.15589,"5.0-5.4":0.01022,"6.2-6.4":0,"7.2-7.4":0.14304,"8.2":0,"9.2":0.01022,"10.1":0,"11.1-11.2":0.0613,"12.0":0.01022,"13.0":0.13283,"14.0":0.04087,"15.0":0.02043,"16.0":0.13283,"17.0":0.04087,"18.0":0.05109,"19.0":0.1737},I:{"0":0,"3":0,"4":0.01464,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02928,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.17566},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.04174,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.24129},Q:{"13.1":0},O:{"0":0.1126},H:{"0":0.32997},L:{"0":65.82553}}; diff --git a/node_modules/caniuse-lite/data/regions/SY.js b/node_modules/caniuse-lite/data/regions/SY.js new file mode 100644 index 0000000..11fdcd4 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01087,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00362,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00362,"69":0,"70":0,"71":0,"72":0.00181,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00362,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00362,"100":0.00181,"101":0.00181,"102":0.00362,"103":0.00181,"104":0.00181,"105":0.00181,"106":0.00181,"107":0.00181,"108":0.00181,"109":0.00543,"110":0.00906,"111":0.1485,"112":0.09779,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00181,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00362,"41":0,"42":0,"43":0.00181,"44":0,"45":0,"46":0.00181,"47":0,"48":0,"49":0.00181,"50":0,"51":0,"52":0,"53":0.00181,"54":0,"55":0.00181,"56":0.00181,"57":0.00181,"58":0.00181,"59":0,"60":0,"61":0,"62":0,"63":0.00362,"64":0,"65":0.00362,"66":0.00181,"67":0,"68":0.00181,"69":0,"70":0.00181,"71":0.00181,"72":0.00362,"73":0.00181,"74":0.00181,"75":0,"76":0.00181,"77":0.00181,"78":0.00181,"79":0.00543,"80":0.00362,"81":0.01087,"83":0.00362,"84":0.00181,"85":0.00181,"86":0.00362,"87":0.00543,"88":0.00362,"89":0.00362,"90":0.00181,"91":0.00362,"92":0.00362,"93":0.00181,"94":0.00181,"95":0.00362,"96":0.00362,"97":0.00181,"98":0.00724,"99":0.00724,"100":0.00724,"101":0.00362,"102":0.00543,"103":0.00906,"104":0.01087,"105":0.00543,"106":0.00724,"107":0.01449,"108":0.01992,"109":0.38937,"110":0.02717,"111":0.50165,"112":0.53425,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00181,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00181,"60":0.00181,"62":0,"63":0.00724,"64":0.00362,"65":0,"66":0.00181,"67":0.00181,"68":0.00543,"69":0.02354,"70":0,"71":0,"72":0,"73":0,"74":0.00543,"75":0,"76":0,"77":0,"78":0,"79":0.00181,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00181,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02717,"96":0.01449,"97":0.03984,"98":0.00181,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00181},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00181,"18":0.00724,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00181,"91":0,"92":0.00362,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00181,"102":0,"103":0,"104":0,"105":0,"106":0.00181,"107":0.00181,"108":0.00362,"109":0.01087,"110":0.00543,"111":0.05795,"112":0.09417,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00181,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.32417,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0.00543,"15.1":0.00181,"15.2-15.3":0,"15.4":0,"15.5":0.00181,"15.6":0.00362,"16.0":0,"16.1":0.00181,"16.2":0,"16.3":0.0163,"16.4":0.00362,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00129,"5.0-5.1":0.00129,"6.0-6.1":0,"7.0-7.1":0.03669,"8.1-8.4":0,"9.0-9.2":0.00064,"9.3":0.06372,"10.0-10.2":0.00193,"10.3":0.04184,"11.0-11.2":0.00515,"11.3-11.4":0.01609,"12.0-12.1":0.04312,"12.2-12.5":0.5883,"13.0-13.1":0.04055,"13.2":0.0103,"13.3":0.04312,"13.4-13.7":0.17057,"14.0-14.4":0.29029,"14.5-14.8":0.52715,"15.0-15.1":0.23751,"15.2-15.3":0.24459,"15.4":0.20018,"15.5":0.32311,"15.6":0.24201,"16.0":0.48081,"16.1":0.41001,"16.2":0.41387,"16.3":0.89854,"16.4":0.63206,"16.5":0.00837},P:{"4":1.3481,"20":1.5493,"5.0-5.4":0.07042,"6.2-6.4":0.12072,"7.2-7.4":0.25151,"8.2":0.03018,"9.2":0.16097,"10.1":0.1006,"11.1-11.2":0.22133,"12.0":0.08048,"13.0":0.31187,"14.0":0.39236,"15.0":0.11066,"16.0":0.4326,"17.0":0.54326,"18.0":0.29175,"19.0":0.54326},I:{"0":0,"3":0,"4":0.00206,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00688,"4.2-4.3":0.02133,"4.4":0,"4.4.3-4.4.4":0.12869},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00906,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10646},Q:{"13.1":0},O:{"0":1.15465},H:{"0":1.27146},L:{"0":80.24869}}; diff --git a/node_modules/caniuse-lite/data/regions/SZ.js b/node_modules/caniuse-lite/data/regions/SZ.js new file mode 100644 index 0000000..7e2894d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/SZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00258,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00258,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00258,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00258,"109":0.00258,"110":0.01803,"111":0.09528,"112":0.06695,"113":0.00258,"114":0.00258,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00258,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00258,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00773,"71":0,"72":0,"73":0,"74":0.00258,"75":0,"76":0,"77":0,"78":0.00515,"79":0.00515,"80":0.00258,"81":0.01545,"83":0,"84":0,"85":0,"86":0.00258,"87":0.00515,"88":0.00258,"89":0,"90":0,"91":0,"92":0.00773,"93":0.00258,"94":0.00258,"95":0.14935,"96":0,"97":0.00258,"98":0.00258,"99":0.00258,"100":0.00515,"101":0,"102":0.00258,"103":0.0206,"104":0.00258,"105":0.00515,"106":0.00515,"107":0.00258,"108":0.01803,"109":0.32188,"110":0.01545,"111":0.98108,"112":0.9888,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00258,"25":0.00773,"26":0.0412,"27":0,"28":0.01545,"29":0,"30":0.00258,"31":0.00515,"32":0.0103,"33":0,"34":0,"35":0.09013,"36":0.00258,"37":0,"38":0.00515,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.26523,"45":0.0103,"46":0.00258,"47":0.0927,"48":0,"49":0,"50":0.01288,"51":0.03348,"52":0,"53":0,"54":0.00773,"55":0.0103,"56":0.0103,"57":0.04635,"58":0.04635,"60":0.03605,"62":0.00258,"63":0.12103,"64":0.08498,"65":0.02318,"66":0.04378,"67":0.15193,"68":0.50985,"69":0.46093,"70":0.00258,"71":0,"72":0.00258,"73":0.00258,"74":0.0103,"75":0.00258,"76":0,"77":0,"78":0,"79":0.00258,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.0206,"96":0.0103,"97":0.0927,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.0206},B:{"12":0.0103,"13":0,"14":0.00258,"15":0.00258,"16":0,"17":0.00258,"18":0.00258,"79":0,"80":0,"81":0,"83":0,"84":0.00258,"85":0,"86":0.00773,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00773,"93":0,"94":0,"95":0,"96":0.00258,"97":0,"98":0,"99":0.00258,"100":0.00258,"101":0,"102":0,"103":0,"104":0.00773,"105":0,"106":0,"107":0.00515,"108":0.01288,"109":0.00773,"110":0.01545,"111":0.1339,"112":0.44805,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00258,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.0103,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.0103,"12.1":0,"13.1":0.00258,"14.1":0.00258,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00258,"15.6":0.00515,"16.0":0,"16.1":0.00258,"16.2":0,"16.3":0.01545,"16.4":0.01288,"16.5":0},G:{"8":0.02448,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00188,"6.0-6.1":0,"7.0-7.1":0.0069,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00188,"10.0-10.2":0,"10.3":0.01004,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00628,"12.2-12.5":0.61314,"13.0-13.1":0.00314,"13.2":0,"13.3":0.00565,"13.4-13.7":0.07217,"14.0-14.4":0.0364,"14.5-14.8":0.07594,"15.0-15.1":0.14246,"15.2-15.3":0.82463,"15.4":0.05083,"15.5":0.08096,"15.6":0.14999,"16.0":0.7876,"16.1":0.26986,"16.2":0.4939,"16.3":1.60157,"16.4":0.5234,"16.5":0.00439},P:{"4":0.37821,"20":2.16703,"5.0-5.4":0.01022,"6.2-6.4":0.01022,"7.2-7.4":1.16529,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02044,"12.0":0,"13.0":0.07155,"14.0":0.07155,"15.0":0.03067,"16.0":0.14311,"17.0":0.06133,"18.0":0.092,"19.0":0.33732},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00362,"4.2-4.3":0.00217,"4.4":0,"4.4.3-4.4.4":0.04194},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00258,"11":0.00515,"5.5":0},S:{"2.5":0.0594,_:"3.0-3.1"},J:{"7":0,"10":0.01485},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.42323},Q:{"13.1":0},O:{"0":0.7128},H:{"0":13.96061},L:{"0":64.57638}}; diff --git a/node_modules/caniuse-lite/data/regions/TC.js b/node_modules/caniuse-lite/data/regions/TC.js new file mode 100644 index 0000000..4f43107 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00516,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00516,"111":0.73774,"112":0.76869,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.01548,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.06191,"76":0.00516,"77":0,"78":0,"79":0.03611,"80":0.00516,"81":0,"83":0.01548,"84":0,"85":0,"86":0.00516,"87":0.01032,"88":0,"89":0,"90":0,"91":0.03095,"92":0,"93":0.28375,"94":0.00516,"95":0,"96":0,"97":0.01032,"98":0,"99":0,"100":0,"101":0,"102":0.01548,"103":0.05159,"104":0,"105":0.01032,"106":0,"107":0.00516,"108":0.43336,"109":0.38177,"110":0.55201,"111":4.01886,"112":4.36451,"113":0.01548,"114":0.00516,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01032,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01032,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01032,"96":0.02064,"97":0.22184,"98":0.00516,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00516,"16":0,"17":0,"18":0.04127,"79":0,"80":0,"81":0,"83":0.02064,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00516,"108":0.00516,"109":0.03095,"110":0.06707,"111":1.52191,"112":3.67321,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00516,"14":0.01032,"15":0.01548,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.13929,"14.1":0.27859,"15.1":0.00516,"15.2-15.3":0.08254,"15.4":0.02064,"15.5":0.13413,"15.6":0.55201,"16.0":0.0258,"16.1":0.18572,"16.2":0.40756,"16.3":1.5477,"16.4":0.52622,"16.5":0.00516},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.63692,"10.0-10.2":0,"10.3":0.00381,"11.0-11.2":0.01144,"11.3-11.4":0.00381,"12.0-12.1":0,"12.2-12.5":0.28985,"13.0-13.1":0.00381,"13.2":0,"13.3":0.00381,"13.4-13.7":0.17162,"14.0-14.4":0.08772,"14.5-14.8":0.20595,"15.0-15.1":0.75515,"15.2-15.3":0.12967,"15.4":0.03051,"15.5":0.39664,"15.6":1.5942,"16.0":2.34171,"16.1":5.76275,"16.2":3.06635,"16.3":16.18987,"16.4":5.33941,"16.5":0.09153},P:{"4":0.23964,"20":2.36512,"5.0-5.4":0.01042,"6.2-6.4":0,"7.2-7.4":0.04168,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.06251,"12.0":0,"13.0":0.01042,"14.0":0.03126,"15.0":0.08335,"16.0":0.02084,"17.0":0.02084,"18.0":0.03126,"19.0":0.09377},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.9783},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.06707,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12587},Q:{"13.1":0},O:{"0":0.01936},H:{"0":0.11916},L:{"0":35.23451}}; diff --git a/node_modules/caniuse-lite/data/regions/TD.js b/node_modules/caniuse-lite/data/regions/TD.js new file mode 100644 index 0000000..540f574 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TD.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00169,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00507,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00845,"111":0.08614,"112":0.08952,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.02365,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0.00169,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.00169,"81":0.00169,"83":0,"84":0,"85":0,"86":0,"87":0.00169,"88":0,"89":0,"90":0.00169,"91":0,"92":0,"93":0,"94":0.01182,"95":0,"96":0,"97":0,"98":0,"99":0.00169,"100":0,"101":0,"102":0.00169,"103":0.00169,"104":0,"105":0,"106":0,"107":0.00169,"108":0.00676,"109":0.03547,"110":0.00338,"111":0.20944,"112":0.41212,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00169,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00676,"62":0,"63":0.00676,"64":0,"65":0,"66":0.00507,"67":0.01013,"68":0.01182,"69":0.0152,"70":0,"71":0,"72":0.01013,"73":0,"74":0.00338,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.00169,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.00676,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00169,"18":0.00169,"79":0,"80":0,"81":0,"83":0,"84":0.00169,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00169,"108":0,"109":0.02365,"110":0.00845,"111":0.04391,"112":0.10134,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00845,"6.1":0,"7.1":0.04391,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00169,"15.6":0,"16.0":0,"16.1":0,"16.2":0.00169,"16.3":0.00169,"16.4":0.00169,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00085,"6.0-6.1":0.00427,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01537,"10.0-10.2":0,"10.3":0.00256,"11.0-11.2":0.00256,"11.3-11.4":0.16051,"12.0-12.1":0.00683,"12.2-12.5":0.91098,"13.0-13.1":0.13148,"13.2":0.00085,"13.3":0.00598,"13.4-13.7":0.12807,"14.0-14.4":0.37651,"14.5-14.8":1.63839,"15.0-15.1":0.10928,"15.2-15.3":0.13063,"15.4":0.15283,"15.5":0.15368,"15.6":0.31504,"16.0":0.53702,"16.1":0.57801,"16.2":0.67277,"16.3":1.3131,"16.4":0.76071,"16.5":0.01281},P:{"4":0.35514,"20":0.70013,"5.0-5.4":0.01015,"6.2-6.4":0.05073,"7.2-7.4":0.10147,"8.2":0,"9.2":0.07103,"10.1":0,"11.1-11.2":0.04059,"12.0":0,"13.0":0.04059,"14.0":0.07103,"15.0":0.01015,"16.0":0.49719,"17.0":0.02029,"18.0":0.27396,"19.0":0.28411},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00079,"4.2-4.3":0.0004,"4.4":0,"4.4.3-4.4.4":0.01388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00338,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.03324},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.05818},Q:{"13.1":0.04156},O:{"0":0.11635},H:{"0":1.18812},L:{"0":85.86679}}; diff --git a/node_modules/caniuse-lite/data/regions/TG.js b/node_modules/caniuse-lite/data/regions/TG.js new file mode 100644 index 0000000..3bc789e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0.00416,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00416,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00832,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00416,"73":0.00832,"74":0,"75":0,"76":0,"77":0,"78":0.00416,"79":0.0208,"80":0,"81":0.00832,"82":0.07072,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.01664,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01248,"96":0,"97":0.00416,"98":0,"99":0,"100":0,"101":0.00416,"102":0.0416,"103":0.00416,"104":0.00416,"105":0.00832,"106":0.00416,"107":0.00416,"108":0.02496,"109":0.01248,"110":0.02912,"111":1.35616,"112":1.25216,"113":0.00832,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00416,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0.00416,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.0208,"44":0.00416,"45":0,"46":0.00416,"47":0,"48":0.00416,"49":0.00416,"50":0,"51":0,"52":0,"53":0,"54":0.00416,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00416,"65":0.01248,"66":0,"67":0,"68":0.00832,"69":0,"70":0.00416,"71":0,"72":0,"73":0.00416,"74":0.00416,"75":0.07488,"76":0.01664,"77":0.00416,"78":0.00416,"79":0.03744,"80":0.01248,"81":0.04576,"83":0,"84":0.00832,"85":0.00832,"86":0.00416,"87":0.03744,"88":0.00416,"89":0.00416,"90":0.00416,"91":0.00416,"92":0.00416,"93":0.05408,"94":0.00416,"95":0.02496,"96":0.01664,"97":0.0208,"98":0.00832,"99":0.00416,"100":0.00832,"101":0,"102":0.08736,"103":0.05824,"104":0.03328,"105":0.00416,"106":0.02496,"107":0.0208,"108":0.10816,"109":1.70144,"110":0.08736,"111":2.4544,"112":2.47104,"113":0.00416,"114":0.00416,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.02496,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00416,"37":0.00832,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.03328,"62":0,"63":0.00832,"64":0.00416,"65":0,"66":0.01248,"67":0.02496,"68":0.09984,"69":0.13728,"70":0,"71":0,"72":0,"73":0,"74":0.00416,"75":0.00416,"76":0,"77":0,"78":0,"79":0.01248,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.04992,"96":0.0416,"97":0.33696,"98":0.02496,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00416},B:{"12":0.00416,"13":0,"14":0,"15":0.00416,"16":0,"17":0,"18":0.00832,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00416,"89":0,"90":0,"91":0,"92":0.01248,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00416,"109":0.0624,"110":0.03328,"111":0.57824,"112":1.21472,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.01248,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.02496,"14.1":0.00416,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.01664,"16.0":0,"16.1":0.00832,"16.2":0.00832,"16.3":0.0208,"16.4":0.01248,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00874,"6.0-6.1":0.06443,"7.0-7.1":0.04587,"8.1-8.4":0.00437,"9.0-9.2":0,"9.3":0.36583,"10.0-10.2":0,"10.3":0.36911,"11.0-11.2":0.07863,"11.3-11.4":0.00109,"12.0-12.1":0.09064,"12.2-12.5":1.58782,"13.0-13.1":0.00655,"13.2":0.00546,"13.3":0.02075,"13.4-13.7":0.10484,"14.0-14.4":0.27082,"14.5-14.8":0.45756,"15.0-15.1":0.19547,"15.2-15.3":0.17909,"15.4":0.09064,"15.5":0.50343,"15.6":0.56786,"16.0":0.40951,"16.1":0.35273,"16.2":0.617,"16.3":1.51902,"16.4":1.01996,"16.5":0.0415},P:{"4":0.13557,"20":0.42757,"5.0-5.4":0.01043,"6.2-6.4":0,"7.2-7.4":0.04171,"8.2":0,"9.2":0.01043,"10.1":0,"11.1-11.2":0.01043,"12.0":0,"13.0":0.02086,"14.0":0,"15.0":0,"16.0":0.01043,"17.0":0.02086,"18.0":0.01043,"19.0":0.03129},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02988,"4.2-4.3":0.02076,"4.4":0,"4.4.3-4.4.4":0.33679},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01664,"5.5":0},S:{"2.5":0.01752,_:"3.0-3.1"},J:{"7":0,"10":0.03504},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.07592},Q:{"13.1":0.03504},O:{"0":0.83512},H:{"0":1.93513},L:{"0":71.91296}}; diff --git a/node_modules/caniuse-lite/data/regions/TH.js b/node_modules/caniuse-lite/data/regions/TH.js new file mode 100644 index 0000000..ffea0e3 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TH.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00367,"53":0.00367,"54":0,"55":0.00367,"56":0.06599,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.07699,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00367,"79":0,"80":0,"81":0,"82":0,"83":0.00367,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00367,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00367,"110":0.00733,"111":0.1613,"112":0.15764,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0.00367,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.05499,"38":0.00367,"39":0,"40":0,"41":0,"42":0,"43":0.00367,"44":0,"45":0,"46":0,"47":0,"48":0.00367,"49":0.011,"50":0,"51":0,"52":0,"53":0.00367,"54":0,"55":0,"56":0.00367,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00367,"69":0.00367,"70":0.00367,"71":0,"72":0.03299,"73":0.00367,"74":0.00733,"75":0.00367,"76":0.00367,"77":0,"78":0.00367,"79":0.03666,"80":0.00367,"81":0.00367,"83":0.00733,"84":0.00733,"85":0.00367,"86":0.00733,"87":0.011,"88":0.00733,"89":0.00367,"90":0.00367,"91":0.01833,"92":0.01466,"93":0.00367,"94":0.00367,"95":0.00367,"96":0.00733,"97":0.00733,"98":0.00367,"99":0.02566,"100":0.01466,"101":0.011,"102":0.00733,"103":0.02566,"104":0.011,"105":0.011,"106":0.01833,"107":0.01466,"108":0.03299,"109":1.06314,"110":0.04766,"111":2.56987,"112":3.3104,"113":0.00733,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00367,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00367,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00367,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00367,"70":0,"71":0,"72":0,"73":0,"74":0.00367,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00733,"96":0.02566,"97":0.09165,"98":0.00367,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00367,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00367,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00367,"108":0.00367,"109":0.01833,"110":0.01466,"111":0.24929,"112":0.55723,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00367,"14":0.011,"15":0.00733,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.00367,"10.1":0,"11.1":0,"12.1":0.00367,"13.1":0.011,"14.1":0.04399,"15.1":0.00733,"15.2-15.3":0.00367,"15.4":0.01833,"15.5":0.03666,"15.6":0.12831,"16.0":0.011,"16.1":0.10998,"16.2":0.09898,"16.3":0.45092,"16.4":0.1943,"16.5":0.00367},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00618,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05252,"10.0-10.2":0,"10.3":0.04943,"11.0-11.2":0.00618,"11.3-11.4":0.00927,"12.0-12.1":0.01236,"12.2-12.5":0.48504,"13.0-13.1":0.01236,"13.2":0.30277,"13.3":0.02781,"13.4-13.7":0.08342,"14.0-14.4":0.33675,"14.5-14.8":0.71366,"15.0-15.1":0.20699,"15.2-15.3":0.2348,"15.4":0.32439,"15.5":0.51903,"15.6":1.35318,"16.0":2.70018,"16.1":3.32734,"16.2":2.04831,"16.3":9.89552,"16.4":5.56411,"16.5":0.07724},P:{"4":0.17483,"20":2.06713,"5.0-5.4":0.01028,"6.2-6.4":0,"7.2-7.4":0.07199,"8.2":0,"9.2":0.01028,"10.1":0,"11.1-11.2":0.03085,"12.0":0.01028,"13.0":0.03085,"14.0":0.04114,"15.0":0.02057,"16.0":0.07199,"17.0":0.06171,"18.0":0.07199,"19.0":0.1954},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00763,"4.4":0,"4.4.3-4.4.4":0.0407},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00378,"9":0,"10":0.00378,"11":0.11709,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10134},Q:{"13.1":0},O:{"0":0.17102},H:{"0":0.20988},L:{"0":56.54291}}; diff --git a/node_modules/caniuse-lite/data/regions/TJ.js b/node_modules/caniuse-lite/data/regions/TJ.js new file mode 100644 index 0000000..34d6e6b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TJ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00784,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00784,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.01568,"109":0,"110":0.00523,"111":0.12542,"112":0.16723,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00261,"36":0,"37":0,"38":0,"39":0.00261,"40":0.00523,"41":0,"42":0,"43":0,"44":0.00784,"45":0,"46":0,"47":0,"48":0,"49":0.02352,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00261,"71":0.00261,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.01045,"80":0,"81":0.00523,"83":0.08362,"84":0.02874,"85":0.03397,"86":0.00784,"87":0.02352,"88":0.00261,"89":0.00784,"90":0.00261,"91":0,"92":0.00261,"93":0.00261,"94":0.6428,"95":0.00261,"96":0.01045,"97":0.00784,"98":0.00523,"99":0.00523,"100":0.00523,"101":0.00784,"102":0.01568,"103":0.00523,"104":0.00261,"105":0.00261,"106":0.02613,"107":0.00784,"108":0.12542,"109":0.78129,"110":0.07055,"111":0.80219,"112":1.0243,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00261,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00261,"56":0,"57":0,"58":0.00261,"60":0.00523,"62":0,"63":0.00523,"64":0.00523,"65":0.00261,"66":0.00261,"67":0.01307,"68":0.04181,"69":0.08362,"70":0,"71":0,"72":0,"73":0.01307,"74":0.01307,"75":0.00261,"76":0,"77":0,"78":0,"79":0.01829,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00261,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00523,"92":0,"93":0,"94":0,"95":0.0601,"96":0.02352,"97":0.11236,"98":0.01045,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0.00261,"16":0.00784,"17":0,"18":0.00784,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00261,"91":0,"92":0.01045,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00261,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00261,"108":0,"109":0.00784,"110":0.0392,"111":0.07578,"112":0.21688,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00261,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.07316,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00523,"14.1":0.0209,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0.01568,"16.0":0.01045,"16.1":0.00523,"16.2":0.01045,"16.3":0.03397,"16.4":0.03136,"16.5":0},G:{"8":0.00125,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.04881,"5.0-5.1":0.04756,"6.0-6.1":0.00501,"7.0-7.1":0.00751,"8.1-8.4":0,"9.0-9.2":0.01502,"9.3":0.03504,"10.0-10.2":0.00501,"10.3":0.02753,"11.0-11.2":0.01502,"11.3-11.4":0.01126,"12.0-12.1":0.03004,"12.2-12.5":0.71712,"13.0-13.1":0.00626,"13.2":0.00626,"13.3":0.04881,"13.4-13.7":0.19649,"14.0-14.4":0.42552,"14.5-14.8":0.28535,"15.0-15.1":0.22027,"15.2-15.3":0.28785,"15.4":0.2453,"15.5":0.30412,"15.6":0.41551,"16.0":1.19771,"16.1":1.56565,"16.2":0.75091,"16.3":2.75085,"16.4":1.71083,"16.5":0.04255},P:{"4":0.49425,"20":1.14989,"5.0-5.4":0.05043,"6.2-6.4":0.12104,"7.2-7.4":0.47408,"8.2":0,"9.2":0.08069,"10.1":0.02017,"11.1-11.2":0.13113,"12.0":0.08069,"13.0":0.05043,"14.0":0.10087,"15.0":0.57494,"16.0":0.36312,"17.0":0.12104,"18.0":0.1513,"19.0":0.5346},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00634,"4.2-4.3":0.01427,"4.4":0,"4.4.3-4.4.4":0.05074},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0.00299,"10":0,"11":0.01792,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.01477},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09603},Q:{"13.1":0},O:{"0":1.33705},H:{"0":2.19597},L:{"0":70.5396}}; diff --git a/node_modules/caniuse-lite/data/regions/TK.js b/node_modules/caniuse-lite/data/regions/TK.js new file mode 100644 index 0000000..830b219 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TK.js @@ -0,0 +1 @@ +module.exports={C:{"112":0.55169,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 113 114 3.5 3.6"},D:{"108":0.14011,"109":0.07006,"111":0.21017,"112":0.6918,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 110 113 114 115 116"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"107":0.07006,"112":0.42034,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 113"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.5 15.6 16.0 16.2 16.5","15.1":0.62175,"15.2-15.3":23.46876,"15.4":0.49039,"16.1":45.4138,"16.3":1.59377,"16.4":0.97203},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":1.38896,"15.0-15.1":1.04193,"15.2-15.3":1.94438,"15.4":0,"15.5":0,"15.6":0,"16.0":0.27813,"16.1":0.13864,"16.2":0.13864,"16.3":2.29141,"16.4":0.90245,"16.5":0.27813},P:{"4":0.13557,"20":0.42757,"5.0-5.4":0.01043,"6.2-6.4":0,"7.2-7.4":0.04171,"8.2":0,"9.2":0.01043,"10.1":0,"11.1-11.2":0.01043,"12.0":0,"13.0":0.02086,"14.0":0,"15.0":0,"16.0":0.06961,"17.0":0.02086,"18.0":0.01043,"19.0":0.06961},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":3.8881}}; diff --git a/node_modules/caniuse-lite/data/regions/TL.js b/node_modules/caniuse-lite/data/regions/TL.js new file mode 100644 index 0000000..726e177 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TL.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0.04166,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0.00521,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.01041,"38":0.01041,"39":0,"40":0,"41":0.05207,"42":0,"43":0.01041,"44":0.01041,"45":0.00521,"46":0,"47":0.00521,"48":0.01562,"49":0,"50":0,"51":0,"52":0,"53":0.00521,"54":0,"55":0,"56":0.02083,"57":0.01562,"58":0.00521,"59":0,"60":0,"61":0.03645,"62":0.00521,"63":0,"64":0,"65":0,"66":0,"67":0.01562,"68":0,"69":0,"70":0,"71":0,"72":0.01041,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.08852,"79":0.15621,"80":0.00521,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.02604,"89":0.01562,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02604,"96":0.00521,"97":0,"98":0.00521,"99":0.01041,"100":0,"101":0,"102":0.02604,"103":0.00521,"104":0.00521,"105":0.00521,"106":0.01562,"107":0.02083,"108":0.02083,"109":0.01562,"110":0.06769,"111":2.7493,"112":1.7079,"113":0.12497,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.01562,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00521,"41":0,"42":0.01041,"43":0.01041,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00521,"50":0,"51":0,"52":0,"53":0.00521,"54":0,"55":0.01041,"56":0.00521,"57":0,"58":0.0729,"59":0.01562,"60":0,"61":0,"62":0.00521,"63":0.01041,"64":0.01041,"65":0.00521,"66":0.00521,"67":0,"68":0.00521,"69":0,"70":0,"71":0.00521,"72":0.01041,"73":0,"74":0.05728,"75":0,"76":0.01041,"77":0,"78":0.02083,"79":0.00521,"80":0.22911,"81":0,"83":0.00521,"84":0.01041,"85":0.02604,"86":0.00521,"87":0.03124,"88":0.03124,"89":0.03124,"90":0.02083,"91":0.00521,"92":0.00521,"93":0,"94":0.00521,"95":0.01562,"96":0.02083,"97":0.00521,"98":0.04166,"99":0.02604,"100":0.00521,"101":0.00521,"102":0.00521,"103":0.151,"104":0.03645,"105":0.04686,"106":0.02604,"107":0.04686,"108":0.12497,"109":2.32753,"110":0.27076,"111":4.95186,"112":5.42049,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.03645,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00521,"56":0,"57":0,"58":0.00521,"60":0,"62":0,"63":0.01041,"64":0,"65":0,"66":0,"67":0.06248,"68":0.01562,"69":0.07811,"70":0,"71":0,"72":0.00521,"73":0.00521,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.00521,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00521,"87":0,"88":0,"89":0,"90":0.00521,"91":0,"92":0,"93":0,"94":0,"95":0.05728,"96":0.03645,"97":0.2968,"98":0.00521,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.02083,"13":0.05207,"14":0.01041,"15":0,"16":0.01041,"17":0.00521,"18":0.03645,"79":0,"80":0,"81":0,"83":0,"84":0.01562,"85":0,"86":0,"87":0,"88":0,"89":0.00521,"90":0.04686,"91":0,"92":0.04166,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.01041,"101":0.01041,"102":0,"103":0.00521,"104":0.01041,"105":0.02083,"106":0.01041,"107":0.02083,"108":0.02083,"109":0.06248,"110":0.151,"111":1.14033,"112":1.59855,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00521,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.01562,"13.1":0.04686,"14.1":0.09893,"15.1":0.09893,"15.2-15.3":0.01041,"15.4":0.03124,"15.5":0.01041,"15.6":0.04686,"16.0":0,"16.1":0.01041,"16.2":0.06248,"16.3":0.0729,"16.4":0.01041,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.10718,"5.0-5.1":0,"6.0-6.1":0.00105,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02207,"10.0-10.2":0.00105,"10.3":0.05149,"11.0-11.2":0.00946,"11.3-11.4":0.0021,"12.0-12.1":0.04308,"12.2-12.5":0.69772,"13.0-13.1":0.04939,"13.2":0.01156,"13.3":0.11243,"13.4-13.7":0.06515,"14.0-14.4":0.58529,"14.5-14.8":0.52224,"15.0-15.1":0.33415,"15.2-15.3":0.29632,"15.4":0.27636,"15.5":0.45709,"15.6":0.96883,"16.0":0.68406,"16.1":1.21261,"16.2":0.45604,"16.3":2.02277,"16.4":0.73135,"16.5":0.02417},P:{"4":0.11184,"20":0.51852,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.061,"8.2":0,"9.2":0.04067,"10.1":0,"11.1-11.2":0.0305,"12.0":0,"13.0":0.01017,"14.0":0.0305,"15.0":0.02033,"16.0":0.22367,"17.0":0.0305,"18.0":0.08134,"19.0":0.18301},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.05728,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.0719},Q:{"13.1":0},O:{"0":0.67102},H:{"0":0.74418},L:{"0":61.7276}}; diff --git a/node_modules/caniuse-lite/data/regions/TM.js b/node_modules/caniuse-lite/data/regions/TM.js new file mode 100644 index 0000000..7e42c4f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.04819,"50":0.06325,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00904,"69":0,"70":0.00301,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00301,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0.00904,"85":0.00602,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00301,"100":0,"101":0,"102":0.00301,"103":0,"104":0.00602,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.00301,"111":0.02108,"112":0.06928,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.04217,"51":0,"52":0.00904,"53":0,"54":0,"55":0,"56":0.01807,"57":0,"58":0,"59":0,"60":0,"61":0.00602,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00301,"68":0,"69":0.00301,"70":0.02108,"71":0,"72":0.00301,"73":0.0241,"74":0.00301,"75":0.00602,"76":0,"77":0,"78":0.01205,"79":0.01205,"80":0.00301,"81":0.00301,"83":0.00301,"84":0.00602,"85":0,"86":0.01807,"87":0.00904,"88":0.01506,"89":0,"90":0.00602,"91":0,"92":0.00602,"93":0,"94":1.95178,"95":0.00904,"96":0.01807,"97":0.00904,"98":0.00301,"99":0.00301,"100":0.03012,"101":0.01506,"102":0,"103":0.03313,"104":0.06024,"105":0.02108,"106":0.03614,"107":0.16566,"108":0.02711,"109":1.19275,"110":0.04518,"111":1.54516,"112":1.30118,"113":0.00301,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00301,"62":0,"63":0,"64":0,"65":0,"66":0.00301,"67":0,"68":0.00301,"69":0,"70":0,"71":0,"72":0,"73":0.00904,"74":0.00301,"75":0,"76":0,"77":0,"78":0,"79":0.00301,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0.00602,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.02108,"97":0.03916,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0.02711,"85":0,"86":0,"87":0,"88":0.00301,"89":0,"90":0,"91":0,"92":0.02711,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00602,"99":0.00602,"100":0,"101":0,"102":0.00602,"103":0,"104":0,"105":0,"106":0,"107":0.00301,"108":0.00904,"109":0.00301,"110":0.08132,"111":0.02108,"112":0.09638,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.00602,"15.6":0.00904,"16.0":0,"16.1":0.01205,"16.2":0.00301,"16.3":0.01205,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00756,"12.2-12.5":0.14048,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.00378,"14.5-14.8":0.00756,"15.0-15.1":0.01133,"15.2-15.3":0.01133,"15.4":0.01133,"15.5":0.06835,"15.6":0.04568,"16.0":0.26963,"16.1":0.395,"16.2":0.26207,"16.3":1.42852,"16.4":0.58906,"16.5":0},P:{"4":0.06001,"20":0.71017,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.11003,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01,"12.0":0,"13.0":0.03001,"14.0":1.13027,"15.0":0.03001,"16.0":0.06001,"17.0":0.09002,"18.0":0.03001,"19.0":0.29007},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00333,"4.4":0,"4.4.3-4.4.4":0.03667},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.03916,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04193},Q:{"13.1":0},O:{"0":0.36338},H:{"0":0.41018},L:{"0":84.26325}}; diff --git a/node_modules/caniuse-lite/data/regions/TN.js b/node_modules/caniuse-lite/data/regions/TN.js new file mode 100644 index 0000000..1ec1ca5 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.02465,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00411,"69":0,"70":0,"71":0,"72":0.00411,"73":0,"74":0,"75":0.00822,"76":0,"77":0,"78":0.00411,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00411,"100":0,"101":0,"102":0.01233,"103":0,"104":0.00411,"105":0.00411,"106":0,"107":0.00411,"108":0.00411,"109":0.00822,"110":0.02876,"111":0.29996,"112":0.25065,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00411,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00411,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.03698,"50":0.00411,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00822,"57":0,"58":0.00411,"59":0,"60":0.00411,"61":0,"62":0,"63":0.00411,"64":0,"65":0.00822,"66":0,"67":0.00411,"68":0.00411,"69":0.00411,"70":0.00822,"71":0.00411,"72":0.00411,"73":0.00411,"74":0.00822,"75":0.00411,"76":0.00411,"77":0.00411,"78":0.01644,"79":0.01644,"80":0.00411,"81":0.02465,"83":0.00822,"84":0.00411,"85":0.03287,"86":0.01233,"87":0.03698,"88":0.00822,"89":0.01233,"90":0.00411,"91":0.02465,"92":0.00822,"93":0.00411,"94":0.00411,"95":0.01233,"96":0.01233,"97":0.00822,"98":0.01644,"99":0.01233,"100":0.00822,"101":0.01233,"102":0.01644,"103":0.04109,"104":0.01233,"105":0.03287,"106":0.03287,"107":0.02876,"108":0.06164,"109":2.17366,"110":0.12327,"111":3.3324,"112":3.98984,"113":0.00411,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00411,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00411,"68":0.00411,"69":0.01644,"70":0,"71":0,"72":0,"73":0,"74":0.00411,"75":0,"76":0,"77":0,"78":0,"79":0.00411,"80":0,"81":0,"82":0,"83":0.00411,"84":0,"85":0.01233,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00411,"92":0,"93":0,"94":0,"95":0.06985,"96":0.36981,"97":0.85467,"98":0.02876,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00411},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00411,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0.00411,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00822,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00411,"106":0,"107":0.00411,"108":0.00411,"109":0.02465,"110":0.02055,"111":0.27119,"112":0.66155,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01644,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00822,"14.1":0.01644,"15.1":0,"15.2-15.3":0,"15.4":0.00411,"15.5":0.00411,"15.6":0.03287,"16.0":0.00822,"16.1":0.00822,"16.2":0.02055,"16.3":0.03698,"16.4":0.01644,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00738,"6.0-6.1":0.00277,"7.0-7.1":0.07101,"8.1-8.4":0.00277,"9.0-9.2":0.00092,"9.3":0.0664,"10.0-10.2":0.0083,"10.3":0.04427,"11.0-11.2":0.0083,"11.3-11.4":0.00461,"12.0-12.1":0.00553,"12.2-12.5":0.51553,"13.0-13.1":0.00553,"13.2":0.00646,"13.3":0.03412,"13.4-13.7":0.06732,"14.0-14.4":0.45928,"14.5-14.8":0.29327,"15.0-15.1":0.083,"15.2-15.3":0.1328,"15.4":0.11159,"15.5":0.21857,"15.6":0.51277,"16.0":0.593,"16.1":0.98219,"16.2":0.60684,"16.3":2.10087,"16.4":1.2893,"16.5":0.02859},P:{"4":0.17421,"20":1.10677,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.29719,"8.2":0,"9.2":0.01025,"10.1":0,"11.1-11.2":0.0205,"12.0":0,"13.0":0.03074,"14.0":0.0205,"15.0":0.0205,"16.0":0.06149,"17.0":0.06149,"18.0":0.04099,"19.0":0.11273},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01788,"4.2-4.3":0.0143,"4.4":0,"4.4.3-4.4.4":0.14302},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01789,"9":0.00447,"10":0.00447,"11":0.1252,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08247},Q:{"13.1":0},O:{"0":0.15317},H:{"0":0.27328},L:{"0":74.10939}}; diff --git a/node_modules/caniuse-lite/data/regions/TO.js b/node_modules/caniuse-lite/data/regions/TO.js new file mode 100644 index 0000000..6487b67 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TO.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00619,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00619,"110":0.02475,"111":0.74256,"112":1.37992,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00619,"64":0,"65":0,"66":0,"67":0,"68":0.00619,"69":0,"70":0,"71":0.00619,"72":0.00619,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.01856,"81":0,"83":0,"84":0.01856,"85":0,"86":0,"87":0.01238,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.01856,"94":0.01238,"95":0.22277,"96":0,"97":0.01238,"98":0,"99":0.59405,"100":0,"101":0.00619,"102":0,"103":0.22277,"104":0.09282,"105":0.06188,"106":0.95295,"107":0.01856,"108":0.14851,"109":0.64974,"110":0.1547,"111":7.81544,"112":8.6137,"113":0.03094,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.45172,"98":0.00619,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0.00619,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.03713,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00619,"104":0,"105":0,"106":0.06188,"107":0.03094,"108":0.01856,"109":0.06807,"110":0.06188,"111":2.85886,"112":7.35134,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00619,"14":0.01238,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.02475,"14.1":0.03713,"15.1":0,"15.2-15.3":0.00619,"15.4":0.07426,"15.5":0.07426,"15.6":0.03094,"16.0":0.01238,"16.1":0.04332,"16.2":0.01238,"16.3":0.1547,"16.4":0.03713,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.20614,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.00539,"11.3-11.4":0.02021,"12.0-12.1":0.03503,"12.2-12.5":0.64268,"13.0-13.1":0.01078,"13.2":0,"13.3":0.02964,"13.4-13.7":0.03503,"14.0-14.4":0.26542,"14.5-14.8":1.19912,"15.0-15.1":0.33549,"15.2-15.3":0.26003,"15.4":0.45136,"15.5":0.81244,"15.6":0.77741,"16.0":0.84208,"16.1":0.96334,"16.2":0.71678,"16.3":3.52596,"16.4":1.12906,"16.5":0.00539},P:{"4":0.09159,"20":0.43758,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.10176,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.06106,"12.0":0.02035,"13.0":0.01018,"14.0":0.02035,"15.0":0.13229,"16.0":0.173,"17.0":0,"18.0":0.02035,"19.0":0.09159},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.09},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01238,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.10292},Q:{"13.1":0},O:{"0":0.04193},H:{"0":0.00361},L:{"0":52.01158}}; diff --git a/node_modules/caniuse-lite/data/regions/TR.js b/node_modules/caniuse-lite/data/regions/TR.js new file mode 100644 index 0000000..3be1d68 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TR.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00379,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00379,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00379,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01137,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00379,"110":0.00758,"111":0.12883,"112":0.12883,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00758,"23":0,"24":0,"25":0,"26":0.02273,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.03789,"35":0,"36":0,"37":0,"38":0.03789,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.03031,"48":0,"49":0.04168,"50":0,"51":0,"52":0,"53":0.00758,"54":0,"55":0,"56":0,"57":0,"58":0.00379,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00379,"66":0.00379,"67":0,"68":0.01895,"69":0.00379,"70":0.00379,"71":0.00758,"72":0,"73":0.00758,"74":0.00379,"75":0.00379,"76":0.00379,"77":0.00379,"78":0.00379,"79":0.1023,"80":0.01137,"81":0.01137,"83":0.02273,"84":0.00758,"85":0.02273,"86":0.01895,"87":0.02652,"88":0.00758,"89":0.00379,"90":0.00379,"91":0.01137,"92":0.00758,"93":0.00379,"94":0.00758,"95":0.00758,"96":0.01516,"97":0.00758,"98":0.00758,"99":0.03789,"100":0.01137,"101":0.00758,"102":0.00758,"103":0.03031,"104":0.01516,"105":0.01137,"106":0.02273,"107":0.02652,"108":0.10609,"109":2.09911,"110":0.0682,"111":2.53105,"112":3.14108,"113":0.00379,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01137,"29":0,"30":0,"31":0.00379,"32":0.00379,"33":0,"34":0,"35":0,"36":0.00758,"37":0,"38":0,"39":0,"40":0.02652,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.04547,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00379,"68":0.01516,"69":0.05305,"70":0,"71":0,"72":0,"73":0,"74":0.00379,"75":0.00379,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00379,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00379,"95":0.04547,"96":0.14398,"97":0.413,"98":0.01516,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0.00379,"14":0,"15":0,"16":0,"17":0.00379,"18":0.00758,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00379,"93":0,"94":0,"95":0,"96":0.00379,"97":0.00379,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00379,"108":0.00379,"109":0.04926,"110":0.01516,"111":0.2425,"112":0.59487,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01137,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00379,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00379,"13.1":0.01137,"14.1":0.01895,"15.1":0.00379,"15.2-15.3":0.00379,"15.4":0.00379,"15.5":0.00758,"15.6":0.05305,"16.0":0.00379,"16.1":0.01895,"16.2":0.02273,"16.3":0.09094,"16.4":0.04547,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00188,"7.0-7.1":0.05078,"8.1-8.4":0.01505,"9.0-9.2":0.00752,"9.3":0.15987,"10.0-10.2":0.01317,"10.3":0.16551,"11.0-11.2":0.01128,"11.3-11.4":0.0094,"12.0-12.1":0.01881,"12.2-12.5":1.45197,"13.0-13.1":0.01505,"13.2":0.00564,"13.3":0.04138,"13.4-13.7":0.12601,"14.0-14.4":0.28776,"14.5-14.8":0.62819,"15.0-15.1":0.0978,"15.2-15.3":0.14294,"15.4":0.15799,"15.5":0.28212,"15.6":0.67709,"16.0":0.67897,"16.1":1.51592,"16.2":0.95732,"16.3":5.00856,"16.4":3.00363,"16.5":0.06019},P:{"4":0.74458,"20":2.67233,"5.0-5.4":0.0204,"6.2-6.4":0,"7.2-7.4":0.1632,"8.2":0.0102,"9.2":0.0306,"10.1":0,"11.1-11.2":0.0612,"12.0":0.0204,"13.0":0.0816,"14.0":0.0306,"15.0":0.0204,"16.0":0.0816,"17.0":0.18359,"18.0":0.0714,"19.0":0.23459},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00255,"4.2-4.3":0.01404,"4.4":0,"4.4.3-4.4.4":0.05615},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.1023,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.12422},Q:{"13.1":0},O:{"0":0.11801},H:{"0":0.69974},L:{"0":62.94638}}; diff --git a/node_modules/caniuse-lite/data/regions/TT.js b/node_modules/caniuse-lite/data/regions/TT.js new file mode 100644 index 0000000..e7e8b57 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00459,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00459,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00459,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00459,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00459,"109":0.00459,"110":0.01378,"111":0.39049,"112":0.32158,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00459,"35":0,"36":0,"37":0,"38":0.00919,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00459,"48":0,"49":0.00919,"50":0,"51":0,"52":0,"53":0.00919,"54":0,"55":0,"56":0.00459,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00459,"66":0,"67":0,"68":0.02756,"69":0,"70":0.01378,"71":0.01378,"72":0,"73":0,"74":0.00459,"75":0.00459,"76":0.01378,"77":0.00459,"78":0,"79":0.06432,"80":0,"81":0.01378,"83":0.00919,"84":0.00919,"85":0,"86":0.00459,"87":0.03216,"88":0.00459,"89":0.00459,"90":0,"91":0.01838,"92":0.00459,"93":0.03216,"94":0.00459,"95":0.00459,"96":0.00459,"97":0.00459,"98":0,"99":0.03216,"100":0.00919,"101":0.00459,"102":0.00459,"103":0.3032,"104":0.00919,"105":0.00919,"106":0.01838,"107":0.01838,"108":0.03675,"109":0.65694,"110":0.21132,"111":4.87423,"112":5.2096,"113":0.00459,"114":0.00459,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01378,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00459,"69":0.01378,"70":0,"71":0,"72":0,"73":0,"74":0.00459,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.02297,"96":0.12863,"97":0.35833,"98":0.00919,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00459,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00459,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00459,"103":0,"104":0,"105":0,"106":0.00459,"107":0.00459,"108":0.00919,"109":0.03216,"110":0.06891,"111":0.74882,"112":1.69978,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00459,"14":0.01378,"15":0.00919,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00919,"13.1":0.05053,"14.1":0.05972,"15.1":0.00459,"15.2-15.3":0.00459,"15.4":0.02297,"15.5":0.09188,"15.6":0.11485,"16.0":0.01838,"16.1":0.09188,"16.2":0.09647,"16.3":0.33996,"16.4":0.16998,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01642,"6.0-6.1":0,"7.0-7.1":0.02669,"8.1-8.4":0,"9.0-9.2":0.00616,"9.3":0.11291,"10.0-10.2":0,"10.3":0.13754,"11.0-11.2":0.00821,"11.3-11.4":0.00616,"12.0-12.1":0.01232,"12.2-12.5":0.5974,"13.0-13.1":0.00205,"13.2":0.00205,"13.3":0.01642,"13.4-13.7":0.04927,"14.0-14.4":0.12317,"14.5-14.8":0.31204,"15.0-15.1":0.05543,"15.2-15.3":0.09443,"15.4":0.1745,"15.5":0.29151,"15.6":0.79447,"16.0":1.2728,"16.1":2.07754,"16.2":1.23174,"16.3":7.00246,"16.4":4.15713,"16.5":0.11291},P:{"4":0.57574,"20":4.35003,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.23456,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.02132,"12.0":0,"13.0":0.03199,"14.0":0.02132,"15.0":0.04265,"16.0":0.04265,"17.0":0.1386,"18.0":0.07463,"19.0":0.2239},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.05904,"4.2-4.3":0.38378,"4.4":0,"4.4.3-4.4.4":0.64948},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00919,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21083},Q:{"13.1":0},O:{"0":0.03784},H:{"0":0.27637},L:{"0":54.18254}}; diff --git a/node_modules/caniuse-lite/data/regions/TV.js b/node_modules/caniuse-lite/data/regions/TV.js new file mode 100644 index 0000000..0f7e239 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TV.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.22452,"112":0,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.13471,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.0449,"106":0,"107":0,"108":0,"109":0.0449,"110":0,"111":3.53619,"112":2.95244,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.22452,"110":0,"111":1.16376,"112":1.47809,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0449,"14.1":0,"15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0,"15.6":0,"16.0":0.0449,"16.1":0,"16.2":0,"16.3":0,"16.4":0,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0.11067,"15.0-15.1":0,"15.2-15.3":0,"15.4":0,"15.5":0.22134,"15.6":0,"16.0":0,"16.1":2.65855,"16.2":0.99702,"16.3":0.33251,"16.4":0.22134,"16.5":0},P:{"4":0,"20":1.6834,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0.11257},L:{"0":83.0926}}; diff --git a/node_modules/caniuse-lite/data/regions/TW.js b/node_modules/caniuse-lite/data/regions/TW.js new file mode 100644 index 0000000..beb5e9f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.02102,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.00526,"46":0.00526,"47":0.00526,"48":0.00526,"49":0.01051,"50":0.00526,"51":0.00526,"52":0.00526,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00526,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00526,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00526,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00526,"103":0,"104":0.00526,"105":0,"106":0,"107":0,"108":0.00526,"109":0.00526,"110":0.01051,"111":0.26275,"112":0.24699,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00526,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0.00526,"31":0,"32":0,"33":0,"34":0.01577,"35":0,"36":0,"37":0,"38":0.05781,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.05781,"50":0.01051,"51":0.00526,"52":0.00526,"53":0.05255,"54":0.00526,"55":0.00526,"56":0.02102,"57":0,"58":0.00526,"59":0,"60":0,"61":0.02628,"62":0,"63":0.00526,"64":0.00526,"65":0.00526,"66":0.00526,"67":0.01051,"68":0.00526,"69":0.00526,"70":0.00526,"71":0.00526,"72":0.00526,"73":0.01051,"74":0.01577,"75":0.00526,"76":0.00526,"77":0.00526,"78":0.00526,"79":0.33107,"80":0.00526,"81":0.02102,"83":0.01051,"84":0.00526,"85":0.00526,"86":0.01051,"87":0.06306,"88":0.00526,"89":0.03153,"90":0.00526,"91":0.01051,"92":0.01051,"93":0.00526,"94":0.00526,"95":0.01051,"96":0.02102,"97":0.03679,"98":0.01577,"99":0.02628,"100":0.01577,"101":0.02102,"102":0.02102,"103":0.08408,"104":0.02102,"105":0.02628,"106":0.03153,"107":0.03679,"108":0.08934,"109":2.76413,"110":0.14189,"111":5.76999,"112":7.15206,"113":0.01051,"114":0.01051,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.01577,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.01051,"37":0.01051,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.05255,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01051,"96":0.00526,"97":0.03679,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00526,"18":0.01051,"79":0,"80":0,"81":0,"83":0,"84":0.00526,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00526,"106":0.00526,"107":0.00526,"108":0.01051,"109":0.06832,"110":0.02628,"111":0.58331,"112":1.42936,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.03679,"14":0.11036,"15":0.01577,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00526,"12.1":0.02628,"13.1":0.08408,"14.1":0.3153,"15.1":0.03153,"15.2-15.3":0.03153,"15.4":0.11561,"15.5":0.21546,"15.6":0.68315,"16.0":0.02628,"16.1":0.1524,"16.2":0.24699,"16.3":1.29273,"16.4":0.33107,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03634,"6.0-6.1":0.02019,"7.0-7.1":0.1736,"8.1-8.4":0.05652,"9.0-9.2":0.02019,"9.3":0.29876,"10.0-10.2":0.02019,"10.3":0.36739,"11.0-11.2":0.04037,"11.3-11.4":0.04441,"12.0-12.1":0.08882,"12.2-12.5":1.05777,"13.0-13.1":0.05248,"13.2":0.02422,"13.3":0.09689,"13.4-13.7":0.23012,"14.0-14.4":1.20311,"14.5-14.8":1.80063,"15.0-15.1":0.72267,"15.2-15.3":0.72267,"15.4":0.99317,"15.5":1.32019,"15.6":2.65653,"16.0":2.70094,"16.1":4.74784,"16.2":2.9674,"16.3":11.49817,"16.4":4.31181,"16.5":0.02422},P:{"4":0.78247,"20":2.58648,"5.0-5.4":0.07607,"6.2-6.4":0,"7.2-7.4":0,"8.2":0.01087,"9.2":0.0326,"10.1":0.01087,"11.1-11.2":0.04347,"12.0":0.02174,"13.0":0.09781,"14.0":0.05434,"15.0":0.04347,"16.0":0.07607,"17.0":0.10868,"18.0":0.13041,"19.0":0.30429},I:{"0":0,"3":0,"4":0.01083,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01805,"4.4":0,"4.4.3-4.4.4":0.07943},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.08934,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.08067},Q:{"13.1":0.00949},O:{"0":0.10914},H:{"0":0.17071},L:{"0":30.24049}}; diff --git a/node_modules/caniuse-lite/data/regions/TZ.js b/node_modules/caniuse-lite/data/regions/TZ.js new file mode 100644 index 0000000..8150553 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/TZ.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00405,"38":0.00202,"47":0.00405,"52":0.00607,"56":0.00202,"58":0.00202,"64":0.00202,"65":0.00202,"66":0.00202,"67":0.00202,"68":0.00607,"72":0.00405,"78":0.0081,"84":0.00202,"91":0.02429,"99":0.00405,"100":0.00405,"101":0.00607,"102":0.03643,"103":0.00405,"105":0.00607,"106":0.00607,"107":0.01012,"108":0.01214,"109":0.02429,"110":0.02226,"111":0.68614,"112":0.60113,"113":0.08096,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 59 60 61 62 63 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 93 94 95 96 97 98 104 114 3.5 3.6"},D:{"11":0.01214,"49":0.00405,"50":0.00202,"55":0.00405,"58":0.00202,"62":0.00405,"63":0.00202,"64":0.00405,"65":0.00202,"67":0.00202,"69":0.00405,"70":0.01012,"71":0.00202,"72":0.00405,"73":0.01417,"74":0.02834,"76":0.00405,"77":0.0081,"78":0.00202,"79":0.03643,"80":0.01012,"81":0.0081,"83":0.0081,"84":0.02226,"85":0.00405,"86":0.0081,"87":0.02226,"88":0.01822,"89":0.00607,"90":0.00607,"91":0.00607,"92":0.00607,"93":0.00607,"94":0.57886,"95":0.01012,"96":0.01214,"97":0.00607,"98":0.01012,"99":0.36027,"100":0.01214,"101":0.01214,"102":0.03238,"103":0.05262,"104":0.01417,"105":0.01619,"106":0.01417,"107":0.0425,"108":0.06072,"109":0.97557,"110":0.11739,"111":3.32138,"112":4.10062,"113":0.01214,"114":0.00607,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 56 57 59 60 61 66 68 75 115 116"},F:{"28":0.00202,"67":0.00202,"73":0.00405,"74":0.00405,"79":0.01012,"92":0.00202,"94":0.00202,"95":0.17609,"96":0.0587,"97":0.44123,"98":0.02226,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 91 93 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01214,"13":0.0081,"14":0.00202,"15":0.00607,"16":0.01012,"17":0.00405,"18":0.03846,"84":0.00405,"86":0.00405,"89":0.0081,"90":0.01214,"92":0.02024,"100":0.00202,"104":0.00202,"105":0.00202,"106":0.00202,"107":0.01417,"108":0.01417,"109":0.02226,"110":0.04858,"111":0.44933,"112":0.82782,_:"79 80 81 83 85 87 88 91 93 94 95 96 97 98 99 101 102 103 113"},E:{"4":0,"13":0.01012,"14":0.01012,"15":0.02024,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 16.5","11.1":0.00202,"12.1":0.01012,"13.1":0.02429,"14.1":0.03846,"15.1":0.0081,"15.2-15.3":0.00202,"15.4":0.01417,"15.5":0.01214,"15.6":0.04453,"16.0":0.01214,"16.1":0.02631,"16.2":0.02631,"16.3":0.09108,"16.4":0.04858},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00268,"6.0-6.1":0,"7.0-7.1":0.01555,"8.1-8.4":0,"9.0-9.2":0.00429,"9.3":0.03377,"10.0-10.2":0.00214,"10.3":0.0595,"11.0-11.2":0.00107,"11.3-11.4":0.00107,"12.0-12.1":0.01126,"12.2-12.5":0.62396,"13.0-13.1":0.00429,"13.2":0.00482,"13.3":0.02305,"13.4-13.7":0.07934,"14.0-14.4":0.19941,"14.5-14.8":0.19673,"15.0-15.1":0.09863,"15.2-15.3":0.12544,"15.4":0.16671,"15.5":0.24658,"15.6":0.20852,"16.0":0.31788,"16.1":0.37738,"16.2":0.38328,"16.3":0.9917,"16.4":0.61485,"16.5":0.01501},P:{"4":0.1765,"20":0.66448,"5.0-5.4":0.04153,"6.2-6.4":0.01038,"7.2-7.4":0.16612,"8.2":0,"9.2":0.05191,"10.1":0.02017,"11.1-11.2":0.05191,"12.0":0.04153,"13.0":0.02077,"14.0":0.02077,"15.0":0.01038,"16.0":0.11421,"17.0":0.08306,"18.0":0.05191,"19.0":0.14536},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0021,"4.4":0,"4.4.3-4.4.4":0.04575},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.03643,_:"6 7 8 9 10 5.5"},S:{"2.5":0.98093,_:"3.0-3.1"},J:{"7":0,"10":0.01595},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.14355},Q:{"13.1":0},O:{"0":0.81345},H:{"0":16.90493},L:{"0":58.91247}}; diff --git a/node_modules/caniuse-lite/data/regions/UA.js b/node_modules/caniuse-lite/data/regions/UA.js new file mode 100644 index 0000000..780b18f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0.0061,"51":0,"52":0.11594,"53":0.0061,"54":0,"55":0,"56":0.0061,"57":0.0061,"58":0,"59":0,"60":0.06102,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.27459,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.10984,"79":0.0061,"80":0.0061,"81":0.03051,"82":0.0061,"83":0.0061,"84":0,"85":0,"86":0,"87":0.0061,"88":0.0061,"89":0,"90":0,"91":0.0061,"92":0,"93":0,"94":0,"95":0.0061,"96":0,"97":0.0061,"98":0,"99":0.0061,"100":0,"101":0.0061,"102":0.17696,"103":0.01831,"104":0.01831,"105":0.0122,"106":0.0122,"107":0.0122,"108":0.0122,"109":0.01831,"110":0.07322,"111":0.95801,"112":0.81157,"113":0.0061,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0.0061,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0.0061,"42":0.0061,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.09153,"50":0,"51":0.0061,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.0061,"58":0.0061,"59":0.12204,"60":0,"61":0.0122,"62":0,"63":0.0061,"64":0,"65":0,"66":0.0061,"67":0,"68":0.0061,"69":0.0061,"70":0.0061,"71":0.0061,"72":0.0061,"73":0.0061,"74":0.0061,"75":0.0061,"76":0.0061,"77":0.0061,"78":0.0061,"79":0.03051,"80":0.01831,"81":0.03661,"83":0.04271,"84":0.06102,"85":0.07322,"86":0.05492,"87":0.03661,"88":0.01831,"89":0.02441,"90":0.18916,"91":0.17086,"92":0.16475,"93":0.15865,"94":0.17696,"95":0.01831,"96":0.03661,"97":0.04271,"98":0.03661,"99":0.03661,"100":0.04882,"101":0.03661,"102":0.07933,"103":0.10373,"104":0.03661,"105":0.06102,"106":0.10984,"107":0.10984,"108":0.18306,"109":3.18524,"110":0.24408,"111":6.67559,"112":8.71976,"113":0.0122,"114":0.0122,"115":0,"116":0},F:{"9":0,"11":0.299,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.0122,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0061,"47":0,"48":0.0061,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.0061,"68":0.0122,"69":0.02441,"70":0.0061,"71":0,"72":0.0122,"73":0.0061,"74":0.09153,"75":0.01831,"76":0,"77":0.0061,"78":0,"79":0.04882,"80":0,"81":0,"82":0.0122,"83":0.02441,"84":0.01831,"85":0.09153,"86":0.0122,"87":0.01831,"88":0.0061,"89":0.0061,"90":0.0061,"91":0.0061,"92":0.0061,"93":0.0061,"94":0.0122,"95":1.03734,"96":0.78716,"97":2.69708,"98":0.13424,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.02441},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.0061,"79":0,"80":0,"81":0,"83":0,"84":0.0061,"85":0.0061,"86":0,"87":0,"88":0,"89":0.0061,"90":0,"91":0,"92":0.0061,"93":0,"94":0,"95":0,"96":0.0061,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0.0061,"107":0.0061,"108":0.0061,"109":0.03051,"110":0.0122,"111":0.37832,"112":0.70173,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.0061,"14":0.03051,"15":0.0061,_:"0","3.1":0,"3.2":0,"5.1":0.01831,"6.1":0,"7.1":0,"9.1":0.0122,"10.1":0,"11.1":0,"12.1":0.0122,"13.1":0.04882,"14.1":0.06712,"15.1":0.01831,"15.2-15.3":0.0061,"15.4":0.02441,"15.5":0.03661,"15.6":0.12814,"16.0":0.01831,"16.1":0.06712,"16.2":0.06102,"16.3":0.28069,"16.4":0.18306,"16.5":0.01831},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0019,"5.0-5.1":0.0038,"6.0-6.1":0.0038,"7.0-7.1":0.0133,"8.1-8.4":0.0038,"9.0-9.2":0.0114,"9.3":0.05892,"10.0-10.2":0.0019,"10.3":0.04371,"11.0-11.2":0.04181,"11.3-11.4":0.01901,"12.0-12.1":0.0095,"12.2-12.5":0.27179,"13.0-13.1":0.0114,"13.2":0.01521,"13.3":0.03421,"13.4-13.7":0.11784,"14.0-14.4":0.19196,"14.5-14.8":0.37063,"15.0-15.1":0.11594,"15.2-15.3":0.14445,"15.4":0.14445,"15.5":0.26419,"15.6":0.67283,"16.0":1.96146,"16.1":2.19144,"16.2":1.39697,"16.3":5.34651,"16.4":4.03316,"16.5":0.15395},P:{"4":0.07258,"20":1.18197,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.06221,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.0311,"12.0":0,"13.0":0.01037,"14.0":0.01037,"15.0":0.01037,"16.0":0.02074,"17.0":0.02074,"18.0":0.0311,"19.0":0.07258},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.01035,"4.1":0.01242,"4.2-4.3":0.02484,"4.4":0,"4.4.3-4.4.4":0.089},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01253,"9":0.00627,"10":0.00627,"11":0.20681,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15592},Q:{"13.1":0},O:{"0":0.1988},H:{"0":2.52791},L:{"0":39.47713}}; diff --git a/node_modules/caniuse-lite/data/regions/UG.js b/node_modules/caniuse-lite/data/regions/UG.js new file mode 100644 index 0000000..93cc525 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0.00271,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00271,"48":0,"49":0,"50":0,"51":0,"52":0.00271,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00271,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00271,"73":0,"74":0,"75":0,"76":0.00271,"77":0,"78":0.00271,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.00271,"89":0,"90":0,"91":0.00271,"92":0,"93":0,"94":0.00271,"95":0,"96":0,"97":0,"98":0,"99":0.00271,"100":0,"101":0,"102":0.01085,"103":0,"104":0.00814,"105":0.00271,"106":0.00271,"107":0.0217,"108":0.00271,"109":0.00542,"110":0.01085,"111":0.27391,"112":0.24679,"113":0.03526,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00271,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00814,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0.00271,"65":0.00271,"66":0,"67":0,"68":0,"69":0,"70":0.00271,"71":0,"72":0.00271,"73":0,"74":0.00814,"75":0.00271,"76":0.00271,"77":0.00271,"78":0.00271,"79":0.00542,"80":0.00271,"81":0.00542,"83":0.00271,"84":0,"85":0,"86":0.00271,"87":0.00542,"88":0.00542,"89":0.00271,"90":0,"91":0.00271,"92":0.00814,"93":0.00271,"94":0.00542,"95":0.00814,"96":0.00271,"97":0.00271,"98":0.00271,"99":0.00271,"100":0.00271,"101":0,"102":0.01085,"103":0.0217,"104":0.00814,"105":0.00542,"106":0.00542,"107":0.02441,"108":0.0217,"109":0.32815,"110":0.0461,"111":1.16616,"112":1.34786,"113":0.00271,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00542,"25":0,"26":0,"27":0,"28":0.00271,"29":0,"30":0.00271,"31":0.00271,"32":0,"33":0.00542,"34":0,"35":0,"36":0,"37":0.01898,"38":0.00271,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00542,"48":0,"49":0,"50":0,"51":0.00271,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0.01627,"58":0.01356,"60":0.03526,"62":0,"63":0.09492,"64":0.06238,"65":0.01898,"66":0.09492,"67":0.14645,"68":0.1573,"69":0.33086,"70":0,"71":0,"72":0.00271,"73":0.00542,"74":0.01085,"75":0.00271,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01356,"96":0.01627,"97":0.11119,"98":0.00542,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01085},B:{"12":0.00542,"13":0.00271,"14":0.00271,"15":0,"16":0.00271,"17":0,"18":0.01085,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00271,"90":0.00271,"91":0,"92":0.00542,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00271,"108":0.00814,"109":0.01356,"110":0.01356,"111":0.13018,"112":0.26035,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00271,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00542,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00271,"12.1":0.00271,"13.1":0.01085,"14.1":0.00542,"15.1":0,"15.2-15.3":0.00271,"15.4":0,"15.5":0.00271,"15.6":0.01356,"16.0":0,"16.1":0.00271,"16.2":0.00271,"16.3":0.01898,"16.4":0.01627,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00174,"5.0-5.1":0.00116,"6.0-6.1":0.00116,"7.0-7.1":0.00407,"8.1-8.4":0.00058,"9.0-9.2":0,"9.3":0.0279,"10.0-10.2":0,"10.3":0.05231,"11.0-11.2":0.00232,"11.3-11.4":0.00291,"12.0-12.1":0.00756,"12.2-12.5":0.54398,"13.0-13.1":0.00756,"13.2":0.00465,"13.3":0.02092,"13.4-13.7":0.03255,"14.0-14.4":0.2162,"14.5-14.8":0.3057,"15.0-15.1":0.14355,"15.2-15.3":0.16331,"15.4":0.17377,"15.5":0.19411,"15.6":0.28478,"16.0":0.36847,"16.1":0.47889,"16.2":0.35917,"16.3":1.20827,"16.4":0.61953,"16.5":0.02034},P:{"4":0.09334,"20":0.53931,"5.0-5.4":0.01037,"6.2-6.4":0,"7.2-7.4":0.13483,"8.2":0,"9.2":0.12446,"10.1":0,"11.1-11.2":0.03111,"12.0":0.04149,"13.0":0.01037,"14.0":0.04149,"15.0":0.04149,"16.0":0.04149,"17.0":0.03111,"18.0":0.09334,"19.0":0.11409},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00558,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.06696},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01356,"5.5":0},S:{"2.5":0.31338,_:"3.0-3.1"},J:{"7":0,"10":0.00729},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.23322},Q:{"13.1":0},O:{"0":0.68507},H:{"0":16.58714},L:{"0":64.28192}}; diff --git a/node_modules/caniuse-lite/data/regions/US.js b/node_modules/caniuse-lite/data/regions/US.js new file mode 100644 index 0000000..556f150 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/US.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0.00627,"4":0.00627,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0188,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00627,"39":0,"40":0.01254,"41":0,"42":0,"43":0.00627,"44":0.00627,"45":0,"46":0,"47":0,"48":0.00627,"49":0,"50":0,"51":0,"52":0.02507,"53":0,"54":0.01254,"55":0,"56":0.00627,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0.00627,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.01254,"73":0,"74":0,"75":0,"76":0.00627,"77":0,"78":0.04388,"79":0,"80":0,"81":0,"82":0,"83":0.00627,"84":0,"85":0,"86":0,"87":0,"88":0.00627,"89":0,"90":0,"91":0.00627,"92":0,"93":0.00627,"94":0.02507,"95":0,"96":0,"97":0,"98":0.00627,"99":0.00627,"100":0.00627,"101":0.00627,"102":0.08148,"103":0.00627,"104":0.00627,"105":0.01254,"106":0.00627,"107":0.00627,"108":0.01254,"109":0.02507,"110":0.04388,"111":0.8023,"112":0.71455,"113":0.00627,"114":0,"3.5":0.00627,"3.6":0.00627},D:{"4":0.00627,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00627,"36":0.00627,"37":0.00627,"38":0.00627,"39":0.00627,"40":0.01254,"41":0.00627,"42":0.00627,"43":0.01254,"44":0.0188,"45":0.0188,"46":0,"47":0.00627,"48":0.02507,"49":0.0188,"50":0,"51":0,"52":0.00627,"53":0,"54":0,"55":0,"56":0.14416,"57":0,"58":0,"59":0,"60":0.00627,"61":0,"62":0.00627,"63":0,"64":0,"65":0.01254,"66":0.02507,"67":0.00627,"68":0.0188,"69":0.0188,"70":0.01254,"71":0.03761,"72":0.0188,"73":0.00627,"74":0.02507,"75":0.02507,"76":0.09402,"77":0.0188,"78":0.0188,"79":0.30086,"80":0.05641,"81":0.06268,"83":0.26952,"84":0.04388,"85":0.06268,"86":0.06268,"87":0.11909,"88":0.03761,"89":0.04388,"90":0.04388,"91":0.07522,"92":0.03761,"93":0.25072,"94":0.03761,"95":0.0188,"96":0.03134,"97":0.06268,"98":0.03134,"99":0.05641,"100":0.04388,"101":0.04388,"102":0.08148,"103":0.41996,"104":0.04388,"105":0.10656,"106":0.05641,"107":0.08148,"108":0.3134,"109":0.7835,"110":0.63307,"111":7.33356,"112":7.13298,"113":0.03134,"114":0.02507,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00627,"64":0,"65":0,"66":0,"67":0,"68":0.00627,"69":0.00627,"70":0,"71":0,"72":0,"73":0,"74":0.00627,"75":0.00627,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00627,"95":0.03134,"96":0.28833,"97":0.68948,"98":0.03134,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00627,"13":0,"14":0,"15":0.00627,"16":0,"17":0,"18":0.00627,"79":0,"80":0.00627,"81":0.00627,"83":0.00627,"84":0.00627,"85":0.00627,"86":0.00627,"87":0.01254,"88":0,"89":0.00627,"90":0.00627,"91":0,"92":0.00627,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0.00627,"99":0.00627,"100":0,"101":0.00627,"102":0.01254,"103":0.00627,"104":0,"105":0.00627,"106":0.00627,"107":0.00627,"108":0.01254,"109":0.07522,"110":0.07522,"111":1.60461,"112":3.39726,"113":0},E:{"4":0.00627,"5":0.00627,"6":0,"7":0,"8":0.00627,"9":0.00627,"10":0,"11":0.00627,"12":0.00627,"13":0.03761,"14":0.18804,"15":0.04388,_:"0","3.1":0,"3.2":0,"5.1":0.00627,"6.1":0,"7.1":0,"9.1":0.12536,"10.1":0,"11.1":0.00627,"12.1":0.07522,"13.1":0.32594,"14.1":0.54532,"15.1":0.08148,"15.2-15.3":0.07522,"15.4":0.18804,"15.5":0.33847,"15.6":1.40403,"16.0":0.1567,"16.1":0.47637,"16.2":0.69575,"16.3":2.53854,"16.4":1.05302,"16.5":0.0188},G:{"8":0.01079,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01079,"5.0-5.1":0.0036,"6.0-6.1":0.01798,"7.0-7.1":0.02876,"8.1-8.4":0.10426,"9.0-9.2":0.03236,"9.3":0.06112,"10.0-10.2":0.00719,"10.3":0.0719,"11.0-11.2":0.01798,"11.3-11.4":0.03236,"12.0-12.1":0.01798,"12.2-12.5":0.33075,"13.0-13.1":0.01079,"13.2":0.08269,"13.3":0.03595,"13.4-13.7":0.10426,"14.0-14.4":0.31278,"14.5-14.8":0.62196,"15.0-15.1":0.20133,"15.2-15.3":0.27323,"15.4":0.26964,"15.5":0.51411,"15.6":1.89824,"16.0":1.89105,"16.1":4.78873,"16.2":2.78264,"16.3":14.26553,"16.4":5.9212,"16.5":0.14021},P:{"4":0.10444,"20":1.07571,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01044,"12.0":0,"13.0":0.01044,"14.0":0.01044,"15.0":0,"16.0":0.02089,"17.0":0.02089,"18.0":0.03133,"19.0":0.06266},I:{"0":0,"3":0.03105,"4":0.05822,"2.1":0.01553,"2.2":0.04658,"2.3":0.01553,"4.1":0.02329,"4.2-4.3":0.13973,"4.4":0,"4.4.3-4.4.4":0.20572},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.03496,"9":0.02097,"10":0.00699,"11":0.11885,"5.5":0},S:{"2.5":0.00373,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0.02612},R:{_:"0"},M:{"0":0.35827},Q:{"13.1":0.03359},O:{"0":0.07837},H:{"0":0.19079},L:{"0":24.16838}}; diff --git a/node_modules/caniuse-lite/data/regions/UY.js b/node_modules/caniuse-lite/data/regions/UY.js new file mode 100644 index 0000000..6905149 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UY.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.01942,"53":0,"54":0,"55":0,"56":0,"57":0.00486,"58":0,"59":0,"60":0,"61":0,"62":0.00486,"63":0,"64":0,"65":0,"66":0.00486,"67":0,"68":0.00486,"69":0,"70":0,"71":0,"72":0,"73":0.02428,"74":0,"75":0,"76":0,"77":0,"78":0.00486,"79":0,"80":0,"81":0.00486,"82":0,"83":0.01457,"84":0,"85":0,"86":0.00486,"87":0,"88":0.00486,"89":0,"90":0,"91":0.00486,"92":0,"93":0,"94":0,"95":0.00486,"96":0,"97":0,"98":0,"99":0,"100":0.00971,"101":0,"102":0.0437,"103":0,"104":0.03884,"105":0,"106":0.00486,"107":0,"108":0.00486,"109":0.01457,"110":0.02428,"111":0.43695,"112":0.48065,"113":0.03884,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00486,"37":0,"38":0.20391,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00486,"48":0.00971,"49":0.0437,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.00486,"56":0.00486,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00971,"63":0.00486,"64":0,"65":0.00971,"66":0,"67":0,"68":0.00486,"69":0.00486,"70":0.00486,"71":0.00971,"72":0,"73":0.00971,"74":0.00971,"75":0.00971,"76":0.00971,"77":0.00486,"78":0.00486,"79":0.02428,"80":0.03399,"81":0.00971,"83":0.01457,"84":0.00971,"85":0.00971,"86":0.19906,"87":0.01457,"88":0.02428,"89":0.00486,"90":0.00971,"91":0.02428,"92":0.00486,"93":0.05341,"94":0.01457,"95":0.00971,"96":0.02913,"97":0.00971,"98":0.00971,"99":0.01457,"100":0.01942,"101":0.01942,"102":0.02428,"103":0.11652,"104":0.01457,"105":0.05341,"106":0.05341,"107":0.07768,"108":0.07768,"109":1.58273,"110":0.14565,"111":5.50072,"112":7.12229,"113":0.00486,"114":0.00486,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00486,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00486,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00486,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00486,"95":0.03399,"96":0.47094,"97":0.99528,"98":0.02913,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0.00486,"14":0.00486,"15":0,"16":0,"17":0,"18":0.00486,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00486,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00486,"108":0.00486,"109":0.02428,"110":0.01942,"111":0.39811,"112":0.97586,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00971,"15":0.00486,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00486,"13.1":0.02428,"14.1":0.01942,"15.1":0.02428,"15.2-15.3":0.00486,"15.4":0.00971,"15.5":0.03884,"15.6":0.06312,"16.0":0.00486,"16.1":0.03399,"16.2":0.02428,"16.3":0.1408,"16.4":0.08254,"16.5":0},G:{"8":0,"3.2":0.00139,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.032,"6.0-6.1":0,"7.0-7.1":0.02783,"8.1-8.4":0.00278,"9.0-9.2":0,"9.3":0.0334,"10.0-10.2":0,"10.3":0.01948,"11.0-11.2":0.01252,"11.3-11.4":0.00278,"12.0-12.1":0.01809,"12.2-12.5":0.3103,"13.0-13.1":0.00139,"13.2":0.00139,"13.3":0.00835,"13.4-13.7":0.04731,"14.0-14.4":0.10575,"14.5-14.8":0.37153,"15.0-15.1":0.0487,"15.2-15.3":0.05844,"15.4":0.11549,"15.5":0.18924,"15.6":0.57608,"16.0":0.82933,"16.1":1.34279,"16.2":0.87664,"16.3":5.22924,"16.4":2.37111,"16.5":0.03896},P:{"4":0.34907,"20":1.34494,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.20533,"8.2":0,"9.2":0.01027,"10.1":0,"11.1-11.2":0.02053,"12.0":0,"13.0":0.04107,"14.0":0.01027,"15.0":0.01027,"16.0":0.07187,"17.0":0.0616,"18.0":0.04107,"19.0":0.10267},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01758,"4.2-4.3":0.05275,"4.4":0,"4.4.3-4.4.4":0.16705},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00971,"9":0,"10":0,"11":0.03399,"5.5":0},S:{"2.5":0.00515,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.37044},Q:{"13.1":0},O:{"0":0.01544},H:{"0":0.13152},L:{"0":62.2938}}; diff --git a/node_modules/caniuse-lite/data/regions/UZ.js b/node_modules/caniuse-lite/data/regions/UZ.js new file mode 100644 index 0000000..1e00b2d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/UZ.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00706,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00353,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00353,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.01059,"103":0,"104":0,"105":0,"106":0,"107":0.00353,"108":0.00353,"109":0.00353,"110":0.00353,"111":0.13057,"112":0.08823,"113":0.00353,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00353,"48":0,"49":0.01412,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0.00353,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00706,"67":0,"68":0.00353,"69":0.00353,"70":0,"71":0.00353,"72":0.00353,"73":0,"74":0,"75":0.00706,"76":0,"77":0,"78":0,"79":0.01412,"80":0.00706,"81":0.00706,"83":0.03176,"84":0.00353,"85":0.02117,"86":0.01412,"87":0.00706,"88":0,"89":0.01059,"90":0.00353,"91":0.00353,"92":0.00353,"93":0.00706,"94":0.45524,"95":0,"96":0.00706,"97":0.00706,"98":0.01412,"99":0.00706,"100":0.02117,"101":0.00706,"102":0.02823,"103":0.04941,"104":0.00706,"105":0.00706,"106":0.04588,"107":0.02117,"108":0.03529,"109":1.12222,"110":0.04588,"111":2.41384,"112":2.80556,"113":0.00353,"114":0.00353,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00353,"50":0,"51":0,"52":0,"53":0.00706,"54":0,"55":0,"56":0,"57":0.00353,"58":0,"60":0,"62":0.00706,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00353,"70":0,"71":0,"72":0,"73":0,"74":0.01059,"75":0.00353,"76":0,"77":0,"78":0,"79":0.01412,"80":0,"81":0,"82":0,"83":0,"84":0.00353,"85":0,"86":0,"87":0,"88":0,"89":0.00353,"90":0.00353,"91":0,"92":0,"93":0.01412,"94":0.02117,"95":0.03176,"96":0.01412,"97":0.04235,"98":0.00353,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.00353,"18":0.01765,"79":0,"80":0,"81":0,"83":0,"84":0.00353,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00706,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00353,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00353,"108":0.01765,"109":0.01412,"110":0.01765,"111":0.18351,"112":0.40936,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.00706,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.05999,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.02117,"14.1":0.00706,"15.1":0.00353,"15.2-15.3":0.00353,"15.4":0.00353,"15.5":0.00353,"15.6":0.03176,"16.0":0.00353,"16.1":0.01412,"16.2":0.01765,"16.3":0.05646,"16.4":0.03882,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00213,"5.0-5.1":0.00213,"6.0-6.1":0,"7.0-7.1":0.01494,"8.1-8.4":0.00213,"9.0-9.2":0.0032,"9.3":0.03842,"10.0-10.2":0,"10.3":0.03202,"11.0-11.2":0.02135,"11.3-11.4":0.00961,"12.0-12.1":0.00534,"12.2-12.5":0.43972,"13.0-13.1":0.00427,"13.2":0.0032,"13.3":0.01921,"13.4-13.7":0.04589,"14.0-14.4":0.12274,"14.5-14.8":0.20278,"15.0-15.1":0.07257,"15.2-15.3":0.10353,"15.4":0.08111,"15.5":0.21345,"15.6":0.29777,"16.0":0.86876,"16.1":1.06514,"16.2":0.67238,"16.3":2.58387,"16.4":2.52944,"16.5":0.03949},P:{"4":0.51314,"20":2.48522,"5.0-5.4":0.02012,"6.2-6.4":0.06037,"7.2-7.4":0.42259,"8.2":0.01006,"9.2":0.06037,"10.1":0.01006,"11.1-11.2":0.10062,"12.0":0.02012,"13.0":0.12074,"14.0":0.08049,"15.0":0.07043,"16.0":0.19117,"17.0":0.16099,"18.0":0.17105,"19.0":0.44271},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.00282,"4.1":0.00847,"4.2-4.3":0.01976,"4.4":0,"4.4.3-4.4.4":0.11012},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.01059,"9":0.00353,"10":0.00353,"11":0.03529,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0.00647},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.05824},Q:{"13.1":0},O:{"0":3.60435},H:{"0":0.37371},L:{"0":64.94784}}; diff --git a/node_modules/caniuse-lite/data/regions/VA.js b/node_modules/caniuse-lite/data/regions/VA.js new file mode 100644 index 0000000..37a4447 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.07769,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00971,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00971,"69":0.00971,"70":0.01942,"71":0,"72":0,"73":0.00971,"74":0,"75":0,"76":0,"77":0,"78":0.37873,"79":0.00971,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.16509,"93":0,"94":0,"95":0,"96":0.05827,"97":0,"98":0,"99":0,"100":0.01942,"101":0,"102":0.19422,"103":0,"104":0,"105":0,"106":0,"107":0.00971,"108":0.00971,"109":0.01942,"110":0,"111":3.65134,"112":5.42845,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":1.56347,"63":0,"64":0,"65":0,"66":0,"67":0.12624,"68":0.00971,"69":0.00971,"70":0.00971,"71":0.00971,"72":0.00971,"73":0.01942,"74":0.00971,"75":0.00971,"76":0,"77":0.01942,"78":0.01942,"79":0,"80":0.03884,"81":0.00971,"83":0,"84":0.00971,"85":0.00971,"86":0.01942,"87":0.02913,"88":0.00971,"89":0.00971,"90":0.00971,"91":0.00971,"92":0,"93":0.64093,"94":0,"95":0.47584,"96":0,"97":0.04856,"98":0.02913,"99":0,"100":0,"101":0,"102":0,"103":0.01942,"104":0,"105":0.46613,"106":0,"107":0.00971,"108":0.02913,"109":1.95191,"110":0.0874,"111":21.68466,"112":34.49347,"113":0.01942,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.00971,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.03884,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.03884,"18":1.21388,"79":0,"80":0,"81":0.00971,"83":0.00971,"84":0.00971,"85":0,"86":0,"87":0,"88":0,"89":0.00971,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.01942,"110":0,"111":3.40856,"112":11.58522,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0.00971,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.10682,"10.1":0,"11.1":0.06798,"12.1":0.00971,"13.1":0.27191,"14.1":0.33989,"15.1":0.00971,"15.2-15.3":0,"15.4":0,"15.5":0.00971,"15.6":0.30104,"16.0":0.00971,"16.1":0.37873,"16.2":0.22335,"16.3":2.17526,"16.4":0.68948,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.01104,"9.3":0.01104,"10.0-10.2":0.01104,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.65947,"13.0-13.1":0.01104,"13.2":0,"13.3":0,"13.4-13.7":0.01104,"14.0-14.4":0,"14.5-14.8":0.07812,"15.0-15.1":0.01104,"15.2-15.3":0,"15.4":0.01104,"15.5":0,"15.6":0.01104,"16.0":0.02236,"16.1":0.1452,"16.2":0.07812,"16.3":0.87201,"16.4":0.52531,"16.5":0},P:{"4":0,"20":0.36414,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0.07081,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02913,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.03728},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":3.5064}}; diff --git a/node_modules/caniuse-lite/data/regions/VC.js b/node_modules/caniuse-lite/data/regions/VC.js new file mode 100644 index 0000000..d9c610b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VC.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00476,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00476,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00476,"101":0,"102":0,"103":0,"104":0.00476,"105":0,"106":0.00476,"107":0,"108":0.02856,"109":0.00476,"110":0.00952,"111":0.51408,"112":0.32844,"113":0.05236,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00476,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00476,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00476,"64":0,"65":0.0238,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00476,"76":0.01428,"77":0,"78":0,"79":0.01428,"80":0,"81":0.01428,"83":0.06188,"84":0,"85":0.00476,"86":0,"87":0.00952,"88":0.01428,"89":0,"90":0,"91":0.00476,"92":0,"93":0.02856,"94":0.00476,"95":0.04284,"96":0,"97":0,"98":0,"99":0.01904,"100":0.00476,"101":0.00476,"102":0.00476,"103":0.15708,"104":0.0238,"105":0.00952,"106":0.00952,"107":0.07616,"108":0.01904,"109":0.55216,"110":0.1428,"111":3.89368,"112":4.31732,"113":0,"114":0.03332,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0.01428,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00952,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00476,"96":0.03332,"97":0.11424,"98":0.00476,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.00952,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00476,"109":0.0238,"110":0.11424,"111":0.67116,"112":2.1896,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.01904,"15":0.05712,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.08092,"14.1":0.0476,"15.1":0.00952,"15.2-15.3":0.00952,"15.4":0.01428,"15.5":0.0238,"15.6":0.11424,"16.0":0.00476,"16.1":0.0952,"16.2":0.0476,"16.3":0.32368,"16.4":0.25704,"16.5":0.00476},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04017,"6.0-6.1":0,"7.0-7.1":0.00349,"8.1-8.4":0.06112,"9.0-9.2":0,"9.3":0.06636,"10.0-10.2":0.00175,"10.3":0.04366,"11.0-11.2":0.02969,"11.3-11.4":0.00873,"12.0-12.1":0,"12.2-12.5":0.44183,"13.0-13.1":0.00175,"13.2":0,"13.3":0,"13.4-13.7":0.01222,"14.0-14.4":0.05064,"14.5-14.8":0.12225,"15.0-15.1":0.14146,"15.2-15.3":0.04191,"15.4":0.08732,"15.5":1.73241,"15.6":0.41738,"16.0":0.90812,"16.1":1.64334,"16.2":0.49597,"16.3":6.43715,"16.4":3.28144,"16.5":0.15892},P:{"4":0.1547,"20":3.10502,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.12155,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01105,"12.0":0,"13.0":0.0442,"14.0":0.01105,"15.0":0,"16.0":0.03315,"17.0":0.03315,"18.0":0.0221,"19.0":0.12155},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.27473,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.45788},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00476,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.20436},Q:{"13.1":0},O:{"0":0.1048},H:{"0":0.21332},L:{"0":61.90864}}; diff --git a/node_modules/caniuse-lite/data/regions/VE.js b/node_modules/caniuse-lite/data/regions/VE.js new file mode 100644 index 0000000..8853b1e --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0.0572,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0.0052,"46":0,"47":0.0052,"48":0,"49":0.0052,"50":0,"51":0,"52":0.1924,"53":0,"54":0.0052,"55":0,"56":0,"57":0.0052,"58":0,"59":0,"60":0.0052,"61":0.026,"62":0,"63":0,"64":0,"65":0.0104,"66":0.0052,"67":0.0052,"68":0.0156,"69":0.0052,"70":0,"71":0,"72":0.0052,"73":0,"74":0,"75":0.0052,"76":0,"77":0,"78":0.0104,"79":0,"80":0,"81":0.0052,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0.0104,"89":0.0052,"90":0,"91":0.0104,"92":0,"93":0,"94":0,"95":0.0052,"96":0,"97":0,"98":0,"99":0.0156,"100":0.0052,"101":0,"102":0.026,"103":0.0104,"104":0.0104,"105":0.0052,"106":0.0052,"107":0.0104,"108":0.0052,"109":0.026,"110":0.0988,"111":0.6188,"112":0.6916,"113":0.0052,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.0052,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.0052,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.0052,"47":0.0104,"48":0.0052,"49":0.2236,"50":0,"51":0,"52":0,"53":0.0052,"54":0,"55":0,"56":0.0104,"57":0,"58":0.0052,"59":0,"60":0,"61":0,"62":0,"63":0.0052,"64":0.0052,"65":0.0052,"66":0.0052,"67":0.0052,"68":0.0104,"69":0.0052,"70":0.0052,"71":0.0052,"72":0.0052,"73":0.0156,"74":0.0104,"75":0.0104,"76":0.0156,"77":0.0104,"78":0.0104,"79":0.0312,"80":0.0104,"81":0.0208,"83":0.0208,"84":0.0104,"85":0.0208,"86":0.0156,"87":0.0312,"88":0.0208,"89":0.0052,"90":0.026,"91":0.0468,"92":0.0156,"93":0.0208,"94":0.0104,"95":0.0156,"96":0.026,"97":0.0416,"98":0.0364,"99":0.0312,"100":0.0572,"101":0.0364,"102":0.0416,"103":0.0832,"104":0.052,"105":0.0572,"106":0.0624,"107":0.0728,"108":0.1976,"109":5.0544,"110":0.1456,"111":3.3592,"112":4.3004,"113":0.0104,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.0052,"29":0.0052,"30":0.0104,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0.0052,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.0052,"64":0,"65":0,"66":0,"67":0.0052,"68":0.0208,"69":0.0624,"70":0,"71":0,"72":0,"73":0,"74":0.0052,"75":0,"76":0,"77":0,"78":0,"79":0.0104,"80":0,"81":0,"82":0.0052,"83":0,"84":0.0052,"85":0.0104,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.0052,"95":0.2444,"96":0.182,"97":0.6032,"98":0.0156,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.0052,"13":0.0052,"14":0,"15":0,"16":0,"17":0,"18":0.0052,"79":0,"80":0,"81":0,"83":0.0052,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.0104,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.0052,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.0052,"109":0.0832,"110":0.0416,"111":0.2704,"112":0.7176,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0.0052,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0156,"14.1":0.0208,"15.1":0,"15.2-15.3":0,"15.4":0.0052,"15.5":0.0052,"15.6":0.052,"16.0":0.0052,"16.1":0.0208,"16.2":0.0208,"16.3":0.0832,"16.4":0.026,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00368,"6.0-6.1":0.00368,"7.0-7.1":0.02157,"8.1-8.4":0.01841,"9.0-9.2":0.0021,"9.3":0.06839,"10.0-10.2":0.00105,"10.3":0.05681,"11.0-11.2":0.01157,"11.3-11.4":0.01368,"12.0-12.1":0.00368,"12.2-12.5":0.24146,"13.0-13.1":0.00842,"13.2":0.0021,"13.3":0.00631,"13.4-13.7":0.03104,"14.0-14.4":0.0626,"14.5-14.8":0.13414,"15.0-15.1":0.03472,"15.2-15.3":0.0505,"15.4":0.05734,"15.5":0.0747,"15.6":0.19937,"16.0":0.35087,"16.1":0.49291,"16.2":0.29353,"16.3":1.59761,"16.4":0.89375,"16.5":0.0484},P:{"4":0.13678,"20":0.76808,"5.0-5.4":0.01052,"6.2-6.4":0,"7.2-7.4":0.10522,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01052,"12.0":0,"13.0":0.03156,"14.0":0.01052,"15.0":0.01052,"16.0":0.03156,"17.0":0.08417,"18.0":0.02104,"19.0":0.09469},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.01239,"4.1":0.02478,"4.2-4.3":0.04212,"4.4":0,"4.4.3-4.4.4":0.67151},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00594,"9":0,"10":0,"11":0.03566,"5.5":0},S:{"2.5":0.0048,_:"3.0-3.1"},J:{"7":0,"10":0.0048},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.1392},Q:{"13.1":0},O:{"0":0.048},H:{"0":0.49988},L:{"0":70.782}}; diff --git a/node_modules/caniuse-lite/data/regions/VG.js b/node_modules/caniuse-lite/data/regions/VG.js new file mode 100644 index 0000000..cca57e7 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VG.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00423,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.00846,"104":0,"105":0,"106":0.00846,"107":0,"108":0.02539,"109":0.00423,"110":0.01269,"111":0.34694,"112":0.24117,"113":0.00423,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0.00423,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0.00423,"75":0.06347,"76":0.00846,"77":0.00423,"78":0,"79":0.02116,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0.00423,"88":0.00423,"89":0,"90":0,"91":0,"92":0.02962,"93":0.00423,"94":0,"95":0,"96":0.00423,"97":0,"98":0,"99":0,"100":0.00423,"101":0.00423,"102":0.00423,"103":0.055,"104":0,"105":0,"106":0,"107":0.00423,"108":0.05077,"109":0.23694,"110":0.28771,"111":3.13517,"112":4.26062,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.06347,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.00846,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00846,"96":0.01269,"97":0.16078,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00846,"101":0,"102":0,"103":0,"104":0,"105":0.00423,"106":0,"107":0,"108":0.00423,"109":0.00846,"110":0.02962,"111":0.38502,"112":1.82356,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00423,"14":0.01692,"15":0.02116,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00423,"12.1":0.00423,"13.1":0.11001,"14.1":0.04654,"15.1":0.01692,"15.2-15.3":0,"15.4":0.00423,"15.5":0.03385,"15.6":0.30463,"16.0":0.02962,"16.1":0.33002,"16.2":0.13962,"16.3":2.09435,"16.4":0.41041,"16.5":0.01269},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01797,"10.0-10.2":0,"10.3":0.01078,"11.0-11.2":0.01437,"11.3-11.4":0.28387,"12.0-12.1":0,"12.2-12.5":0.50665,"13.0-13.1":0,"13.2":0.00719,"13.3":0,"13.4-13.7":0.02156,"14.0-14.4":0.11858,"14.5-14.8":0.57133,"15.0-15.1":0.30902,"15.2-15.3":0.06827,"15.4":0.17607,"15.5":0.48509,"15.6":1.20733,"16.0":2.18828,"16.1":4.38016,"16.2":2.89256,"16.3":12.33919,"16.4":7.07509,"16.5":1.39058},P:{"4":0.5444,"20":4.37614,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05235,"8.2":0,"9.2":0.01047,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0.02094,"14.0":0.06282,"15.0":0,"16.0":0,"17.0":0.02094,"18.0":0.04188,"19.0":0.12563},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.37233},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00423,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.28268},Q:{"13.1":0},O:{"0":0.13269},H:{"0":0.16931},L:{"0":42.32881}}; diff --git a/node_modules/caniuse-lite/data/regions/VI.js b/node_modules/caniuse-lite/data/regions/VI.js new file mode 100644 index 0000000..8894c64 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VI.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00704,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0.96434,"111":2.04131,"112":1.26702,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00704,"69":0,"70":0.04223,"71":0,"72":0.00704,"73":0,"74":0.00704,"75":0.00704,"76":0.04223,"77":0.00704,"78":0,"79":0.52793,"80":0,"81":0.00704,"83":0.00704,"84":0,"85":0,"86":0.04223,"87":0.04927,"88":0.00704,"89":0.01408,"90":0.02816,"91":0,"92":0,"93":0.59128,"94":0,"95":0.11262,"96":0,"97":0,"98":0.00704,"99":0,"100":0,"101":0.01408,"102":0.05631,"103":0.08447,"104":0.01408,"105":0.21117,"106":0,"107":0.04927,"108":0.19709,"109":0.35899,"110":0.22525,"111":11.14274,"112":9.8898,"113":0.01408,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.02816,"94":0,"95":0,"96":0.07743,"97":0.1267,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0.00704,"105":0,"106":0.0352,"107":0,"108":0.00704,"109":0.19005,"110":0.10559,"111":1.87237,"112":5.30037,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.01408,"14":1.35853,"15":1.03473,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0.04223,"10.1":0,"11.1":0,"12.1":0.00704,"13.1":0.80949,"14.1":0.26044,"15.1":0.06335,"15.2-15.3":0.02112,"15.4":0.04223,"15.5":0.24637,"15.6":1.01362,"16.0":0.07743,"16.1":0.1267,"16.2":0.30972,"16.3":2.25952,"16.4":2.19617,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.0352,"9.3":0.04801,"10.0-10.2":0,"10.3":0.0224,"11.0-11.2":0.032,"11.3-11.4":0.0096,"12.0-12.1":0,"12.2-12.5":0.9153,"13.0-13.1":0,"13.2":0.032,"13.3":0,"13.4-13.7":0.06401,"14.0-14.4":0.17922,"14.5-14.8":0.57926,"15.0-15.1":0.0416,"15.2-15.3":0.09281,"15.4":0.13121,"15.5":0.41925,"15.6":1.49136,"16.0":1.57457,"16.1":4.49649,"16.2":2.40346,"16.3":12.99981,"16.4":5.511,"16.5":0.12481},P:{"4":0,"20":1.57334,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01049,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.04196,"17.0":0.19929,"18.0":0.02098,"19.0":0.01049},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.01408,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15989},Q:{"13.1":0},O:{"0":0.01184},H:{"0":0.00841},L:{"0":18.69537}}; diff --git a/node_modules/caniuse-lite/data/regions/VN.js b/node_modules/caniuse-lite/data/regions/VN.js new file mode 100644 index 0000000..f3f98c3 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VN.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.02179,"112":0.01981,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00396,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00198,"50":0,"51":0,"52":0,"53":0.00198,"54":0,"55":0,"56":0,"57":0.00396,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00198,"67":0,"68":0,"69":0,"70":0.00198,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0.01585,"80":0.00198,"81":0.00198,"83":0.00198,"84":0.00198,"85":0.00396,"86":0.00198,"87":0.00396,"88":0,"89":0.00198,"90":0,"91":0,"92":0.00198,"93":0,"94":0.00198,"95":0.00198,"96":0.00198,"97":0.00198,"98":0,"99":0.00198,"100":0.00396,"101":0.00198,"102":0.00198,"103":0.00396,"104":0.01189,"105":0.00198,"106":0.00396,"107":0.00396,"108":0.00792,"109":0.16442,"110":0.00991,"111":0.3962,"112":0.51506,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0.00198,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0.00198,"37":0.00991,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00396,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0.00198,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00198,"69":0.00594,"70":0,"71":0,"72":0,"73":0,"74":0.00198,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00198,"96":0.00396,"97":0.01387,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0.00198,"110":0.00198,"111":0.0317,"112":0.06141,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00198,"14":0.00594,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00396,"14.1":0.01189,"15.1":0.00198,"15.2-15.3":0.00198,"15.4":0.00396,"15.5":0.00594,"15.6":0.02575,"16.0":0.00198,"16.1":0.00594,"16.2":0.00594,"16.3":0.02773,"16.4":0.00991,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01178,"8.1-8.4":0.00883,"9.0-9.2":0.00883,"9.3":0.07657,"10.0-10.2":0.02356,"10.3":0.18258,"11.0-11.2":0.05595,"11.3-11.4":0.08246,"12.0-12.1":0.08246,"12.2-12.5":1.82875,"13.0-13.1":0.04123,"13.2":0.02061,"13.3":0.1443,"13.4-13.7":0.48884,"14.0-14.4":1.14555,"14.5-14.8":2.36471,"15.0-15.1":0.4859,"15.2-15.3":0.66554,"15.4":0.68615,"15.5":1.11904,"15.6":2.38533,"16.0":1.16321,"16.1":2.64153,"16.2":1.54605,"16.3":5.84847,"16.4":1.88176,"16.5":0.04417},P:{"4":0.33482,"20":2.50608,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.08117,"8.2":0,"9.2":0.03044,"10.1":0.02029,"11.1-11.2":0.09131,"12.0":0.02029,"13.0":0.06088,"14.0":0.06088,"15.0":0.04058,"16.0":0.10146,"17.0":0.11161,"18.0":0.10146,"19.0":0.24351},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00276,"4.4":0,"4.4.3-4.4.4":0.03318},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00396,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.06415},Q:{"13.1":0},O:{"0":2.69438},H:{"0":0.44792},L:{"0":61.96103}}; diff --git a/node_modules/caniuse-lite/data/regions/VU.js b/node_modules/caniuse-lite/data/regions/VU.js new file mode 100644 index 0000000..f6e861f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/VU.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00853,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0.00427,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.00427,"103":0,"104":0.00853,"105":0.00853,"106":0,"107":0,"108":0.00427,"109":0.00853,"110":0.17495,"111":0.52484,"112":1.18196,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.0256,"41":0,"42":0,"43":0.02134,"44":0,"45":0,"46":0.00427,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0.00427,"60":0,"61":0,"62":0.00427,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0.00853,"73":0,"74":0.00427,"75":0,"76":0,"77":0,"78":0.00427,"79":0,"80":0,"81":0.0256,"83":0,"84":0.0256,"85":0,"86":0,"87":0.02134,"88":0.04694,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.0128,"95":0.00427,"96":0,"97":0.0256,"98":0,"99":0.00427,"100":0,"101":0,"102":0,"103":0.0128,"104":0.01707,"105":0.00427,"106":0,"107":0.0256,"108":0.00853,"109":0.25175,"110":0.12801,"111":3.23865,"112":3.39653,"113":0.02987,"114":0.02987,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0.01707,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00427,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0.00427,"97":0.20908,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.23895,"13":0,"14":0,"15":0.01707,"16":0,"17":0,"18":0.02134,"79":0,"80":0,"81":0,"83":0,"84":0.0128,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0.00427,"91":0,"92":0.00853,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00427,"101":0.00853,"102":0.00853,"103":0,"104":0.00427,"105":0.00427,"106":0,"107":0.0128,"108":0.0256,"109":0.0128,"110":0.0384,"111":0.33283,"112":1.02835,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00427,"14":0.00427,"15":0.00427,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.03414,"14.1":0.10241,"15.1":0.0128,"15.2-15.3":0,"15.4":0.00853,"15.5":0.0128,"15.6":0.23469,"16.0":0.02987,"16.1":0.0128,"16.2":0.02987,"16.3":0.15788,"16.4":0.16215,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.14862,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.19661,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.01161,"11.3-11.4":0.00387,"12.0-12.1":0.02941,"12.2-12.5":0.1223,"13.0-13.1":0,"13.2":0,"13.3":0.00774,"13.4-13.7":0.02941,"14.0-14.4":0.25699,"14.5-14.8":0.48688,"15.0-15.1":0.0596,"15.2-15.3":0.44199,"15.4":0.03328,"15.5":0.19351,"15.6":0.26395,"16.0":0.17803,"16.1":0.99931,"16.2":0.80966,"16.3":1.9274,"16.4":1.12161,"16.5":0.00387},P:{"4":0.20278,"20":0.82127,"5.0-5.4":0.07097,"6.2-6.4":0,"7.2-7.4":0.30417,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.01014,"12.0":0.01014,"13.0":0.01014,"14.0":0.02028,"15.0":0.12167,"16.0":0.4664,"17.0":0.02028,"18.0":0.04056,"19.0":0.22306},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.16267},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0128,"5.5":0},S:{"2.5":0.00573,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.21785},Q:{"13.1":0.00573},O:{"0":0.98608},H:{"0":0.0977},L:{"0":75.21386}}; diff --git a/node_modules/caniuse-lite/data/regions/WF.js b/node_modules/caniuse-lite/data/regions/WF.js new file mode 100644 index 0000000..fc0a5db --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/WF.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0.02499,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.02499,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.1599,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":1.78893,"112":1.659,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0.05497,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.02499,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.02499,"106":0,"107":0,"108":0,"109":3.28803,"110":0.05497,"111":2.10374,"112":3.39296,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0.20987,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0.02499,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0.3398,"112":2.26364,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0.02499,"15.1":0.05497,"15.2-15.3":5.23686,"15.4":0.1599,"15.5":0,"15.6":0,"16.0":0.05497,"16.1":0,"16.2":0.05497,"16.3":0.52469,"16.4":0.86948,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.11539,"12.0-12.1":0,"12.2-12.5":0.57696,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.40387,"14.5-14.8":10.56379,"15.0-15.1":0.11539,"15.2-15.3":0.63465,"15.4":0,"15.5":0.51926,"15.6":1.21161,"16.0":0.69235,"16.1":2.42322,"16.2":0.57696,"16.3":5.8877,"16.4":2.88478,"16.5":0},P:{"4":0,"20":1.44251,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0.11174,"17.0":0,"18.0":0,"19.0":0.11174},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.48529},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":45.64693}}; diff --git a/node_modules/caniuse-lite/data/regions/WS.js b/node_modules/caniuse-lite/data/regions/WS.js new file mode 100644 index 0000000..3db3ace --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/WS.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.01712,"104":0,"105":0,"106":0,"107":0,"108":0.00428,"109":0.00428,"110":0.00428,"111":0.31237,"112":0.11981,"113":0.00428,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0.00428,"71":0,"72":0.01284,"73":0,"74":0.00428,"75":0,"76":0.01284,"77":0,"78":0,"79":0.00428,"80":0,"81":0.0214,"83":0,"84":0,"85":0,"86":0,"87":0.01284,"88":0.00856,"89":0,"90":0,"91":0,"92":0.0214,"93":0.0214,"94":0.00428,"95":0.07274,"96":0.00428,"97":0,"98":0,"99":0.01712,"100":0.00428,"101":0.02567,"102":0.01284,"103":0.11553,"104":0.00856,"105":0.0214,"106":0,"107":0.02567,"108":0.03851,"109":0.74455,"110":0.23535,"111":3.79975,"112":4.11212,"113":0.00856,"114":0.02995,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.01284,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0.00856,"64":0,"65":0,"66":0,"67":0,"68":0.00428,"69":0.03851,"70":0,"71":0,"72":0,"73":0.00428,"74":0.1027,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00428,"96":0,"97":0.05563,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0.00428,"13":0,"14":0.00428,"15":0.00856,"16":0,"17":0.00428,"18":0.00856,"79":0,"80":0,"81":0,"83":0,"84":0.01284,"85":0,"86":0.00428,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.01284,"93":0,"94":0.00856,"95":0,"96":0.00428,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0.0214,"104":0.00428,"105":0.00428,"106":0.01284,"107":0,"108":0.01284,"109":0.2653,"110":0.13693,"111":0.64613,"112":1.11254,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0.0214,"14.1":0.08986,"15.1":0,"15.2-15.3":0.00856,"15.4":0,"15.5":0.00428,"15.6":0.65469,"16.0":0,"16.1":0.01712,"16.2":0.01712,"16.3":0.184,"16.4":0.01284,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06358,"10.0-10.2":0,"10.3":0.01413,"11.0-11.2":0.01413,"11.3-11.4":0.07594,"12.0-12.1":0.01413,"12.2-12.5":0.60221,"13.0-13.1":0.03179,"13.2":0,"13.3":0.03885,"13.4-13.7":0.82296,"14.0-14.4":0.40265,"14.5-14.8":0.85298,"15.0-15.1":0.09713,"15.2-15.3":0.27197,"15.4":0.35144,"15.5":0.31788,"15.6":1.2521,"16.0":1.96204,"16.1":0.89184,"16.2":2.64902,"16.3":2.35939,"16.4":1.87904,"16.5":0.10773},P:{"4":0.09347,"20":1.73431,"5.0-5.4":0.03116,"6.2-6.4":0.01039,"7.2-7.4":0.24924,"8.2":0,"9.2":0.05193,"10.1":0,"11.1-11.2":0.02077,"12.0":0.08308,"13.0":0.19732,"14.0":0.0727,"15.0":0.0727,"16.0":1.94202,"17.0":0.03116,"18.0":0.34271,"19.0":0.23886},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.1427},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02567,"5.5":0},S:{"2.5":0.02288,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.04005},Q:{"13.1":0},O:{"0":0.06865},H:{"0":1.91194},L:{"0":61.04861}}; diff --git a/node_modules/caniuse-lite/data/regions/YE.js b/node_modules/caniuse-lite/data/regions/YE.js new file mode 100644 index 0000000..5e1f6cb --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/YE.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0.00474,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0.00474,"48":0.00237,"49":0,"50":0,"51":0,"52":0.02846,"53":0,"54":0,"55":0.00474,"56":0.00237,"57":0.00237,"58":0,"59":0,"60":0.00237,"61":0,"62":0,"63":0,"64":0,"65":0.01186,"66":0,"67":0,"68":0.00474,"69":0,"70":0,"71":0,"72":0.00237,"73":0,"74":0.00237,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00949,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0.00237,"102":0.0166,"103":0.00237,"104":0.00237,"105":0,"106":0.00474,"107":0.00237,"108":0.00237,"109":0.00237,"110":0.00712,"111":0.18739,"112":0.17078,"113":0.00237,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0.00237,"38":0.00237,"39":0,"40":0,"41":0,"42":0,"43":0.00237,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0.00237,"50":0.00949,"51":0.00237,"52":0,"53":0,"54":0,"55":0.00237,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.00237,"64":0.00237,"65":0,"66":0,"67":0.00237,"68":0.01186,"69":0,"70":0.00237,"71":0.00237,"72":0.00237,"73":0.00237,"74":0.00237,"75":0.00237,"76":0.00712,"77":0,"78":0.00237,"79":0.00474,"80":0.00474,"81":0.00474,"83":0.00474,"84":0.00237,"85":0.00474,"86":0.00712,"87":0.00712,"88":0.00712,"89":0.00474,"90":0.00949,"91":0.00474,"92":0.00237,"93":0,"94":0.00237,"95":0.00474,"96":0.00712,"97":0.00237,"98":0.00474,"99":0.00949,"100":0.02846,"101":0.00712,"102":0.01186,"103":0.00949,"104":0.00712,"105":0.01898,"106":0.01186,"107":0.01423,"108":0.04507,"109":0.29176,"110":0.04507,"111":0.61435,"112":0.65467,"113":0.00474,"114":0.00237,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0.00237,"65":0,"66":0,"67":0.00237,"68":0.01423,"69":0.01898,"70":0.00237,"71":0,"72":0,"73":0.00237,"74":0.00949,"75":0.00237,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.00237,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00474,"95":0.00474,"96":0.00712,"97":0.02846,"98":0.00237,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.06167},B:{"12":0.00237,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0.00237,"85":0,"86":0,"87":0,"88":0,"89":0.00237,"90":0,"91":0,"92":0.00712,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00237,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0.00237,"106":0,"107":0.00237,"108":0.00237,"109":0.00712,"110":0.01423,"111":0.08539,"112":0.15655,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.03321,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0.00237,"15.1":0,"15.2-15.3":0,"15.4":0.00237,"15.5":0.00237,"15.6":0.00474,"16.0":0,"16.1":0,"16.2":0.00712,"16.3":0.00712,"16.4":0.00237,"16.5":0.00237},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00526,"5.0-5.1":0,"6.0-6.1":0.06473,"7.0-7.1":0.00769,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00728,"10.0-10.2":0,"10.3":0.01295,"11.0-11.2":0.00202,"11.3-11.4":0.00162,"12.0-12.1":0.02387,"12.2-12.5":0.25408,"13.0-13.1":0.01052,"13.2":0.00405,"13.3":0.01861,"13.4-13.7":0.02225,"14.0-14.4":0.11855,"14.5-14.8":0.10843,"15.0-15.1":0.08132,"15.2-15.3":0.17195,"15.4":0.11126,"15.5":0.1849,"15.6":0.2201,"16.0":0.25408,"16.1":0.40136,"16.2":0.26663,"16.3":0.75982,"16.4":0.40378,"16.5":0.19056},P:{"4":0.33315,"20":2.1907,"5.0-5.4":0.07067,"6.2-6.4":0.08076,"7.2-7.4":0.12114,"8.2":0,"9.2":0.15143,"10.1":0.0101,"11.1-11.2":0.32305,"12.0":0.04038,"13.0":0.15143,"14.0":0.12114,"15.0":0.04038,"16.0":0.30286,"17.0":0.30286,"18.0":0.12114,"19.0":0.40382},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.00276,"4.1":0.00828,"4.2-4.3":0.00644,"4.4":0,"4.4.3-4.4.4":0.09201},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00237,"5.5":0},S:{"2.5":0.00763,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.69415},Q:{"13.1":0},O:{"0":4.79801},H:{"0":10.29814},L:{"0":66.92376}}; diff --git a/node_modules/caniuse-lite/data/regions/YT.js b/node_modules/caniuse-lite/data/regions/YT.js new file mode 100644 index 0000000..8c9796b --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/YT.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0.00913,"79":0,"80":0.00457,"81":0.00457,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0.0137,"90":0.00457,"91":0.01826,"92":0,"93":0,"94":0.00457,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0.0137,"103":0,"104":0,"105":0.00457,"106":0,"107":0.0137,"108":0.0137,"109":0.05935,"110":0.04109,"111":1.55667,"112":0.53411,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00457,"44":0,"45":0,"46":0,"47":0.00457,"48":0,"49":0.00457,"50":0.0137,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0.00457,"68":0.00913,"69":0.00457,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0.00457,"76":0,"77":0,"78":0,"79":0.1826,"80":0,"81":0.00913,"83":0.00457,"84":0,"85":0.01826,"86":0,"87":0.0137,"88":0,"89":0.00457,"90":0.00457,"91":0,"92":0.00457,"93":0,"94":0.0137,"95":0.01826,"96":0.0137,"97":0,"98":0,"99":0.04565,"100":0.0137,"101":0,"102":0,"103":0.02739,"104":0.00457,"105":0.02283,"106":0.03196,"107":0.01826,"108":0.04565,"109":0.31042,"110":0.1963,"111":5.56474,"112":3.88025,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00457,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0.00457,"69":0.0137,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.01826,"96":0.14152,"97":0.32412,"98":0.07761,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0.0137,"18":0.00457,"79":0,"80":0,"81":0,"83":0,"84":0.00457,"85":0,"86":0,"87":0,"88":0,"89":0.07304,"90":0.00913,"91":0,"92":0.00457,"93":0,"94":0,"95":0,"96":0.00457,"97":0,"98":0,"99":0.00457,"100":0,"101":0,"102":0,"103":0,"104":0.00457,"105":0.08674,"106":0,"107":0,"108":0.0137,"109":0.02739,"110":0.05478,"111":1.14582,"112":1.6434,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00913,"14":0.02283,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0.00457,"13.1":0.02739,"14.1":0.03196,"15.1":0.01826,"15.2-15.3":0.03652,"15.4":0.01826,"15.5":0.03196,"15.6":0.50672,"16.0":0.0137,"16.1":0.04109,"16.2":0.06848,"16.3":0.40629,"16.4":0.29216,"16.5":0.00913},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01511,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0491,"11.0-11.2":0.01133,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.2247,"13.0-13.1":0.00755,"13.2":0,"13.3":0.04343,"13.4-13.7":0.0642,"14.0-14.4":0.10197,"14.5-14.8":0.24548,"15.0-15.1":0.15295,"15.2-15.3":0.08497,"15.4":0.26813,"15.5":0.72321,"15.6":0.81951,"16.0":3.45742,"16.1":2.03556,"16.2":1.2878,"16.3":5.04735,"16.4":2.8343,"16.5":0.10763},P:{"4":0.0304,"20":4.44892,"5.0-5.4":0,"6.2-6.4":0.01013,"7.2-7.4":0.22295,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0.09121,"12.0":0,"13.0":0.06081,"14.0":0.04054,"15.0":0.02027,"16.0":0.22295,"17.0":0.04054,"18.0":0.07094,"19.0":0.3547},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01937,"4.4":0,"4.4.3-4.4.4":0.3778},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02283,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.13044},Q:{"13.1":0.00544},O:{"0":0.03261},H:{"0":0.32417},L:{"0":55.05644}}; diff --git a/node_modules/caniuse-lite/data/regions/ZA.js b/node_modules/caniuse-lite/data/regions/ZA.js new file mode 100644 index 0000000..01f1e9c --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ZA.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0.00515,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0.00258,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00258,"88":0.00515,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00258,"95":0,"96":0,"97":0,"98":0.00258,"99":0,"100":0,"101":0,"102":0.00258,"103":0,"104":0,"105":0.00258,"106":0,"107":0.00258,"108":0.00258,"109":0.00258,"110":0.00773,"111":0.134,"112":0.11081,"113":0.00258,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00258,"47":0,"48":0,"49":0.00258,"50":0,"51":0,"52":0.00515,"53":0,"54":0,"55":0.00258,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0.00515,"63":0.00258,"64":0,"65":0,"66":0.00515,"67":0,"68":0,"69":0,"70":0.00258,"71":0,"72":0,"73":0,"74":0.00258,"75":0,"76":0.00258,"77":0,"78":0.00258,"79":0.00515,"80":0.00258,"81":0.01289,"83":0,"84":0,"85":0.00258,"86":0.00258,"87":0.00258,"88":0.00515,"89":0,"90":0.00258,"91":0.00258,"92":0.00258,"93":0.01031,"94":0.00773,"95":0.00258,"96":0.00258,"97":0.00258,"98":0.00258,"99":0.01031,"100":0.00258,"101":0.00515,"102":0.00515,"103":0.01289,"104":0.00258,"105":0.00515,"106":0.00515,"107":0.00515,"108":0.01289,"109":0.20101,"110":0.03608,"111":1.00761,"112":1.25758,"113":0,"114":0.00258,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00258,"27":0,"28":0.00515,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0.00258,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00258,"47":0,"48":0,"49":0,"50":0.00258,"51":0.00258,"52":0,"53":0,"54":0.00258,"55":0,"56":0.00258,"57":0.00258,"58":0.00258,"60":0.00773,"62":0.00258,"63":0.01804,"64":0.01031,"65":0.00773,"66":0.01804,"67":0.10566,"68":0.09277,"69":0.2577,"70":0.00258,"71":0,"72":0,"73":0,"74":0.01031,"75":0.00258,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0.00515,"96":0.01546,"97":0.05927,"98":0.00258,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.00258},B:{"12":0.00258,"13":0,"14":0,"15":0,"16":0,"17":0.00258,"18":0.00258,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0.00258,"93":0,"94":0,"95":0.00258,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0.00258,"108":0.00258,"109":0.01031,"110":0.01546,"111":0.18554,"112":0.38913,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00258,"14":0.00773,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0.00258,"12.1":0.00258,"13.1":0.01031,"14.1":0.01546,"15.1":0.00258,"15.2-15.3":0.00258,"15.4":0.00515,"15.5":0.00773,"15.6":0.04123,"16.0":0.00515,"16.1":0.01289,"16.2":0.01804,"16.3":0.11854,"16.4":0.04896,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00341,"6.0-6.1":0.00341,"7.0-7.1":0.00682,"8.1-8.4":0.00852,"9.0-9.2":0.00511,"9.3":0.07158,"10.0-10.2":0,"10.3":0.04261,"11.0-11.2":0.00511,"11.3-11.4":0.01363,"12.0-12.1":0.00511,"12.2-12.5":0.42095,"13.0-13.1":0.02045,"13.2":0.00341,"13.3":0.02386,"13.4-13.7":0.07328,"14.0-14.4":0.18917,"14.5-14.8":0.40902,"15.0-15.1":0.08862,"15.2-15.3":0.15509,"15.4":0.18747,"15.5":0.41754,"15.6":0.7635,"16.0":0.89643,"16.1":2.01101,"16.2":1.09413,"16.3":6.20346,"16.4":2.66204,"16.5":0.05624},P:{"4":0.22285,"20":6.8576,"5.0-5.4":0.01013,"6.2-6.4":0,"7.2-7.4":0.38492,"8.2":0,"9.2":0.01013,"10.1":0.02026,"11.1-11.2":0.06078,"12.0":0.03039,"13.0":0.06078,"14.0":0.09116,"15.0":0.04052,"16.0":0.1722,"17.0":0.11142,"18.0":0.13168,"19.0":0.42543},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01034,"4.4":0,"4.4.3-4.4.4":0.05997},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.02062,"5.5":0},S:{"2.5":0.00742,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.51961},Q:{"13.1":0.00742},O:{"0":0.55673},H:{"0":3.33109},L:{"0":63.30739}}; diff --git a/node_modules/caniuse-lite/data/regions/ZM.js b/node_modules/caniuse-lite/data/regions/ZM.js new file mode 100644 index 0000000..dd8d68d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ZM.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0.00293,"30":0,"31":0,"32":0,"33":0,"34":0.00293,"35":0.00293,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0.00293,"45":0,"46":0,"47":0.00293,"48":0,"49":0,"50":0,"51":0,"52":0.00293,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0.00293,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0.00293,"100":0,"101":0,"102":0.00878,"103":0,"104":0,"105":0,"106":0,"107":0.00293,"108":0.00293,"109":0.00293,"110":0.00586,"111":0.14054,"112":0.12005,"113":0.00586,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.00293,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0.00293,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0.00293,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0.00293,"59":0.00293,"60":0,"61":0,"62":0,"63":0.00293,"64":0.00293,"65":0,"66":0,"67":0,"68":0.00293,"69":0.00293,"70":0.00293,"71":0.00293,"72":0,"73":0.00586,"74":0.00293,"75":0,"76":0.00293,"77":0.00293,"78":0.00586,"79":0.00586,"80":0.00586,"81":0.01757,"83":0.00293,"84":0,"85":0.00293,"86":0.00293,"87":0.00878,"88":0.00293,"89":0,"90":0.00293,"91":0.00293,"92":0.00586,"93":0.00878,"94":0.00586,"95":0.01757,"96":0.00293,"97":0.00293,"98":0.00293,"99":0.00586,"100":0.00293,"101":0.00293,"102":0.01464,"103":0.03806,"104":0.00586,"105":0.01171,"106":0.02342,"107":0.01171,"108":0.04685,"109":0.38942,"110":0.05856,"111":1.18877,"112":1.28246,"113":0.00586,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0.00293,"27":0,"28":0.00293,"29":0,"30":0.00586,"31":0,"32":0.00293,"33":0,"34":0,"35":0.01171,"36":0,"37":0.01464,"38":0,"39":0,"40":0.00293,"41":0,"42":0.00293,"43":0,"44":0,"45":0,"46":0.00293,"47":0.01757,"48":0,"49":0,"50":0.00293,"51":0.05856,"52":0,"53":0,"54":0.00293,"55":0.00293,"56":0.00293,"57":0.00586,"58":0.00878,"60":0.15518,"62":0,"63":0.11419,"64":0.04392,"65":0.02342,"66":0.11126,"67":0.23424,"68":0.27523,"69":0.47434,"70":0.00293,"71":0,"72":0.00293,"73":0.00878,"74":0.02342,"75":0.00586,"76":0,"77":0,"78":0,"79":0.00586,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00293,"95":0.04978,"96":0.06734,"97":0.22546,"98":0.01171,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.01464},B:{"12":0.01464,"13":0.01171,"14":0.00293,"15":0.00586,"16":0.00586,"17":0.00586,"18":0.0205,"79":0,"80":0,"81":0,"83":0,"84":0.00293,"85":0.00586,"86":0,"87":0,"88":0,"89":0.00586,"90":0.00586,"91":0,"92":0.01757,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00293,"101":0,"102":0,"103":0.00293,"104":0,"105":0.00293,"106":0.00293,"107":0.00586,"108":0.00878,"109":0.02635,"110":0.03221,"111":0.26059,"112":0.50069,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00293,"14":0.00293,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0.00878,"6.1":0,"7.1":0,"9.1":0.00293,"10.1":0,"11.1":0,"12.1":0,"13.1":0.00586,"14.1":0.0205,"15.1":0.00293,"15.2-15.3":0.00293,"15.4":0,"15.5":0.00586,"15.6":0.01171,"16.0":0,"16.1":0.00293,"16.2":0.00586,"16.3":0.02635,"16.4":0.01464,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00117,"5.0-5.1":0.0035,"6.0-6.1":0,"7.0-7.1":0.02102,"8.1-8.4":0,"9.0-9.2":0.00117,"9.3":0.10858,"10.0-10.2":0,"10.3":0.02685,"11.0-11.2":0.0035,"11.3-11.4":0.00584,"12.0-12.1":0.03736,"12.2-12.5":1.8541,"13.0-13.1":0.03386,"13.2":0.00234,"13.3":0.03736,"13.4-13.7":0.0829,"14.0-14.4":0.45419,"14.5-14.8":0.37946,"15.0-15.1":0.35144,"15.2-15.3":0.38763,"15.4":0.17981,"15.5":0.37246,"15.6":0.58612,"16.0":0.65034,"16.1":0.77644,"16.2":0.62115,"16.3":1.81441,"16.4":1.22245,"16.5":0.01168},P:{"4":0.11202,"20":1.00818,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.14257,"8.2":0,"9.2":0.02037,"10.1":0,"11.1-11.2":0.05092,"12.0":0,"13.0":0.03055,"14.0":0.02037,"15.0":0.01018,"16.0":0.03055,"17.0":0.04073,"18.0":0.03055,"19.0":0.28514},I:{"0":0,"3":0,"4":0.00351,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00456,"4.2-4.3":0.00211,"4.4":0,"4.4.3-4.4.4":0.13374},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0.00335,"11":0.02008,"5.5":0},S:{"2.5":0.01414,_:"3.0-3.1"},J:{"7":0,"10":0.00707},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.09194},Q:{"13.1":0.00707},O:{"0":2.23475},H:{"0":11.26152},L:{"0":63.32939}}; diff --git a/node_modules/caniuse-lite/data/regions/ZW.js b/node_modules/caniuse-lite/data/regions/ZW.js new file mode 100644 index 0000000..3abac1d --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/ZW.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0.00395,"49":0,"50":0,"51":0,"52":0.00395,"53":0,"54":0,"55":0,"56":0,"57":0.00395,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0.02764,"64":0,"65":0,"66":0,"67":0,"68":0.00395,"69":0,"70":0,"71":0,"72":0.00395,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0.00395,"88":0.00395,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0.00395,"95":0,"96":0,"97":0,"98":0,"99":0.00395,"100":0,"101":0,"102":0.0079,"103":0.00395,"104":0.00395,"105":0.00395,"106":0.05134,"107":0.00395,"108":0.0079,"109":0.07108,"110":0.03554,"111":0.41859,"112":0.45808,"113":0.01975,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0.0079,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0.00395,"39":0,"40":0.00395,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0.00395,"47":0.00395,"48":0,"49":0.00395,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0.0079,"56":0.00395,"57":0.00395,"58":0.00395,"59":0,"60":0.00395,"61":0,"62":0,"63":0.0158,"64":0.00395,"65":0,"66":0.00395,"67":0,"68":0.00395,"69":0.00395,"70":0.01185,"71":0.00395,"72":0.00395,"73":0.00395,"74":0.01185,"75":0.00395,"76":0.0079,"77":0.00395,"78":0.00395,"79":0.01975,"80":0.0079,"81":0.02764,"83":0.00395,"84":0.00395,"85":0.00395,"86":0.01185,"87":0.0079,"88":0.0079,"89":0.0079,"90":0.0079,"91":0.00395,"92":0.0158,"93":0.0079,"94":0.03159,"95":0.01185,"96":0.0158,"97":0.01185,"98":0.0079,"99":0.01185,"100":0.0079,"101":0.0079,"102":0.05529,"103":0.03949,"104":0.01975,"105":0.01975,"106":0.02369,"107":0.02764,"108":0.08293,"109":0.75821,"110":0.10662,"111":2.76035,"112":3.19869,"113":0.01185,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0.00395,"25":0,"26":0.00395,"27":0,"28":0.01185,"29":0,"30":0,"31":0,"32":0.00395,"33":0,"34":0,"35":0.0158,"36":0,"37":0.00395,"38":0.00395,"39":0,"40":0,"41":0,"42":0.02369,"43":0,"44":0,"45":0,"46":0.0079,"47":0.05134,"48":0,"49":0,"50":0.07108,"51":0.00395,"52":0,"53":0,"54":0.01185,"55":0.00395,"56":0.00395,"57":0.0158,"58":0.03949,"60":0.11452,"62":0,"63":0.18955,"64":0.04344,"65":0.03159,"66":0.11452,"67":0.18165,"68":0.27248,"69":0.61604,"70":0.00395,"71":0,"72":0,"73":0,"74":0.04344,"75":0.00395,"76":0,"77":0,"78":0,"79":0.00395,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0.0079,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0.00395,"92":0,"93":0,"94":0.0079,"95":0.03159,"96":0.05134,"97":0.34356,"98":0.0158,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0.13032},B:{"12":0.0158,"13":0.0079,"14":0.11452,"15":0.01975,"16":0.01185,"17":0.00395,"18":0.03949,"79":0,"80":0,"81":0,"83":0,"84":0.0079,"85":0,"86":0,"87":0,"88":0,"89":0.01185,"90":0.01975,"91":0,"92":0.03554,"93":0.00395,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0.00395,"101":0,"102":0,"103":0.00395,"104":0.00395,"105":0.03159,"106":0.00395,"107":0.01975,"108":0.02369,"109":0.03159,"110":0.05134,"111":0.51337,"112":0.9912,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0.00395,"14":0.00395,"15":0.0079,_:"0","3.1":0,"3.2":0,"5.1":0.0079,"6.1":0,"7.1":0,"9.1":0.00395,"10.1":0,"11.1":0.0079,"12.1":0.00395,"13.1":0.01975,"14.1":0.06318,"15.1":0.00395,"15.2-15.3":0.00395,"15.4":0.0079,"15.5":0.00395,"15.6":0.05134,"16.0":0,"16.1":0.01975,"16.2":0.0158,"16.3":0.10267,"16.4":0.03159,"16.5":0},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0024,"7.0-7.1":0.00479,"8.1-8.4":0.0024,"9.0-9.2":0.0012,"9.3":0.12095,"10.0-10.2":0.0024,"10.3":0.03233,"11.0-11.2":0.01078,"11.3-11.4":0.00958,"12.0-12.1":0.03114,"12.2-12.5":0.43111,"13.0-13.1":0.00719,"13.2":0.00479,"13.3":0.02754,"13.4-13.7":0.08143,"14.0-14.4":0.20238,"14.5-14.8":0.51134,"15.0-15.1":0.16526,"15.2-15.3":0.2395,"15.4":0.32213,"15.5":0.38081,"15.6":0.65864,"16.0":0.75324,"16.1":1.23704,"16.2":0.70055,"16.3":3.4261,"16.4":1.54839,"16.5":0.02036},P:{"4":0.08139,"20":1.13945,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.1526,"8.2":0,"9.2":0.01017,"10.1":0,"11.1-11.2":0.03052,"12.0":0,"13.0":0.03052,"14.0":0.03052,"15.0":0.01017,"16.0":0.06104,"17.0":0.04069,"18.0":0.05087,"19.0":0.1933},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0009,"4.4":0,"4.4.3-4.4.4":0.12279},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0.00395,"9":0,"10":0,"11":0.02764,"5.5":0},S:{"2.5":0.00605,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.29045},Q:{"13.1":0.03631},O:{"0":1.30097},H:{"0":8.35244},L:{"0":59.739}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-af.js b/node_modules/caniuse-lite/data/regions/alt-af.js new file mode 100644 index 0000000..5ba34a6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-af.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.0088,"43":0.00293,"47":0.00293,"52":0.03225,"65":0.00293,"72":0.00586,"77":0.00293,"78":0.0088,"88":0.00293,"89":0.00293,"91":0.00293,"94":0.00293,"95":0.00586,"99":0.0088,"102":0.02639,"103":0.00293,"104":0.00293,"105":0.00586,"106":0.00586,"107":0.0088,"108":0.0088,"109":0.01173,"110":0.03225,"111":0.67729,"112":0.61865,"113":0.02639,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 79 80 81 82 83 84 85 86 87 90 92 93 96 97 98 100 101 114 3.5 3.6"},D:{"38":0.00586,"40":0.00293,"43":0.02639,"47":0.00586,"49":0.02052,"50":0.00293,"52":0.00586,"55":0.00586,"56":0.00586,"58":0.00293,"62":0.0088,"63":0.0088,"64":0.00293,"65":0.00586,"66":0.0088,"67":0.01759,"68":0.00586,"69":0.01173,"70":0.01173,"71":0.00586,"72":0.01173,"73":0.00586,"74":0.02346,"75":0.0088,"76":0.01173,"77":0.0088,"78":0.0088,"79":0.07623,"80":0.01466,"81":0.01759,"83":0.01466,"84":0.0088,"85":0.01759,"86":0.01759,"87":0.03518,"88":0.01759,"89":0.0088,"90":0.02052,"91":0.03225,"92":0.02346,"93":0.05864,"94":0.05571,"95":0.01759,"96":0.01466,"97":0.01759,"98":0.02639,"99":0.03518,"100":0.02052,"101":0.01759,"102":0.02932,"103":0.07037,"104":0.02639,"105":0.03518,"106":0.03225,"107":0.04984,"108":0.09969,"109":2.25471,"110":0.18178,"111":4.6824,"112":5.6441,"113":0.01173,"114":0.00586,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 44 45 46 48 51 53 54 57 59 60 61 115 116"},F:{"28":0.00586,"36":0.00293,"72":0.00293,"73":0.00293,"74":0.01173,"79":0.01466,"84":0.00293,"85":0.0088,"90":0.00293,"92":0.00586,"93":0.00293,"94":0.01173,"95":0.09089,"96":0.12608,"97":0.44566,"98":0.02346,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 75 76 77 78 80 81 82 83 86 87 88 89 91 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0088,"13":0.00293,"14":0.00586,"15":0.00293,"16":0.00293,"17":0.00586,"18":0.02346,"84":0.00586,"89":0.00586,"90":0.00586,"92":0.02052,"100":0.00293,"101":0.00293,"105":0.00586,"106":0.00586,"107":0.0088,"108":0.01759,"109":0.06744,"110":0.05571,"111":0.69488,"112":1.56276,_:"79 80 81 83 85 86 87 88 91 93 94 95 96 97 98 99 102 103 104 113"},E:{"4":0,"13":0.00586,"14":0.02052,"15":0.00586,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.04105,"11.1":0.00293,"12.1":0.0088,"13.1":0.03812,"14.1":0.04691,"15.1":0.0088,"15.2-15.3":0.0088,"15.4":0.01466,"15.5":0.02052,"15.6":0.10555,"16.0":0.01173,"16.1":0.03518,"16.2":0.04398,"16.3":0.23163,"16.4":0.10262,"16.5":0.00293},G:{"8":0.00105,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00211,"6.0-6.1":0.00211,"7.0-7.1":0.02949,"8.1-8.4":0.00421,"9.0-9.2":0.00527,"9.3":0.05897,"10.0-10.2":0,"10.3":0.0695,"11.0-11.2":0.00842,"11.3-11.4":0.00948,"12.0-12.1":0.02949,"12.2-12.5":0.70239,"13.0-13.1":0.02001,"13.2":0.00948,"13.3":0.03791,"13.4-13.7":0.09056,"14.0-14.4":0.32118,"14.5-14.8":0.38016,"15.0-15.1":0.16322,"15.2-15.3":0.18113,"15.4":0.17165,"15.5":0.30539,"15.6":0.48125,"16.0":0.64869,"16.1":1.00041,"16.2":0.63816,"16.3":2.75586,"16.4":1.38162,"16.5":0.03264},P:{"4":0.21541,"20":2.84137,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.22567,"8.2":0,"9.2":0.01026,"10.1":0,"11.1-11.2":0.04103,"12.0":0.02052,"13.0":0.05129,"14.0":0.05129,"15.0":0.03077,"16.0":0.11283,"17.0":0.08206,"18.0":0.08206,"19.0":0.23593},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.002,"4.2-4.3":0.00733,"4.4":0,"4.4.3-4.4.4":0.05429},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00926,"10":0.00309,"11":0.10493,_:"6 7 9 5.5"},S:{"2.5":0.09188,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.28272},Q:{"13.1":0},O:{"0":0.58664},H:{"0":7.92277},L:{"0":56.73967}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-an.js b/node_modules/caniuse-lite/data/regions/alt-an.js new file mode 100644 index 0000000..075a075 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-an.js @@ -0,0 +1 @@ +module.exports={C:{"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"3.5":0,"3.6":0},D:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0.00387,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0.00387,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0},F:{"9":0,"11":0,"12":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"60":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"9.5-9.6":0,"10.0-10.1":0,"10.5":0,"10.6":0,"11.1":0,"11.5":0,"11.6":0,"12.1":0},B:{"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"79":0,"80":0,"81":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0},E:{"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,_:"0","3.1":0,"3.2":0,"5.1":0,"6.1":0,"7.1":0,"9.1":0,"10.1":0,"11.1":0,"12.1":0,"13.1":0,"14.1":0,"15.1":0.47153,"15.2-15.3":0.42902,"15.4":0.10436,"15.5":0.51018,"15.6":1.20975,"16.0":0.19712,"16.1":0.64159,"16.2":0.88509,"16.3":5.45352,"16.4":4.27856,"16.5":0.04252},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":1.10396,"15.2-15.3":3.83798,"15.4":0.25874,"15.5":0.50023,"15.6":2.50978,"16.0":4.01048,"16.1":12.98015,"16.2":9.6424,"16.3":34.12787,"16.4":15.54168,"16.5":0.58648},P:{"4":0,"20":0,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0,"8.2":0,"9.2":0,"10.1":0,"11.1-11.2":0,"12.0":0,"13.0":0,"14.0":0,"15.0":0,"16.0":0,"17.0":0,"18.0":0,"19.0":0},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"5.5":0},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0},Q:{"13.1":0},O:{"0":0},H:{"0":0},L:{"0":0.01614}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-as.js b/node_modules/caniuse-lite/data/regions/alt-as.js new file mode 100644 index 0000000..2d829bc --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-as.js @@ -0,0 +1 @@ +module.exports={C:{"34":0.00655,"36":0.00655,"43":0.04258,"52":0.04258,"53":0.00655,"55":0.00655,"56":0.00983,"72":0.01638,"78":0.00655,"87":0.0131,"88":0.00655,"102":0.01638,"104":0.00328,"106":0.00328,"107":0.00655,"108":0.00655,"109":0.00983,"110":0.03275,"111":0.50763,"112":0.4323,"113":0.00983,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 44 45 46 47 48 49 50 51 54 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 89 90 91 92 93 94 95 96 97 98 99 100 101 103 105 114 3.5 3.6"},D:{"26":0.00655,"34":0.0131,"35":0.00328,"37":0.00655,"38":0.0262,"47":0.00983,"48":0.00655,"49":0.03275,"50":0.00983,"53":0.01638,"55":0.00655,"56":0.00655,"57":0.00655,"58":0.00655,"60":0.00655,"61":0.01965,"63":0.00655,"65":0.00328,"66":0.00983,"67":0.00655,"68":0.00983,"69":0.06223,"70":0.02948,"71":0.00983,"72":0.0393,"73":0.0131,"74":0.04585,"75":0.00983,"76":0.00655,"77":0.0131,"78":0.0262,"79":0.1441,"80":0.0262,"81":0.0262,"83":0.0393,"84":0.01638,"85":0.02948,"86":0.04258,"87":0.0524,"88":0.00983,"89":0.02948,"90":0.02948,"91":0.0393,"92":0.03275,"93":0.02293,"94":0.04585,"95":0.01638,"96":0.0262,"97":0.03603,"98":0.04258,"99":0.0524,"100":0.03603,"101":0.02948,"102":0.03275,"103":0.1048,"104":0.04585,"105":0.04585,"106":0.05568,"107":0.07533,"108":0.1441,"109":2.57743,"110":0.2358,"111":6.36988,"112":7.2967,"113":0.0131,"114":0.00655,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 36 39 40 41 42 43 44 45 46 51 52 54 59 62 64 115 116"},F:{"28":0.0131,"36":0.00983,"40":0.00655,"46":0.0262,"74":0.00328,"95":0.03603,"96":0.0786,"97":0.2489,"98":0.00983,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00328,"18":0.0131,"89":0.00655,"92":0.00983,"101":0.00328,"103":0.00328,"105":0.00328,"106":0.00655,"107":0.01638,"108":0.0393,"109":0.07205,"110":0.05895,"111":0.7074,"112":1.68335,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 90 91 93 94 95 96 97 98 99 100 102 104 113"},E:{"4":0,"13":0.0131,"14":0.04913,"15":0.00983,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00983,"12.1":0.00983,"13.1":0.04258,"14.1":0.11135,"15.1":0.01638,"15.2-15.3":0.0131,"15.4":0.04258,"15.5":0.07533,"15.6":0.262,"16.0":0.02293,"16.1":0.0917,"16.2":0.11463,"16.3":0.54365,"16.4":0.19978,"16.5":0.00328},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00503,"5.0-5.1":0.00503,"6.0-6.1":0.00503,"7.0-7.1":0.02011,"8.1-8.4":0.0088,"9.0-9.2":0.0088,"9.3":0.05153,"10.0-10.2":0.00628,"10.3":0.07415,"11.0-11.2":0.02891,"11.3-11.4":0.02011,"12.0-12.1":0.02639,"12.2-12.5":0.42354,"13.0-13.1":0.0176,"13.2":0.01885,"13.3":0.04022,"13.4-13.7":0.12442,"14.0-14.4":0.32048,"14.5-14.8":0.52157,"15.0-15.1":0.1747,"15.2-15.3":0.1948,"15.4":0.24508,"15.5":0.34311,"15.6":0.7013,"16.0":0.74905,"16.1":1.31587,"16.2":0.84331,"16.3":3.47757,"16.4":1.70297,"16.5":0.03016},P:{"4":0.29661,"20":1.97401,"5.0-5.4":0.01023,"6.2-6.4":0,"7.2-7.4":0.0716,"8.2":0,"9.2":0.01023,"10.1":0,"11.1-11.2":0.03068,"12.0":0.01023,"13.0":0.04091,"14.0":0.03068,"15.0":0.02046,"16.0":0.0716,"17.0":0.08182,"18.0":0.0716,"19.0":0.18411},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0877,"4.4":0,"4.4.3-4.4.4":0.9209},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0282,"9":0.07521,"11":0.69569,_:"6 7 10 5.5"},S:{"2.5":0.14793,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.15465},Q:{"13.1":0.27568},O:{"0":2.02392},H:{"0":1.12676},L:{"0":53.99619}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-eu.js b/node_modules/caniuse-lite/data/regions/alt-eu.js new file mode 100644 index 0000000..b031002 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-eu.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.0547,"59":0.01492,"68":0.00995,"78":0.04476,"80":0.00497,"81":0.00497,"83":0.00497,"87":0.00995,"88":0.00995,"91":0.01989,"94":0.02487,"99":0.00497,"101":0.00497,"102":0.14422,"103":0.0746,"104":0.00995,"105":0.00995,"106":0.00995,"107":0.01492,"108":0.02487,"109":0.03978,"110":0.0746,"111":1.91958,"112":1.75547,"113":0.00497,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 82 84 85 86 89 90 92 93 95 96 97 98 100 114 3.5 3.6"},D:{"34":0.00497,"38":0.00995,"40":0.04476,"43":0.00995,"44":0.00995,"45":0.00995,"47":0.01989,"48":0.00497,"49":0.04476,"51":0.00497,"52":0.00995,"56":0.03481,"58":0.01492,"60":0.02984,"63":0.01492,"66":0.06465,"67":0.00497,"71":0.00995,"72":0.00995,"74":0.00995,"75":0.14422,"76":0.00995,"77":0.00995,"78":0.02984,"79":0.14422,"80":0.02487,"81":0.02984,"83":0.03481,"84":0.03978,"85":0.1293,"86":0.0547,"87":0.0746,"88":0.03481,"89":0.02487,"90":0.0547,"91":0.08454,"92":0.06465,"93":0.11438,"94":0.10941,"95":0.01989,"96":0.04476,"97":0.01989,"98":0.01989,"99":0.03978,"100":0.05968,"101":0.03481,"102":0.04973,"103":0.20887,"104":0.08951,"105":0.08454,"106":0.08951,"107":0.09449,"108":0.22379,"109":1.91958,"110":0.42768,"111":10.17476,"112":11.97001,"113":0.01989,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 41 42 46 50 53 54 55 57 59 61 62 64 65 68 69 70 73 114 115 116"},F:{"11":0.00497,"28":0.00497,"31":0.01492,"36":0.00497,"40":0.01492,"46":0.01492,"85":0.00995,"89":0.00497,"94":0.00995,"95":0.1293,"96":0.552,"97":1.46206,"98":0.04973,_:"9 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 90 91 92 93 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00497,"17":0.00995,"18":0.01492,"92":0.00995,"103":0.00497,"105":0.00497,"106":0.00995,"107":0.01989,"108":0.03481,"109":0.12433,"110":0.08454,"111":1.65104,"112":3.89386,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 104 113"},E:{"4":0,"13":0.01492,"14":0.08454,"15":0.01989,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00497,"11.1":0.01492,"12.1":0.02984,"13.1":0.13924,"14.1":0.22876,"15.1":0.03481,"15.2-15.3":0.03481,"15.4":0.06962,"15.5":0.11438,"15.6":0.58184,"16.0":0.06962,"16.1":0.18897,"16.2":0.3133,"16.3":1.42725,"16.4":0.6813,"16.5":0.00995},G:{"8":0.00352,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00352,"6.0-6.1":0.00176,"7.0-7.1":0.01585,"8.1-8.4":0.0229,"9.0-9.2":0.01057,"9.3":0.07045,"10.0-10.2":0.00176,"10.3":0.0775,"11.0-11.2":0.01057,"11.3-11.4":0.0317,"12.0-12.1":0.01057,"12.2-12.5":0.33288,"13.0-13.1":0.00528,"13.2":0.00352,"13.3":0.01585,"13.4-13.7":0.05812,"14.0-14.4":0.13914,"14.5-14.8":0.33992,"15.0-15.1":0.0863,"15.2-15.3":0.12329,"15.4":0.13033,"15.5":0.25362,"15.6":0.82427,"16.0":1.16595,"16.1":2.32838,"16.2":1.28924,"16.3":6.38102,"16.4":2.88669,"16.5":0.06517},P:{"4":0.10618,"20":3.0685,"5.0-5.4":0.01023,"6.2-6.4":0,"7.2-7.4":0.0716,"8.2":0,"9.2":0.01023,"10.1":0,"11.1-11.2":0.02124,"12.0":0.01023,"13.0":0.02124,"14.0":0.01062,"15.0":0.01062,"16.0":0.03185,"17.0":0.04247,"18.0":0.04247,"19.0":0.14865},I:{"0":0,"3":0,"4":0.01456,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00546,"4.2-4.3":0.0273,"4.4":0,"4.4.3-4.4.4":0.05824},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01573,"9":0.01573,"10":0.00524,"11":0.15725,_:"6 7 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.45243},Q:{"13.1":0},O:{"0":0.12065},H:{"0":0.48544},L:{"0":33.03236}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-na.js b/node_modules/caniuse-lite/data/regions/alt-na.js new file mode 100644 index 0000000..88541f0 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-na.js @@ -0,0 +1 @@ +module.exports={C:{"4":0.01198,"11":0.02395,"38":0.01198,"40":0.01198,"43":0.00599,"44":0.01796,"52":0.03593,"54":0.01198,"55":0.00599,"65":0.01198,"72":0.02395,"78":0.06587,"83":0.00599,"91":0.01198,"94":0.03593,"101":0.00599,"102":0.11976,"104":0.00599,"105":0.01198,"106":0.00599,"107":0.01198,"108":0.01796,"109":0.02994,"110":0.05389,"111":1.16167,"112":1.05389,_:"2 3 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 45 46 47 48 49 50 51 53 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 90 92 93 95 96 97 98 99 100 103 113 114 3.5 3.6"},D:{"35":0.01198,"38":0.00599,"40":0.01796,"41":0.01198,"42":0.01198,"43":0.01796,"44":0.02395,"45":0.02994,"47":0.00599,"48":0.05389,"49":0.03593,"52":0.00599,"56":0.20359,"60":0.00599,"65":0.01796,"66":0.04192,"67":0.01198,"68":0.02395,"69":0.02994,"70":0.01796,"71":0.0479,"72":0.02395,"73":0.01198,"74":0.03593,"75":0.03593,"76":0.13174,"77":0.02395,"78":0.02994,"79":0.43114,"80":0.07784,"81":0.08982,"83":0.39521,"84":0.05988,"85":0.08982,"86":0.08982,"87":0.17365,"88":0.05988,"89":0.05988,"90":0.06587,"91":0.11377,"92":0.05988,"93":0.36527,"94":0.05988,"95":0.02395,"96":0.0479,"97":0.08982,"98":0.0479,"99":0.07784,"100":0.05988,"101":0.06587,"102":0.11377,"103":0.62275,"104":0.05988,"105":0.16766,"106":0.08383,"107":0.12575,"108":0.46706,"109":1.36526,"110":0.9461,"111":11.58678,"112":11.61672,"113":0.04192,"114":0.03593,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 46 50 51 53 54 55 57 58 59 61 62 63 64 115 116"},F:{"94":0.00599,"95":0.05389,"96":0.43712,"97":1.0479,"98":0.04192,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00599,"18":0.00599,"80":0.00599,"81":0.00599,"83":0.01198,"84":0.01198,"85":0.00599,"86":0.01198,"87":0.01198,"92":0.01198,"98":0.00599,"101":0.00599,"102":0.01796,"105":0.00599,"106":0.00599,"107":0.01198,"108":0.02395,"109":0.11976,"110":0.1018,"111":2.38322,"112":5.21555,_:"13 14 15 16 17 79 88 89 90 91 93 94 95 96 97 99 100 103 104 113"},E:{"4":0,"8":0.01198,"9":0.00599,"12":0.00599,"13":0.05389,"14":0.27545,"15":0.06587,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.17365,"11.1":0.00599,"12.1":0.10778,"13.1":0.48503,"14.1":0.80239,"15.1":0.11976,"15.2-15.3":0.11377,"15.4":0.27545,"15.5":0.49102,"15.6":2.05388,"16.0":0.22754,"16.1":0.68862,"16.2":1.01796,"16.3":3.77843,"16.4":1.58682,"16.5":0.02994},G:{"8":0.0065,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0065,"5.0-5.1":0.00217,"6.0-6.1":0.00867,"7.0-7.1":0.01734,"8.1-8.4":0.05635,"9.0-9.2":0.0195,"9.3":0.04551,"10.0-10.2":0.00433,"10.3":0.04984,"11.0-11.2":0.01084,"11.3-11.4":0.0195,"12.0-12.1":0.013,"12.2-12.5":0.23188,"13.0-13.1":0.00867,"13.2":0.04334,"13.3":0.02167,"13.4-13.7":0.06718,"14.0-14.4":0.18421,"14.5-14.8":0.38358,"15.0-15.1":0.11919,"15.2-15.3":0.16254,"15.4":0.16254,"15.5":0.31207,"15.6":1.14641,"16.0":1.14425,"16.1":2.88012,"16.2":1.65786,"16.3":8.53851,"16.4":3.5541,"16.5":0.08452},P:{"4":0.10983,"20":1.29602,"5.0-5.4":0.01023,"6.2-6.4":0,"7.2-7.4":0.0716,"8.2":0,"9.2":0.01023,"10.1":0,"11.1-11.2":0.02124,"12.0":0.01023,"13.0":0.02124,"14.0":0.01062,"15.0":0.01062,"16.0":0.02197,"17.0":0.02197,"18.0":0.03295,"19.0":0.0659},I:{"0":0,"3":0.00571,"4":0.01142,"2.1":0.00286,"2.2":0.00952,"2.3":0.0019,"4.1":0.00476,"4.2-4.3":0.02856,"4.4":0,"4.4.3-4.4.4":0.0476},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04703,"9":0.03359,"10":0.01344,"11":0.18139,_:"6 7 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.3691},Q:{"13.1":0.02808},O:{"0":0.08024},H:{"0":0.19751},L:{"0":19.53763}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-oc.js b/node_modules/caniuse-lite/data/regions/alt-oc.js new file mode 100644 index 0000000..cb7674f --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-oc.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.00529,"34":0.00529,"48":0.01059,"52":0.02118,"54":0.00529,"66":0.01588,"78":0.04765,"79":0.01059,"80":0.01059,"81":0.01588,"82":0.01059,"83":0.01059,"87":0.01059,"88":0.00529,"91":0.00529,"94":0.05823,"102":0.05294,"103":0.00529,"104":0.01059,"105":0.01059,"106":0.01588,"107":0.01588,"108":0.01588,"109":0.02647,"110":0.05823,"111":1.25468,"112":1.09056,"113":0.00529,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 84 85 86 89 90 92 93 95 96 97 98 99 100 101 114 3.5 3.6"},D:{"25":0.02118,"26":0.01059,"34":0.03176,"38":0.10059,"47":0.00529,"49":0.03176,"52":0.01059,"53":0.00529,"56":0.00529,"58":0.00529,"59":0.01059,"60":0.02647,"65":0.01059,"66":0.03176,"67":0.03176,"68":0.01059,"69":0.24352,"70":0.00529,"72":0.01059,"73":0.00529,"74":0.02647,"75":0.00529,"76":0.02647,"77":0.01059,"78":0.01588,"79":0.12706,"80":0.02647,"81":0.05823,"83":0.06882,"84":0.09,"85":0.12176,"86":0.13764,"87":0.15882,"88":0.01588,"89":0.01059,"90":0.01059,"91":0.01588,"92":0.02118,"93":0.09,"94":0.03706,"95":0.02118,"96":0.04765,"97":0.05823,"98":0.04235,"99":0.04765,"100":0.04765,"101":0.05294,"102":0.04765,"103":0.3547,"104":0.07412,"105":0.09,"106":0.12176,"107":0.15882,"108":0.31235,"109":1.29703,"110":0.7041,"111":11.7368,"112":12.74795,"113":0.02118,"114":0.01059,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 54 55 57 61 62 63 64 71 115 116"},F:{"28":0.00529,"46":0.03706,"71":0.01059,"72":0.00529,"94":0.00529,"95":0.02647,"96":0.24882,"97":0.56646,"98":0.01588,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02118,"84":0.00529,"85":0.01588,"86":0.00529,"92":0.00529,"95":0.00529,"103":0.00529,"104":0.00529,"105":0.01059,"106":0.01059,"107":0.02647,"108":0.06353,"109":0.10588,"110":0.11117,"111":1.8529,"112":4.11873,_:"12 13 14 15 16 17 79 80 81 83 87 88 89 90 91 93 94 96 97 98 99 100 101 102 113"},E:{"4":0,"12":0.00529,"13":0.04765,"14":0.19588,"15":0.05294,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01588,"12.1":0.06353,"13.1":0.27529,"14.1":0.57175,"15.1":0.0847,"15.2-15.3":0.09,"15.4":0.18,"15.5":0.28588,"15.6":1.50879,"16.0":0.13764,"16.1":0.40764,"16.2":0.67763,"16.3":3.2664,"16.4":1.16468,"16.5":0.01588},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01019,"6.0-6.1":0.01019,"7.0-7.1":0.01019,"8.1-8.4":0.01528,"9.0-9.2":0.01782,"9.3":0.14005,"10.0-10.2":0.00255,"10.3":0.18079,"11.0-11.2":0.03056,"11.3-11.4":0.06621,"12.0-12.1":0.03565,"12.2-12.5":0.72317,"13.0-13.1":0.01528,"13.2":0.00764,"13.3":0.04329,"13.4-13.7":0.12986,"14.0-14.4":0.29538,"14.5-14.8":0.54238,"15.0-15.1":0.15787,"15.2-15.3":0.18079,"15.4":0.22917,"15.5":0.3845,"15.6":1.2961,"16.0":1.34957,"16.1":3.40703,"16.2":2.00399,"16.3":9.5947,"16.4":3.2899,"16.5":0.06111},P:{"4":0.22549,"20":2.80258,"5.0-5.4":0.05369,"6.2-6.4":0,"7.2-7.4":0.0716,"8.2":0,"9.2":0.01023,"10.1":0,"11.1-11.2":0.01074,"12.0":0.01023,"13.0":0.03221,"14.0":0.02148,"15.0":0.02148,"16.0":0.05369,"17.0":0.04295,"18.0":0.05369,"19.0":0.15033},I:{"0":0,"3":0,"4":0.00471,"2.1":0,"2.2":0.00188,"2.3":0.00282,"4.1":0.00471,"4.2-4.3":0.01224,"4.4":0,"4.4.3-4.4.4":0.03482},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0654,"9":0.03737,"10":0.00934,"11":0.20553,_:"6 7 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.50354},Q:{"13.1":0.00471},O:{"0":0.08471},H:{"0":0.17376},L:{"0":21.1551}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-sa.js b/node_modules/caniuse-lite/data/regions/alt-sa.js new file mode 100644 index 0000000..e6f49a8 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-sa.js @@ -0,0 +1 @@ +module.exports={C:{"52":0.03701,"54":0.03238,"68":0.00463,"73":0.00463,"78":0.01388,"88":0.01388,"91":0.02776,"99":0.00925,"102":0.03701,"103":0.00463,"104":0.01388,"105":0.00463,"106":0.01388,"107":0.00925,"108":0.00925,"109":0.02313,"110":0.05089,"111":0.72628,"112":0.74016,"113":0.00463,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 100 101 114 3.5 3.6"},D:{"38":0.0185,"47":0.00925,"49":0.06476,"51":0.00463,"53":0.00463,"55":0.00463,"63":0.00463,"65":0.00463,"66":0.01388,"68":0.00925,"69":0.00463,"70":0.00463,"72":0.00463,"74":0.00925,"75":0.00925,"76":0.00925,"77":0.0185,"78":0.00925,"79":0.16191,"80":0.01388,"81":0.03238,"83":0.02313,"84":0.02776,"85":0.05089,"86":0.03701,"87":0.06939,"88":0.01388,"89":0.01388,"90":0.04163,"91":0.43022,"92":0.04163,"93":0.04163,"94":0.09715,"95":0.0185,"96":0.03238,"97":0.02776,"98":0.02776,"99":0.03238,"100":0.04163,"101":0.02313,"102":0.03238,"103":0.11565,"104":0.04626,"105":0.06476,"106":0.06476,"107":0.09715,"108":0.16191,"109":3.56665,"110":0.25443,"111":10.62592,"112":13.57731,"113":0.02313,"114":0.00463,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 52 54 56 57 58 59 60 61 62 64 67 71 73 115 116"},F:{"28":0.00925,"36":0.00925,"85":0.00925,"95":0.10177,"96":0.96683,"97":2.10946,"98":0.05089,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 94 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.02776,"18":0.00925,"92":0.01388,"107":0.01388,"108":0.00925,"109":0.06939,"110":0.03701,"111":0.83268,"112":2.08633,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 99 100 101 102 103 104 105 106 113"},E:{"4":0,"14":0.0185,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 16.5","12.1":0.00463,"13.1":0.03238,"14.1":0.05089,"15.1":0.00463,"15.2-15.3":0.00925,"15.4":0.01388,"15.5":0.02313,"15.6":0.1064,"16.0":0.01388,"16.1":0.04626,"16.2":0.05089,"16.3":0.24518,"16.4":0.1249},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00482,"6.0-6.1":0.0008,"7.0-7.1":0.00402,"8.1-8.4":0.00161,"9.0-9.2":0,"9.3":0.02489,"10.0-10.2":0,"10.3":0.02249,"11.0-11.2":0.00642,"11.3-11.4":0.02168,"12.0-12.1":0.00562,"12.2-12.5":0.12528,"13.0-13.1":0.00241,"13.2":0.00161,"13.3":0.00723,"13.4-13.7":0.03052,"14.0-14.4":0.06184,"14.5-14.8":0.1582,"15.0-15.1":0.03373,"15.2-15.3":0.04577,"15.4":0.05541,"15.5":0.10761,"15.6":0.34451,"16.0":0.51395,"16.1":0.96045,"16.2":0.53965,"16.3":2.96005,"16.4":1.28007,"16.5":0.03774},P:{"4":0.1782,"20":1.82393,"5.0-5.4":0.05369,"6.2-6.4":0,"7.2-7.4":0.1782,"8.2":0,"9.2":0.01023,"10.1":0,"11.1-11.2":0.02096,"12.0":0.01023,"13.0":0.03145,"14.0":0.01048,"15.0":0.01048,"16.0":0.04193,"17.0":0.09434,"18.0":0.03145,"19.0":0.10482},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00262,"4.2-4.3":0.00787,"4.4":0,"4.4.3-4.4.4":0.04326},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00925,"9":0.00925,"11":0.09252,_:"6 7 10 5.5"},S:{"2.5":0,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.13438},Q:{"13.1":0},O:{"0":0.05375},H:{"0":0.21373},L:{"0":49.52482}}; diff --git a/node_modules/caniuse-lite/data/regions/alt-ww.js b/node_modules/caniuse-lite/data/regions/alt-ww.js new file mode 100644 index 0000000..b6cc9f6 --- /dev/null +++ b/node_modules/caniuse-lite/data/regions/alt-ww.js @@ -0,0 +1 @@ +module.exports={C:{"11":0.00888,"43":0.02221,"44":0.00444,"52":0.03997,"54":0.00444,"55":0.00444,"56":0.00444,"59":0.00444,"72":0.01332,"78":0.03109,"83":0.00444,"87":0.00888,"88":0.00444,"91":0.00888,"94":0.01776,"102":0.0977,"103":0.01776,"104":0.00444,"105":0.00888,"106":0.00888,"107":0.00888,"108":0.01332,"109":0.02221,"110":0.04885,"111":1.00367,"112":0.90596,"113":0.00888,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 45 46 47 48 49 50 51 53 57 58 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 84 85 86 89 90 92 93 95 96 97 98 99 100 101 114 3.5 3.6"},D:{"34":0.00888,"35":0.00444,"38":0.01776,"40":0.01332,"41":0.00444,"43":0.00888,"44":0.00888,"45":0.01332,"47":0.00888,"48":0.01776,"49":0.03553,"50":0.00444,"52":0.00444,"53":0.00888,"55":0.00444,"56":0.06662,"58":0.00444,"60":0.01332,"61":0.00888,"63":0.00444,"65":0.00888,"66":0.03109,"67":0.00888,"68":0.01332,"69":0.03997,"70":0.02221,"71":0.01776,"72":0.02665,"73":0.00888,"74":0.03109,"75":0.04441,"76":0.04441,"77":0.01776,"78":0.02665,"79":0.22205,"80":0.03997,"81":0.04441,"83":0.13767,"84":0.03553,"85":0.07106,"86":0.05773,"87":0.09326,"88":0.02665,"89":0.03553,"90":0.04441,"91":0.08438,"92":0.04885,"93":0.13767,"94":0.06662,"95":0.01776,"96":0.03553,"97":0.04885,"98":0.03997,"99":0.05773,"100":0.04885,"101":0.03997,"102":0.05773,"103":0.2709,"104":0.05773,"105":0.08882,"106":0.07106,"107":0.09326,"108":0.2487,"109":2.10948,"110":0.47519,"111":8.75321,"112":9.67694,"113":0.02221,"114":0.01332,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 36 37 39 42 46 51 54 57 59 62 64 115 116"},F:{"28":0.00888,"31":0.00444,"36":0.00444,"40":0.00444,"46":0.01332,"85":0.00444,"94":0.00444,"95":0.06662,"96":0.31531,"97":0.81714,"98":0.03109,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 91 92 93 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00444,"18":0.01332,"84":0.00444,"87":0.00444,"89":0.00444,"92":0.00888,"101":0.00444,"102":0.00444,"105":0.00444,"106":0.00888,"107":0.01776,"108":0.03109,"109":0.09326,"110":0.0755,"111":1.38559,"112":3.15755,_:"12 13 14 15 16 79 80 81 83 85 86 88 90 91 93 94 95 96 97 98 99 100 103 104 113"},E:{"4":0,"13":0.02221,"14":0.11991,"15":0.02665,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.00888,"9.1":0.04885,"11.1":0.00888,"12.1":0.03997,"13.1":0.18652,"14.1":0.32863,"15.1":0.04885,"15.2-15.3":0.04441,"15.4":0.11103,"15.5":0.1954,"15.6":0.83047,"16.0":0.08882,"16.1":0.27978,"16.2":0.40857,"16.3":1.63429,"16.4":0.68836,"16.5":0.01332},G:{"8":0.00319,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00319,"5.0-5.1":0.00478,"6.0-6.1":0.00637,"7.0-7.1":0.01752,"8.1-8.4":0.02549,"9.0-9.2":0.01274,"9.3":0.05416,"10.0-10.2":0.00319,"10.3":0.0685,"11.0-11.2":0.02071,"11.3-11.4":0.0223,"12.0-12.1":0.01912,"12.2-12.5":0.35843,"13.0-13.1":0.01115,"13.2":0.02071,"13.3":0.03027,"13.4-13.7":0.0908,"14.0-14.4":0.23736,"14.5-14.8":0.43011,"15.0-15.1":0.137,"15.2-15.3":0.16727,"15.4":0.19116,"15.5":0.30745,"15.6":0.83155,"16.0":0.9335,"16.1":1.93709,"16.2":1.14696,"16.3":5.44011,"16.4":2.42455,"16.5":0.05257},P:{"4":0.19103,"20":2.06946,"5.0-5.4":0,"6.2-6.4":0,"7.2-7.4":0.05306,"8.2":0,"9.2":0.01017,"10.1":0,"11.1-11.2":0.02123,"12.0":0,"13.0":0.02123,"14.0":0.01061,"15.0":0.01061,"16.0":0.05306,"17.0":0.05306,"18.0":0.05306,"19.0":0.14858},I:{"0":0,"3":0,"4":0.02854,"2.1":0,"2.2":0.00951,"2.3":0,"4.1":0.01903,"4.2-4.3":0.09514,"4.4":0,"4.4.3-4.4.4":0.34252},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.044,"9":0.0528,"10":0.0088,"11":0.36959,_:"6 7 5.5"},S:{"2.5":0.06671,_:"3.0-3.1"},J:{"7":0,"10":0},N:{"10":0,"11":0},R:{_:"0"},M:{"0":0.28907},Q:{"13.1":0.12786},O:{"0":0.95059},H:{"0":0.99469},L:{"0":39.68823}}; diff --git a/node_modules/caniuse-lite/dist/lib/statuses.js b/node_modules/caniuse-lite/dist/lib/statuses.js new file mode 100644 index 0000000..4d73ab3 --- /dev/null +++ b/node_modules/caniuse-lite/dist/lib/statuses.js @@ -0,0 +1,9 @@ +module.exports = { + 1: 'ls', // WHATWG Living Standard + 2: 'rec', // W3C Recommendation + 3: 'pr', // W3C Proposed Recommendation + 4: 'cr', // W3C Candidate Recommendation + 5: 'wd', // W3C Working Draft + 6: 'other', // Non-W3C, but reputable + 7: 'unoff' // Unofficial, Editor's Draft or W3C "Note" +} diff --git a/node_modules/caniuse-lite/dist/lib/supported.js b/node_modules/caniuse-lite/dist/lib/supported.js new file mode 100644 index 0000000..3f81e4e --- /dev/null +++ b/node_modules/caniuse-lite/dist/lib/supported.js @@ -0,0 +1,9 @@ +module.exports = { + y: 1 << 0, + n: 1 << 1, + a: 1 << 2, + p: 1 << 3, + u: 1 << 4, + x: 1 << 5, + d: 1 << 6 +} diff --git a/node_modules/caniuse-lite/dist/unpacker/agents.js b/node_modules/caniuse-lite/dist/unpacker/agents.js new file mode 100644 index 0000000..0c8a790 --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/agents.js @@ -0,0 +1,47 @@ +'use strict' + +const browsers = require('./browsers').browsers +const versions = require('./browserVersions').browserVersions +const agentsData = require('../../data/agents') + +function unpackBrowserVersions(versionsData) { + return Object.keys(versionsData).reduce((usage, version) => { + usage[versions[version]] = versionsData[version] + return usage + }, {}) +} + +module.exports.agents = Object.keys(agentsData).reduce((map, key) => { + let versionsData = agentsData[key] + map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { + if (entry === 'A') { + data.usage_global = unpackBrowserVersions(versionsData[entry]) + } else if (entry === 'C') { + data.versions = versionsData[entry].reduce((list, version) => { + if (version === '') { + list.push(null) + } else { + list.push(versions[version]) + } + return list + }, []) + } else if (entry === 'D') { + data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) + } else if (entry === 'E') { + data.browser = versionsData[entry] + } else if (entry === 'F') { + data.release_date = Object.keys(versionsData[entry]).reduce( + (map2, key2) => { + map2[versions[key2]] = versionsData[entry][key2] + return map2 + }, + {} + ) + } else { + // entry is B + data.prefix = versionsData[entry] + } + return data + }, {}) + return map +}, {}) diff --git a/node_modules/caniuse-lite/dist/unpacker/browserVersions.js b/node_modules/caniuse-lite/dist/unpacker/browserVersions.js new file mode 100644 index 0000000..553526e --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/browserVersions.js @@ -0,0 +1 @@ +module.exports.browserVersions = require('../../data/browserVersions') diff --git a/node_modules/caniuse-lite/dist/unpacker/browsers.js b/node_modules/caniuse-lite/dist/unpacker/browsers.js new file mode 100644 index 0000000..85e68b4 --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/browsers.js @@ -0,0 +1 @@ +module.exports.browsers = require('../../data/browsers') diff --git a/node_modules/caniuse-lite/dist/unpacker/feature.js b/node_modules/caniuse-lite/dist/unpacker/feature.js new file mode 100644 index 0000000..9440b8a --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/feature.js @@ -0,0 +1,48 @@ +'use strict' + +const statuses = require('../lib/statuses') +const supported = require('../lib/supported') +const browsers = require('./browsers').browsers +const versions = require('./browserVersions').browserVersions + +const MATH2LOG = Math.log(2) + +function unpackSupport(cipher) { + // bit flags + let stats = Object.keys(supported).reduce((list, support) => { + if (cipher & supported[support]) list.push(support) + return list + }, []) + + // notes + let notes = cipher >> 7 + let notesArray = [] + while (notes) { + let note = Math.floor(Math.log(notes) / MATH2LOG) + 1 + notesArray.unshift(`#${note}`) + notes -= Math.pow(2, note - 1) + } + + return stats.concat(notesArray).join(' ') +} + +function unpackFeature(packed) { + let unpacked = { status: statuses[packed.B], title: packed.C } + unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => { + let browser = packed.A[key] + browserStats[browsers[key]] = Object.keys(browser).reduce( + (stats, support) => { + let packedVersions = browser[support].split(' ') + let unpacked2 = unpackSupport(support) + packedVersions.forEach(v => (stats[versions[v]] = unpacked2)) + return stats + }, + {} + ) + return browserStats + }, {}) + return unpacked +} + +module.exports = unpackFeature +module.exports.default = unpackFeature diff --git a/node_modules/caniuse-lite/dist/unpacker/features.js b/node_modules/caniuse-lite/dist/unpacker/features.js new file mode 100644 index 0000000..8362aec --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/features.js @@ -0,0 +1,6 @@ +/* + * Load this dynamically so that it + * doesn't appear in the rollup bundle. + */ + +module.exports.features = require('../../data/features') diff --git a/node_modules/caniuse-lite/dist/unpacker/index.js b/node_modules/caniuse-lite/dist/unpacker/index.js new file mode 100644 index 0000000..12017e8 --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/index.js @@ -0,0 +1,4 @@ +module.exports.agents = require('./agents').agents +module.exports.feature = require('./feature') +module.exports.features = require('./features').features +module.exports.region = require('./region') diff --git a/node_modules/caniuse-lite/dist/unpacker/region.js b/node_modules/caniuse-lite/dist/unpacker/region.js new file mode 100644 index 0000000..d5cc2b6 --- /dev/null +++ b/node_modules/caniuse-lite/dist/unpacker/region.js @@ -0,0 +1,22 @@ +'use strict' + +const browsers = require('./browsers').browsers + +function unpackRegion(packed) { + return Object.keys(packed).reduce((list, browser) => { + let data = packed[browser] + list[browsers[browser]] = Object.keys(data).reduce((memo, key) => { + let stats = data[key] + if (key === '_') { + stats.split(' ').forEach(version => (memo[version] = null)) + } else { + memo[key] = stats + } + return memo + }, {}) + return list + }, {}) +} + +module.exports = unpackRegion +module.exports.default = unpackRegion diff --git a/node_modules/caniuse-lite/package.json b/node_modules/caniuse-lite/package.json new file mode 100644 index 0000000..09b9395 --- /dev/null +++ b/node_modules/caniuse-lite/package.json @@ -0,0 +1,34 @@ +{ + "name": "caniuse-lite", + "version": "1.0.30001491", + "description": "A smaller version of caniuse-db, with only the essentials!", + "main": "dist/unpacker/index.js", + "files": [ + "data", + "dist" + ], + "keywords": [ + "support" + ], + "author": { + "name": "Ben Briggs", + "email": "beneb.info@gmail.com", + "url": "http://beneb.info" + }, + "repository": "browserslist/caniuse-lite", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" +} diff --git a/node_modules/chokidar/LICENSE b/node_modules/chokidar/LICENSE new file mode 100644 index 0000000..fa9162b --- /dev/null +++ b/node_modules/chokidar/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/chokidar/README.md b/node_modules/chokidar/README.md new file mode 100644 index 0000000..d6a57fd --- /dev/null +++ b/node_modules/chokidar/README.md @@ -0,0 +1,308 @@ +# Chokidar [![Weekly downloads](https://img.shields.io/npm/dw/chokidar.svg)](https://github.com/paulmillr/chokidar) [![Yearly downloads](https://img.shields.io/npm/dy/chokidar.svg)](https://github.com/paulmillr/chokidar) + +> Minimal and efficient cross-platform file watching library + +[![NPM](https://nodei.co/npm/chokidar.png)](https://www.npmjs.com/package/chokidar) + +## Why? + +Node.js `fs.watch`: + +* Doesn't report filenames on MacOS. +* Doesn't report events at all when using editors like Sublime on MacOS. +* Often reports events twice. +* Emits most changes as `rename`. +* Does not provide an easy way to recursively watch file trees. +* Does not support recursive watching on Linux. + +Node.js `fs.watchFile`: + +* Almost as bad at event handling. +* Also does not provide any recursive watching. +* Results in high CPU utilization. + +Chokidar resolves these problems. + +Initially made for **[Brunch](https://brunch.io/)** (an ultra-swift web app build tool), it is now used in +[Microsoft's Visual Studio Code](https://github.com/microsoft/vscode), +[gulp](https://github.com/gulpjs/gulp/), +[karma](https://karma-runner.github.io/), +[PM2](https://github.com/Unitech/PM2), +[browserify](http://browserify.org/), +[webpack](https://webpack.github.io/), +[BrowserSync](https://www.browsersync.io/), +and [many others](https://www.npmjs.com/browse/depended/chokidar). +It has proven itself in production environments. + +Version 3 is out! Check out our blog post about it: [Chokidar 3: How to save 32TB of traffic every week](https://paulmillr.com/posts/chokidar-3-save-32tb-of-traffic/) + +## How? + +Chokidar does still rely on the Node.js core `fs` module, but when using +`fs.watch` and `fs.watchFile` for watching, it normalizes the events it +receives, often checking for truth by getting file stats and/or dir contents. + +On MacOS, chokidar by default uses a native extension exposing the Darwin +`FSEvents` API. This provides very efficient recursive watching compared with +implementations like `kqueue` available on most \*nix platforms. Chokidar still +does have to do some work to normalize the events received that way as well. + +On most other platforms, the `fs.watch`-based implementation is the default, which +avoids polling and keeps CPU usage down. Be advised that chokidar will initiate +watchers recursively for everything within scope of the paths that have been +specified, so be judicious about not wasting system resources by watching much +more than needed. + +## Getting started + +Install with npm: + +```sh +npm install chokidar +``` + +Then `require` and use it in your code: + +```javascript +const chokidar = require('chokidar'); + +// One-liner for current directory +chokidar.watch('.').on('all', (event, path) => { + console.log(event, path); +}); +``` + +## API + +```javascript +// Example of a more typical implementation structure + +// Initialize watcher. +const watcher = chokidar.watch('file, dir, glob, or array', { + ignored: /(^|[\/\\])\../, // ignore dotfiles + persistent: true +}); + +// Something to use when events are received. +const log = console.log.bind(console); +// Add event listeners. +watcher + .on('add', path => log(`File ${path} has been added`)) + .on('change', path => log(`File ${path} has been changed`)) + .on('unlink', path => log(`File ${path} has been removed`)); + +// More possible events. +watcher + .on('addDir', path => log(`Directory ${path} has been added`)) + .on('unlinkDir', path => log(`Directory ${path} has been removed`)) + .on('error', error => log(`Watcher error: ${error}`)) + .on('ready', () => log('Initial scan complete. Ready for changes')) + .on('raw', (event, path, details) => { // internal + log('Raw event info:', event, path, details); + }); + +// 'add', 'addDir' and 'change' events also receive stat() results as second +// argument when available: https://nodejs.org/api/fs.html#fs_class_fs_stats +watcher.on('change', (path, stats) => { + if (stats) console.log(`File ${path} changed size to ${stats.size}`); +}); + +// Watch new files. +watcher.add('new-file'); +watcher.add(['new-file-2', 'new-file-3', '**/other-file*']); + +// Get list of actual paths being watched on the filesystem +var watchedPaths = watcher.getWatched(); + +// Un-watch some files. +await watcher.unwatch('new-file*'); + +// Stop watching. +// The method is async! +watcher.close().then(() => console.log('closed')); + +// Full list of options. See below for descriptions. +// Do not use this example! +chokidar.watch('file', { + persistent: true, + + ignored: '*.txt', + ignoreInitial: false, + followSymlinks: true, + cwd: '.', + disableGlobbing: false, + + usePolling: false, + interval: 100, + binaryInterval: 300, + alwaysStat: false, + depth: 99, + awaitWriteFinish: { + stabilityThreshold: 2000, + pollInterval: 100 + }, + + ignorePermissionErrors: false, + atomic: true // or a custom 'atomicity delay', in milliseconds (default 100) +}); + +``` + +`chokidar.watch(paths, [options])` + +* `paths` (string or array of strings). Paths to files, dirs to be watched +recursively, or glob patterns. + - Note: globs must not contain windows separators (`\`), + because that's how they work by the standard — + you'll need to replace them with forward slashes (`/`). + - Note 2: for additional glob documentation, check out low-level + library: [picomatch](https://github.com/micromatch/picomatch). +* `options` (object) Options object as defined below: + +#### Persistence + +* `persistent` (default: `true`). Indicates whether the process +should continue to run as long as files are being watched. If set to +`false` when using `fsevents` to watch, no more events will be emitted +after `ready`, even if the process continues to run. + +#### Path filtering + +* `ignored` ([anymatch](https://github.com/es128/anymatch)-compatible definition) +Defines files/paths to be ignored. The whole relative or absolute path is +tested, not just filename. If a function with two arguments is provided, it +gets called twice per path - once with a single argument (the path), second +time with two arguments (the path and the +[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) +object of that path). +* `ignoreInitial` (default: `false`). If set to `false` then `add`/`addDir` events are also emitted for matching paths while +instantiating the watching as chokidar discovers these file paths (before the `ready` event). +* `followSymlinks` (default: `true`). When `false`, only the +symlinks themselves will be watched for changes instead of following +the link references and bubbling events through the link's path. +* `cwd` (no default). The base directory from which watch `paths` are to be +derived. Paths emitted with events will be relative to this. +* `disableGlobbing` (default: `false`). If set to `true` then the strings passed to `.watch()` and `.add()` are treated as +literal path names, even if they look like globs. + +#### Performance + +* `usePolling` (default: `false`). +Whether to use fs.watchFile (backed by polling), or fs.watch. If polling +leads to high CPU utilization, consider setting this to `false`. It is +typically necessary to **set this to `true` to successfully watch files over +a network**, and it may be necessary to successfully watch files in other +non-standard situations. Setting to `true` explicitly on MacOS overrides the +`useFsEvents` default. You may also set the CHOKIDAR_USEPOLLING env variable +to true (1) or false (0) in order to override this option. +* _Polling-specific settings_ (effective when `usePolling: true`) + * `interval` (default: `100`). Interval of file system polling, in milliseconds. You may also + set the CHOKIDAR_INTERVAL env variable to override this option. + * `binaryInterval` (default: `300`). Interval of file system + polling for binary files. + ([see list of binary extensions](https://github.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) +* `useFsEvents` (default: `true` on MacOS). Whether to use the +`fsevents` watching interface if available. When set to `true` explicitly +and `fsevents` is available this supercedes the `usePolling` setting. When +set to `false` on MacOS, `usePolling: true` becomes the default. +* `alwaysStat` (default: `false`). If relying upon the +[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) +object that may get passed with `add`, `addDir`, and `change` events, set +this to `true` to ensure it is provided even in cases where it wasn't +already available from the underlying watch events. +* `depth` (default: `undefined`). If set, limits how many levels of +subdirectories will be traversed. +* `awaitWriteFinish` (default: `false`). +By default, the `add` event will fire when a file first appears on disk, before +the entire file has been written. Furthermore, in some cases some `change` +events will be emitted while the file is being written. In some cases, +especially when watching for large files there will be a need to wait for the +write operation to finish before responding to a file creation or modification. +Setting `awaitWriteFinish` to `true` (or a truthy value) will poll file size, +holding its `add` and `change` events until the size does not change for a +configurable amount of time. The appropriate duration setting is heavily +dependent on the OS and hardware. For accurate detection this parameter should +be relatively high, making file watching much less responsive. +Use with caution. + * *`options.awaitWriteFinish` can be set to an object in order to adjust + timing params:* + * `awaitWriteFinish.stabilityThreshold` (default: 2000). Amount of time in + milliseconds for a file size to remain constant before emitting its event. + * `awaitWriteFinish.pollInterval` (default: 100). File size polling interval, in milliseconds. + +#### Errors + +* `ignorePermissionErrors` (default: `false`). Indicates whether to watch files +that don't have read permissions if possible. If watching fails due to `EPERM` +or `EACCES` with this set to `true`, the errors will be suppressed silently. +* `atomic` (default: `true` if `useFsEvents` and `usePolling` are `false`). +Automatically filters out artifacts that occur when using editors that use +"atomic writes" instead of writing directly to the source file. If a file is +re-added within 100 ms of being deleted, Chokidar emits a `change` event +rather than `unlink` then `add`. If the default of 100 ms does not work well +for you, you can override it by setting `atomic` to a custom value, in +milliseconds. + +### Methods & Events + +`chokidar.watch()` produces an instance of `FSWatcher`. Methods of `FSWatcher`: + +* `.add(path / paths)`: Add files, directories, or glob patterns for tracking. +Takes an array of strings or just one string. +* `.on(event, callback)`: Listen for an FS event. +Available events: `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `ready`, +`raw`, `error`. +Additionally `all` is available which gets emitted with the underlying event +name and path for every event other than `ready`, `raw`, and `error`. `raw` is internal, use it carefully. +* `.unwatch(path / paths)`: Stop watching files, directories, or glob patterns. +Takes an array of strings or just one string. +* `.close()`: **async** Removes all listeners from watched files. Asynchronous, returns Promise. Use with `await` to ensure bugs don't happen. +* `.getWatched()`: Returns an object representing all the paths on the file +system being watched by this `FSWatcher` instance. The object's keys are all the +directories (using absolute paths unless the `cwd` option was used), and the +values are arrays of the names of the items contained in each directory. + +## CLI + +If you need a CLI interface for your file watching, check out +[chokidar-cli](https://github.com/open-cli-tools/chokidar-cli), allowing you to +execute a command on each change, or get a stdio stream of change events. + +## Install Troubleshooting + +* `npm WARN optional dep failed, continuing fsevents@n.n.n` + * This message is normal part of how `npm` handles optional dependencies and is + not indicative of a problem. Even if accompanied by other related error messages, + Chokidar should function properly. + +* `TypeError: fsevents is not a constructor` + * Update chokidar by doing `rm -rf node_modules package-lock.json yarn.lock && npm install`, or update your dependency that uses chokidar. + +* Chokidar is producing `ENOSP` error on Linux, like this: + * `bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell` + `Error: watch /home/ ENOSPC` + * This means Chokidar ran out of file handles and you'll need to increase their count by executing the following command in Terminal: + `echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p` + +## Changelog + +For more detailed changelog, see [`full_changelog.md`](.github/full_changelog.md). +- **v3.5 (Jan 6, 2021):** Support for ARM Macs with Apple Silicon. Fixes for deleted symlinks. +- **v3.4 (Apr 26, 2020):** Support for directory-based symlinks. Fixes for macos file replacement. +- **v3.3 (Nov 2, 2019):** `FSWatcher#close()` method became async. That fixes IO race conditions related to close method. +- **v3.2 (Oct 1, 2019):** Improve Linux RAM usage by 50%. Race condition fixes. Windows glob fixes. Improve stability by using tight range of dependency versions. +- **v3.1 (Sep 16, 2019):** dotfiles are no longer filtered out by default. Use `ignored` option if needed. Improve initial Linux scan time by 50%. +- **v3 (Apr 30, 2019):** massive CPU & RAM consumption improvements; reduces deps / package size by a factor of 17x and bumps Node.js requirement to v8.16 and higher. +- **v2 (Dec 29, 2017):** Globs are now posix-style-only; without windows support. Tons of bugfixes. +- **v1 (Apr 7, 2015):** Glob support, symlink support, tons of bugfixes. Node 0.8+ is supported +- **v0.1 (Apr 20, 2012):** Initial release, extracted from [Brunch](https://github.com/brunch/brunch/blob/9847a065aea300da99bd0753f90354cde9de1261/src/helpers.coffee#L66) + +## Also + +Why was chokidar named this way? What's the meaning behind it? + +>Chowkidar is a transliteration of a Hindi word meaning 'watchman, gatekeeper', चौकीदार. This ultimately comes from Sanskrit _ चतुष्क_ (crossway, quadrangle, consisting-of-four). + +## License + +MIT (c) Paul Miller (), see [LICENSE](LICENSE) file. diff --git a/node_modules/chokidar/index.js b/node_modules/chokidar/index.js new file mode 100644 index 0000000..ed4b6d5 --- /dev/null +++ b/node_modules/chokidar/index.js @@ -0,0 +1,973 @@ +'use strict'; + +const { EventEmitter } = require('events'); +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); +const readdirp = require('readdirp'); +const anymatch = require('anymatch').default; +const globParent = require('glob-parent'); +const isGlob = require('is-glob'); +const braces = require('braces'); +const normalizePath = require('normalize-path'); + +const NodeFsHandler = require('./lib/nodefs-handler'); +const FsEventsHandler = require('./lib/fsevents-handler'); +const { + EV_ALL, + EV_READY, + EV_ADD, + EV_CHANGE, + EV_UNLINK, + EV_ADD_DIR, + EV_UNLINK_DIR, + EV_RAW, + EV_ERROR, + + STR_CLOSE, + STR_END, + + BACK_SLASH_RE, + DOUBLE_SLASH_RE, + SLASH_OR_BACK_SLASH_RE, + DOT_RE, + REPLACER_RE, + + SLASH, + SLASH_SLASH, + BRACE_START, + BANG, + ONE_DOT, + TWO_DOTS, + GLOBSTAR, + SLASH_GLOBSTAR, + ANYMATCH_OPTS, + STRING_TYPE, + FUNCTION_TYPE, + EMPTY_STR, + EMPTY_FN, + + isWindows, + isMacos, + isIBMi +} = require('./lib/constants'); + +const stat = promisify(fs.stat); +const readdir = promisify(fs.readdir); + +/** + * @typedef {String} Path + * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName + * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType + */ + +/** + * + * @typedef {Object} WatchHelpers + * @property {Boolean} followSymlinks + * @property {'stat'|'lstat'} statMethod + * @property {Path} path + * @property {Path} watchPath + * @property {Function} entryPath + * @property {Boolean} hasGlob + * @property {Object} globFilter + * @property {Function} filterPath + * @property {Function} filterDir + */ + +const arrify = (value = []) => Array.isArray(value) ? value : [value]; +const flatten = (list, result = []) => { + list.forEach(item => { + if (Array.isArray(item)) { + flatten(item, result); + } else { + result.push(item); + } + }); + return result; +}; + +const unifyPaths = (paths_) => { + /** + * @type {Array} + */ + const paths = flatten(arrify(paths_)); + if (!paths.every(p => typeof p === STRING_TYPE)) { + throw new TypeError(`Non-string provided as watch path: ${paths}`); + } + return paths.map(normalizePathToUnix); +}; + +// If SLASH_SLASH occurs at the beginning of path, it is not replaced +// because "//StoragePC/DrivePool/Movies" is a valid network path +const toUnix = (string) => { + let str = string.replace(BACK_SLASH_RE, SLASH); + let prepend = false; + if (str.startsWith(SLASH_SLASH)) { + prepend = true; + } + while (str.match(DOUBLE_SLASH_RE)) { + str = str.replace(DOUBLE_SLASH_RE, SLASH); + } + if (prepend) { + str = SLASH + str; + } + return str; +}; + +// Our version of upath.normalize +// TODO: this is not equal to path-normalize module - investigate why +const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path))); + +const normalizeIgnored = (cwd = EMPTY_STR) => (path) => { + if (typeof path !== STRING_TYPE) return path; + return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path)); +}; + +const getAbsolutePath = (path, cwd) => { + if (sysPath.isAbsolute(path)) { + return path; + } + if (path.startsWith(BANG)) { + return BANG + sysPath.join(cwd, path.slice(1)); + } + return sysPath.join(cwd, path); +}; + +const undef = (opts, key) => opts[key] === undefined; + +/** + * Directory entry. + * @property {Path} path + * @property {Set} items + */ +class DirEntry { + /** + * @param {Path} dir + * @param {Function} removeWatcher + */ + constructor(dir, removeWatcher) { + this.path = dir; + this._removeWatcher = removeWatcher; + /** @type {Set} */ + this.items = new Set(); + } + + add(item) { + const {items} = this; + if (!items) return; + if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); + } + + async remove(item) { + const {items} = this; + if (!items) return; + items.delete(item); + if (items.size > 0) return; + + const dir = this.path; + try { + await readdir(dir); + } catch (err) { + if (this._removeWatcher) { + this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir)); + } + } + } + + has(item) { + const {items} = this; + if (!items) return; + return items.has(item); + } + + /** + * @returns {Array} + */ + getChildren() { + const {items} = this; + if (!items) return; + return [...items.values()]; + } + + dispose() { + this.items.clear(); + delete this.path; + delete this._removeWatcher; + delete this.items; + Object.freeze(this); + } +} + +const STAT_METHOD_F = 'stat'; +const STAT_METHOD_L = 'lstat'; +class WatchHelper { + constructor(path, watchPath, follow, fsw) { + this.fsw = fsw; + this.path = path = path.replace(REPLACER_RE, EMPTY_STR); + this.watchPath = watchPath; + this.fullWatchPath = sysPath.resolve(watchPath); + this.hasGlob = watchPath !== path; + /** @type {object|boolean} */ + if (path === EMPTY_STR) this.hasGlob = false; + this.globSymlink = this.hasGlob && follow ? undefined : false; + this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; + this.dirParts = this.getDirParts(path); + this.dirParts.forEach((parts) => { + if (parts.length > 1) parts.pop(); + }); + this.followSymlinks = follow; + this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; + } + + checkGlobSymlink(entry) { + // only need to resolve once + // first entry should always have entry.parentDir === EMPTY_STR + if (this.globSymlink === undefined) { + this.globSymlink = entry.fullParentDir === this.fullWatchPath ? + false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; + } + + if (this.globSymlink) { + return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); + } + + return entry.fullPath; + } + + entryPath(entry) { + return sysPath.join(this.watchPath, + sysPath.relative(this.watchPath, this.checkGlobSymlink(entry)) + ); + } + + filterPath(entry) { + const {stats} = entry; + if (stats && stats.isSymbolicLink()) return this.filterDir(entry); + const resolvedPath = this.entryPath(entry); + const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ? + this.globFilter(resolvedPath) : true; + return matchesGlob && + this.fsw._isntIgnored(resolvedPath, stats) && + this.fsw._hasReadPermissions(stats); + } + + getDirParts(path) { + if (!this.hasGlob) return []; + const parts = []; + const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path]; + expandedPath.forEach((path) => { + parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); + }); + return parts; + } + + filterDir(entry) { + if (this.hasGlob) { + const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); + let globstar = false; + this.unmatchedGlob = !this.dirParts.some((parts) => { + return parts.every((part, i) => { + if (part === GLOBSTAR) globstar = true; + return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); + }); + }); + } + return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); + } +} + +/** + * Watches files & directories for changes. Emitted events: + * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` + * + * new FSWatcher() + * .add(directories) + * .on('add', path => log('File', path, 'was added')) + */ +class FSWatcher extends EventEmitter { +// Not indenting methods for history sake; for now. +constructor(_opts) { + super(); + + const opts = {}; + if (_opts) Object.assign(opts, _opts); // for frozen objects + + /** @type {Map} */ + this._watched = new Map(); + /** @type {Map} */ + this._closers = new Map(); + /** @type {Set} */ + this._ignoredPaths = new Set(); + + /** @type {Map} */ + this._throttled = new Map(); + + /** @type {Map} */ + this._symlinkPaths = new Map(); + + this._streams = new Set(); + this.closed = false; + + // Set up default options. + if (undef(opts, 'persistent')) opts.persistent = true; + if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; + if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; + if (undef(opts, 'interval')) opts.interval = 100; + if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; + if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; + opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; + + // Enable fsevents on OS X when polling isn't explicitly enabled. + if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; + + // If we can't use fsevents, ensure the options reflect it's disabled. + const canUseFsEvents = FsEventsHandler.canUse(); + if (!canUseFsEvents) opts.useFsEvents = false; + + // Use polling on Mac if not using fsevents. + // Other platforms use non-polling fs_watch. + if (undef(opts, 'usePolling') && !opts.useFsEvents) { + opts.usePolling = isMacos; + } + + // Always default to polling on IBM i because fs.watch() is not available on IBM i. + if(isIBMi) { + opts.usePolling = true; + } + + // Global override (useful for end-developers that need to force polling for all + // instances of chokidar, regardless of usage/dependency depth) + const envPoll = process.env.CHOKIDAR_USEPOLLING; + if (envPoll !== undefined) { + const envLower = envPoll.toLowerCase(); + + if (envLower === 'false' || envLower === '0') { + opts.usePolling = false; + } else if (envLower === 'true' || envLower === '1') { + opts.usePolling = true; + } else { + opts.usePolling = !!envLower; + } + } + const envInterval = process.env.CHOKIDAR_INTERVAL; + if (envInterval) { + opts.interval = Number.parseInt(envInterval, 10); + } + + // Editor atomic write normalization enabled by default with fs.watch + if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; + if (opts.atomic) this._pendingUnlinks = new Map(); + + if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; + + if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; + if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; + const awf = opts.awaitWriteFinish; + if (awf) { + if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; + if (!awf.pollInterval) awf.pollInterval = 100; + this._pendingWrites = new Map(); + } + if (opts.ignored) opts.ignored = arrify(opts.ignored); + + let readyCalls = 0; + this._emitReady = () => { + readyCalls++; + if (readyCalls >= this._readyCount) { + this._emitReady = EMPTY_FN; + this._readyEmitted = true; + // use process.nextTick to allow time for listener to be bound + process.nextTick(() => this.emit(EV_READY)); + } + }; + this._emitRaw = (...args) => this.emit(EV_RAW, ...args); + this._readyEmitted = false; + this.options = opts; + + // Initialize with proper watcher. + if (opts.useFsEvents) { + this._fsEventsHandler = new FsEventsHandler(this); + } else { + this._nodeFsHandler = new NodeFsHandler(this); + } + + // You’re frozen when your heart’s not open. + Object.freeze(opts); +} + +// Public methods + +/** + * Adds paths to be watched on an existing FSWatcher instance + * @param {Path|Array} paths_ + * @param {String=} _origAdd private; for handling non-existent paths to be watched + * @param {Boolean=} _internal private; indicates a non-user add + * @returns {FSWatcher} for chaining + */ +add(paths_, _origAdd, _internal) { + const {cwd, disableGlobbing} = this.options; + this.closed = false; + let paths = unifyPaths(paths_); + if (cwd) { + paths = paths.map((path) => { + const absPath = getAbsolutePath(path, cwd); + + // Check `path` instead of `absPath` because the cwd portion can't be a glob + if (disableGlobbing || !isGlob(path)) { + return absPath; + } + return normalizePath(absPath); + }); + } + + // set aside negated glob strings + paths = paths.filter((path) => { + if (path.startsWith(BANG)) { + this._ignoredPaths.add(path.slice(1)); + return false; + } + + // if a path is being added that was previously ignored, stop ignoring it + this._ignoredPaths.delete(path); + this._ignoredPaths.delete(path + SLASH_GLOBSTAR); + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + + return true; + }); + + if (this.options.useFsEvents && this._fsEventsHandler) { + if (!this._readyCount) this._readyCount = paths.length; + if (this.options.persistent) this._readyCount *= 2; + paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); + } else { + if (!this._readyCount) this._readyCount = 0; + this._readyCount += paths.length; + Promise.all( + paths.map(async path => { + const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); + if (res) this._emitReady(); + return res; + }) + ).then(results => { + if (this.closed) return; + results.filter(item => item).forEach(item => { + this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item)); + }); + }); + } + + return this; +} + +/** + * Close watchers or start ignoring events from specified paths. + * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs + * @returns {FSWatcher} for chaining +*/ +unwatch(paths_) { + if (this.closed) return this; + const paths = unifyPaths(paths_); + const {cwd} = this.options; + + paths.forEach((path) => { + // convert to absolute path unless relative path already matches + if (!sysPath.isAbsolute(path) && !this._closers.has(path)) { + if (cwd) path = sysPath.join(cwd, path); + path = sysPath.resolve(path); + } + + this._closePath(path); + + this._ignoredPaths.add(path); + if (this._watched.has(path)) { + this._ignoredPaths.add(path + SLASH_GLOBSTAR); + } + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + }); + + return this; +} + +/** + * Close watchers and remove all listeners from watched paths. + * @returns {Promise}. +*/ +close() { + if (this.closed) return this._closePromise; + this.closed = true; + + // Memory management. + this.removeAllListeners(); + const closers = []; + this._closers.forEach(closerList => closerList.forEach(closer => { + const promise = closer(); + if (promise instanceof Promise) closers.push(promise); + })); + this._streams.forEach(stream => stream.destroy()); + this._userIgnored = undefined; + this._readyCount = 0; + this._readyEmitted = false; + this._watched.forEach(dirent => dirent.dispose()); + ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { + this[`_${key}`].clear(); + }); + + this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); + return this._closePromise; +} + +/** + * Expose list of watched paths + * @returns {Object} for chaining +*/ +getWatched() { + const watchList = {}; + this._watched.forEach((entry, dir) => { + const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir; + watchList[key || ONE_DOT] = entry.getChildren().sort(); + }); + return watchList; +} + +emitWithAll(event, args) { + this.emit(...args); + if (event !== EV_ERROR) this.emit(EV_ALL, ...args); +} + +// Common helpers +// -------------- + +/** + * Normalize and emit events. + * Calling _emit DOES NOT MEAN emit() would be called! + * @param {EventName} event Type of event + * @param {Path} path File or directory path + * @param {*=} val1 arguments to be passed with event + * @param {*=} val2 + * @param {*=} val3 + * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +async _emit(event, path, val1, val2, val3) { + if (this.closed) return; + + const opts = this.options; + if (isWindows) path = sysPath.normalize(path); + if (opts.cwd) path = sysPath.relative(opts.cwd, path); + /** @type Array */ + const args = [event, path]; + if (val3 !== undefined) args.push(val1, val2, val3); + else if (val2 !== undefined) args.push(val1, val2); + else if (val1 !== undefined) args.push(val1); + + const awf = opts.awaitWriteFinish; + let pw; + if (awf && (pw = this._pendingWrites.get(path))) { + pw.lastChange = new Date(); + return this; + } + + if (opts.atomic) { + if (event === EV_UNLINK) { + this._pendingUnlinks.set(path, args); + setTimeout(() => { + this._pendingUnlinks.forEach((entry, path) => { + this.emit(...entry); + this.emit(EV_ALL, ...entry); + this._pendingUnlinks.delete(path); + }); + }, typeof opts.atomic === 'number' ? opts.atomic : 100); + return this; + } + if (event === EV_ADD && this._pendingUnlinks.has(path)) { + event = args[0] = EV_CHANGE; + this._pendingUnlinks.delete(path); + } + } + + if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) { + const awfEmit = (err, stats) => { + if (err) { + event = args[0] = EV_ERROR; + args[1] = err; + this.emitWithAll(event, args); + } else if (stats) { + // if stats doesn't exist the file must have been deleted + if (args.length > 2) { + args[2] = stats; + } else { + args.push(stats); + } + this.emitWithAll(event, args); + } + }; + + this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); + return this; + } + + if (event === EV_CHANGE) { + const isThrottled = !this._throttle(EV_CHANGE, path, 50); + if (isThrottled) return this; + } + + if (opts.alwaysStat && val1 === undefined && + (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE) + ) { + const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path; + let stats; + try { + stats = await stat(fullPath); + } catch (err) {} + // Suppress event when fs_stat fails, to avoid sending undefined 'stat' + if (!stats || this.closed) return; + args.push(stats); + } + this.emitWithAll(event, args); + + return this; +} + +/** + * Common handler for errors + * @param {Error} error + * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +_handleError(error) { + const code = error && error.code; + if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && + (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) + ) { + this.emit(EV_ERROR, error); + } + return error || this.closed; +} + +/** + * Helper utility for throttling + * @param {ThrottleType} actionType type being throttled + * @param {Path} path being acted upon + * @param {Number} timeout duration of time to suppress duplicate actions + * @returns {Object|false} tracking object or false if action should be suppressed + */ +_throttle(actionType, path, timeout) { + if (!this._throttled.has(actionType)) { + this._throttled.set(actionType, new Map()); + } + + /** @type {Map} */ + const action = this._throttled.get(actionType); + /** @type {Object} */ + const actionPath = action.get(path); + + if (actionPath) { + actionPath.count++; + return false; + } + + let timeoutObject; + const clear = () => { + const item = action.get(path); + const count = item ? item.count : 0; + action.delete(path); + clearTimeout(timeoutObject); + if (item) clearTimeout(item.timeoutObject); + return count; + }; + timeoutObject = setTimeout(clear, timeout); + const thr = {timeoutObject, clear, count: 0}; + action.set(path, thr); + return thr; +} + +_incrReadyCount() { + return this._readyCount++; +} + +/** + * Awaits write operation to finish. + * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. + * @param {Path} path being acted upon + * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished + * @param {EventName} event + * @param {Function} awfEmit Callback to be called when ready for event to be emitted. + */ +_awaitWriteFinish(path, threshold, event, awfEmit) { + let timeoutHandler; + + let fullPath = path; + if (this.options.cwd && !sysPath.isAbsolute(path)) { + fullPath = sysPath.join(this.options.cwd, path); + } + + const now = new Date(); + + const awaitWriteFinish = (prevStat) => { + fs.stat(fullPath, (err, curStat) => { + if (err || !this._pendingWrites.has(path)) { + if (err && err.code !== 'ENOENT') awfEmit(err); + return; + } + + const now = Number(new Date()); + + if (prevStat && curStat.size !== prevStat.size) { + this._pendingWrites.get(path).lastChange = now; + } + const pw = this._pendingWrites.get(path); + const df = now - pw.lastChange; + + if (df >= threshold) { + this._pendingWrites.delete(path); + awfEmit(undefined, curStat); + } else { + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval, + curStat + ); + } + }); + }; + + if (!this._pendingWrites.has(path)) { + this._pendingWrites.set(path, { + lastChange: now, + cancelWait: () => { + this._pendingWrites.delete(path); + clearTimeout(timeoutHandler); + return event; + } + }); + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval + ); + } +} + +_getGlobIgnored() { + return [...this._ignoredPaths.values()]; +} + +/** + * Determines whether user has asked to ignore this path. + * @param {Path} path filepath or dir + * @param {fs.Stats=} stats result of fs.stat + * @returns {Boolean} + */ +_isIgnored(path, stats) { + if (this.options.atomic && DOT_RE.test(path)) return true; + if (!this._userIgnored) { + const {cwd} = this.options; + const ign = this.options.ignored; + + const ignored = ign && ign.map(normalizeIgnored(cwd)); + const paths = arrify(ignored) + .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) + .map((path) => path + SLASH_GLOBSTAR); + const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); + this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); + } + + return this._userIgnored([path, stats]); +} + +_isntIgnored(path, stat) { + return !this._isIgnored(path, stat); +} + +/** + * Provides a set of common helpers and properties relating to symlink and glob handling. + * @param {Path} path file, directory, or glob pattern being watched + * @param {Number=} depth at any depth > 0, this isn't a glob + * @returns {WatchHelper} object containing helpers for this path + */ +_getWatchHelpers(path, depth) { + const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); + const follow = this.options.followSymlinks; + + return new WatchHelper(path, watchPath, follow, this); +} + +// Directory helpers +// ----------------- + +/** + * Provides directory tracking objects + * @param {String} directory path of the directory + * @returns {DirEntry} the directory's tracking object + */ +_getWatchedDir(directory) { + if (!this._boundRemove) this._boundRemove = this._remove.bind(this); + const dir = sysPath.resolve(directory); + if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); + return this._watched.get(dir); +} + +// File helpers +// ------------ + +/** + * Check for read permissions. + * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 + * @param {fs.Stats} stats - object, result of fs_stat + * @returns {Boolean} indicates whether the file can be read +*/ +_hasReadPermissions(stats) { + if (this.options.ignorePermissionErrors) return true; + + // stats.mode may be bigint + const md = stats && Number.parseInt(stats.mode, 10); + const st = md & 0o777; + const it = Number.parseInt(st.toString(8)[0], 10); + return Boolean(4 & it); +} + +/** + * Handles emitting unlink events for + * files and directories, and via recursion, for + * files and directories within directories that are unlinked + * @param {String} directory within which the following item is located + * @param {String} item base path of item/directory + * @returns {void} +*/ +_remove(directory, item, isDirectory) { + // if what is being deleted is a directory, get that directory's paths + // for recursive deleting and cleaning of watched object + // if it is not a directory, nestedDirectoryChildren will be empty array + const path = sysPath.join(directory, item); + const fullPath = sysPath.resolve(path); + isDirectory = isDirectory != null + ? isDirectory + : this._watched.has(path) || this._watched.has(fullPath); + + // prevent duplicate handling in case of arriving here nearly simultaneously + // via multiple paths (such as _handleFile and _handleDir) + if (!this._throttle('remove', path, 100)) return; + + // if the only watched file is removed, watch for its return + if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { + this.add(directory, item, true); + } + + // This will create a new entry in the watched object in either case + // so we got to do the directory check beforehand + const wp = this._getWatchedDir(path); + const nestedDirectoryChildren = wp.getChildren(); + + // Recursively remove children directories / files. + nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); + + // Check if item was on the watched list and remove it + const parent = this._getWatchedDir(directory); + const wasTracked = parent.has(item); + parent.remove(item); + + // Fixes issue #1042 -> Relative paths were detected and added as symlinks + // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), + // but never removed from the map in case the path was deleted. + // This leads to an incorrect state if the path was recreated: + // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 + if (this._symlinkPaths.has(fullPath)) { + this._symlinkPaths.delete(fullPath); + } + + // If we wait for this file to be fully written, cancel the wait. + let relPath = path; + if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path); + if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { + const event = this._pendingWrites.get(relPath).cancelWait(); + if (event === EV_ADD) return; + } + + // The Entry will either be a directory that just got removed + // or a bogus entry to a file, in either case we have to remove it + this._watched.delete(path); + this._watched.delete(fullPath); + const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK; + if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); + + // Avoid conflicts if we later create another file with the same name + if (!this.options.useFsEvents) { + this._closePath(path); + } +} + +/** + * Closes all watchers for a path + * @param {Path} path + */ +_closePath(path) { + this._closeFile(path) + const dir = sysPath.dirname(path); + this._getWatchedDir(dir).remove(sysPath.basename(path)); +} + +/** + * Closes only file-specific watchers + * @param {Path} path + */ +_closeFile(path) { + const closers = this._closers.get(path); + if (!closers) return; + closers.forEach(closer => closer()); + this._closers.delete(path); +} + +/** + * + * @param {Path} path + * @param {Function} closer + */ +_addPathCloser(path, closer) { + if (!closer) return; + let list = this._closers.get(path); + if (!list) { + list = []; + this._closers.set(path, list); + } + list.push(closer); +} + +_readdirp(root, opts) { + if (this.closed) return; + const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; + let stream = readdirp(root, options); + this._streams.add(stream); + stream.once(STR_CLOSE, () => { + stream = undefined; + }); + stream.once(STR_END, () => { + if (stream) { + this._streams.delete(stream); + stream = undefined; + } + }); + return stream; +} + +} + +// Export FSWatcher class +exports.FSWatcher = FSWatcher; + +/** + * Instantiates watcher with paths to be tracked. + * @param {String|Array} paths file/directory paths and/or globs + * @param {Object=} options chokidar opts + * @returns an instance of FSWatcher for chaining. + */ +const watch = (paths, options) => { + const watcher = new FSWatcher(options); + watcher.add(paths); + return watcher; +}; + +exports.watch = watch; diff --git a/node_modules/chokidar/lib/constants.js b/node_modules/chokidar/lib/constants.js new file mode 100644 index 0000000..1454f85 --- /dev/null +++ b/node_modules/chokidar/lib/constants.js @@ -0,0 +1,65 @@ +'use strict'; + +const {sep} = require('path'); +const {platform} = process; +const os = require('os'); + +exports.EV_ALL = 'all'; +exports.EV_READY = 'ready'; +exports.EV_ADD = 'add'; +exports.EV_CHANGE = 'change'; +exports.EV_ADD_DIR = 'addDir'; +exports.EV_UNLINK = 'unlink'; +exports.EV_UNLINK_DIR = 'unlinkDir'; +exports.EV_RAW = 'raw'; +exports.EV_ERROR = 'error'; + +exports.STR_DATA = 'data'; +exports.STR_END = 'end'; +exports.STR_CLOSE = 'close'; + +exports.FSEVENT_CREATED = 'created'; +exports.FSEVENT_MODIFIED = 'modified'; +exports.FSEVENT_DELETED = 'deleted'; +exports.FSEVENT_MOVED = 'moved'; +exports.FSEVENT_CLONED = 'cloned'; +exports.FSEVENT_UNKNOWN = 'unknown'; +exports.FSEVENT_TYPE_FILE = 'file'; +exports.FSEVENT_TYPE_DIRECTORY = 'directory'; +exports.FSEVENT_TYPE_SYMLINK = 'symlink'; + +exports.KEY_LISTENERS = 'listeners'; +exports.KEY_ERR = 'errHandlers'; +exports.KEY_RAW = 'rawEmitters'; +exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; + +exports.DOT_SLASH = `.${sep}`; + +exports.BACK_SLASH_RE = /\\/g; +exports.DOUBLE_SLASH_RE = /\/\//; +exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; +exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; +exports.REPLACER_RE = /^\.[/\\]/; + +exports.SLASH = '/'; +exports.SLASH_SLASH = '//'; +exports.BRACE_START = '{'; +exports.BANG = '!'; +exports.ONE_DOT = '.'; +exports.TWO_DOTS = '..'; +exports.STAR = '*'; +exports.GLOBSTAR = '**'; +exports.ROOT_GLOBSTAR = '/**/*'; +exports.SLASH_GLOBSTAR = '/**'; +exports.DIR_SUFFIX = 'Dir'; +exports.ANYMATCH_OPTS = {dot: true}; +exports.STRING_TYPE = 'string'; +exports.FUNCTION_TYPE = 'function'; +exports.EMPTY_STR = ''; +exports.EMPTY_FN = () => {}; +exports.IDENTITY_FN = val => val; + +exports.isWindows = platform === 'win32'; +exports.isMacos = platform === 'darwin'; +exports.isLinux = platform === 'linux'; +exports.isIBMi = os.type() === 'OS400'; diff --git a/node_modules/chokidar/lib/fsevents-handler.js b/node_modules/chokidar/lib/fsevents-handler.js new file mode 100644 index 0000000..0f7f2cb --- /dev/null +++ b/node_modules/chokidar/lib/fsevents-handler.js @@ -0,0 +1,524 @@ +'use strict'; + +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); + +let fsevents; +try { + fsevents = require('fsevents'); +} catch (error) { + if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); +} + +if (fsevents) { + // TODO: real check + const mtch = process.version.match(/v(\d+)\.(\d+)/); + if (mtch && mtch[1] && mtch[2]) { + const maj = Number.parseInt(mtch[1], 10); + const min = Number.parseInt(mtch[2], 10); + if (maj === 8 && min < 16) { + fsevents = undefined; + } + } +} + +const { + EV_ADD, + EV_CHANGE, + EV_ADD_DIR, + EV_UNLINK, + EV_ERROR, + STR_DATA, + STR_END, + FSEVENT_CREATED, + FSEVENT_MODIFIED, + FSEVENT_DELETED, + FSEVENT_MOVED, + // FSEVENT_CLONED, + FSEVENT_UNKNOWN, + FSEVENT_TYPE_FILE, + FSEVENT_TYPE_DIRECTORY, + FSEVENT_TYPE_SYMLINK, + + ROOT_GLOBSTAR, + DIR_SUFFIX, + DOT_SLASH, + FUNCTION_TYPE, + EMPTY_FN, + IDENTITY_FN +} = require('./constants'); + +const Depth = (value) => isNaN(value) ? {} : {depth: value}; + +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +const statMethods = { stat, lstat }; + +/** + * @typedef {String} Path + */ + +/** + * @typedef {Object} FsEventsWatchContainer + * @property {Set} listeners + * @property {Function} rawEmitter + * @property {{stop: Function}} watcher + */ + +// fsevents instance helper functions +/** + * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) + * @type {Map} + */ +const FSEventsWatchers = new Map(); + +// Threshold of duplicate path prefixes at which to start +// consolidating going forward +const consolidateThreshhold = 10; + +const wrongEventFlags = new Set([ + 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 +]); + +/** + * Instantiates the fsevents interface + * @param {Path} path path to be watched + * @param {Function} callback called when fsevents is bound and ready + * @returns {{stop: Function}} new fsevents instance + */ +const createFSEventsInstance = (path, callback) => { + const stop = fsevents.watch(path, callback); + return {stop}; +}; + +/** + * Instantiates the fsevents interface or binds listeners to an existing one covering + * the same file tree. + * @param {Path} path - to be watched + * @param {Path} realPath - real path for symlinks + * @param {Function} listener - called when fsevents emits events + * @param {Function} rawEmitter - passes data to listeners of the 'raw' event + * @returns {Function} closer + */ +function setFSEventsListener(path, realPath, listener, rawEmitter) { + let watchPath = sysPath.extname(realPath) ? sysPath.dirname(realPath) : realPath; + + const parentPath = sysPath.dirname(watchPath); + let cont = FSEventsWatchers.get(watchPath); + + // If we've accumulated a substantial number of paths that + // could have been consolidated by watching one directory + // above the current one, create a watcher on the parent + // path instead, so that we do consolidate going forward. + if (couldConsolidate(parentPath)) { + watchPath = parentPath; + } + + const resolvedPath = sysPath.resolve(path); + const hasSymlink = resolvedPath !== realPath; + + const filteredListener = (fullPath, flags, info) => { + if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); + if ( + fullPath === resolvedPath || + !fullPath.indexOf(resolvedPath + sysPath.sep) + ) listener(fullPath, flags, info); + }; + + // check if there is already a watcher on a parent path + // modifies `watchPath` to the parent path when it finds a match + let watchedParent = false; + for (const watchedPath of FSEventsWatchers.keys()) { + if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) { + watchPath = watchedPath; + cont = FSEventsWatchers.get(watchPath); + watchedParent = true; + break; + } + } + + if (cont || watchedParent) { + cont.listeners.add(filteredListener); + } else { + cont = { + listeners: new Set([filteredListener]), + rawEmitter, + watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { + if (!cont.listeners.size) return; + const info = fsevents.getInfo(fullPath, flags); + cont.listeners.forEach(list => { + list(fullPath, flags, info); + }); + + cont.rawEmitter(info.event, fullPath, info); + }) + }; + FSEventsWatchers.set(watchPath, cont); + } + + // removes this instance's listeners and closes the underlying fsevents + // instance if there are no more listeners left + return () => { + const lst = cont.listeners; + + lst.delete(filteredListener); + if (!lst.size) { + FSEventsWatchers.delete(watchPath); + if (cont.watcher) return cont.watcher.stop().then(() => { + cont.rawEmitter = cont.watcher = undefined; + Object.freeze(cont); + }); + } + }; +} + +// Decide whether or not we should start a new higher-level +// parent watcher +const couldConsolidate = (path) => { + let count = 0; + for (const watchPath of FSEventsWatchers.keys()) { + if (watchPath.indexOf(path) === 0) { + count++; + if (count >= consolidateThreshhold) { + return true; + } + } + } + + return false; +}; + +// returns boolean indicating whether fsevents can be used +const canUse = () => fsevents && FSEventsWatchers.size < 128; + +// determines subdirectory traversal levels from root to path +const calcDepth = (path, root) => { + let i = 0; + while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++; + return i; +}; + +// returns boolean indicating whether the fsevents' event info has the same type +// as the one returned by fs.stat +const sameTypes = (info, stats) => ( + info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || + info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || + info.type === FSEVENT_TYPE_FILE && stats.isFile() +) + +/** + * @mixin + */ +class FsEventsHandler { + +/** + * @param {import('../index').FSWatcher} fsw + */ +constructor(fsw) { + this.fsw = fsw; +} +checkIgnored(path, stats) { + const ipaths = this.fsw._ignoredPaths; + if (this.fsw._isIgnored(path, stats)) { + ipaths.add(path); + if (stats && stats.isDirectory()) { + ipaths.add(path + ROOT_GLOBSTAR); + } + return true; + } + + ipaths.delete(path); + ipaths.delete(path + ROOT_GLOBSTAR); +} + +addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + const event = watchedDir.has(item) ? EV_CHANGE : EV_ADD; + this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); +} + +async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + try { + const stats = await stat(path) + if (this.fsw.closed) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } catch (error) { + if (error.code === 'EACCES') { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } +} + +handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { + if (this.fsw.closed || this.checkIgnored(path)) return; + + if (event === EV_UNLINK) { + const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY + // suppress unlink events on never before seen files + if (isDirectory || watchedDir.has(item)) { + this.fsw._remove(parent, item, isDirectory); + } + } else { + if (event === EV_ADD) { + // track new directories + if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); + + if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { + // push symlinks back to the top of the stack to get handled + const curDepth = opts.depth === undefined ? + undefined : calcDepth(fullPath, realPath) + 1; + return this._addToFsEvents(path, false, true, curDepth); + } + + // track new paths + // (other than symlinks being followed, which will be tracked soon) + this.fsw._getWatchedDir(parent).add(item); + } + /** + * @type {'add'|'addDir'|'unlink'|'unlinkDir'} + */ + const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; + this.fsw._emit(eventName, path); + if (eventName === EV_ADD_DIR) this._addToFsEvents(path, false, true); + } +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} watchPath - file/dir path to be watched with fsevents + * @param {String} realPath - real path (in case of symlinks) + * @param {Function} transform - path transformer + * @param {Function} globFilter - path filter in case a glob pattern was provided + * @returns {Function} closer for the watcher instance +*/ +_watchWithFsEvents(watchPath, realPath, transform, globFilter) { + if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; + const opts = this.fsw.options; + const watchCallback = async (fullPath, flags, info) => { + if (this.fsw.closed) return; + if ( + opts.depth !== undefined && + calcDepth(fullPath, realPath) > opts.depth + ) return; + const path = transform(sysPath.join( + watchPath, sysPath.relative(watchPath, fullPath) + )); + if (globFilter && !globFilter(path)) return; + // ensure directories are tracked + const parent = sysPath.dirname(path); + const item = sysPath.basename(path); + const watchedDir = this.fsw._getWatchedDir( + info.type === FSEVENT_TYPE_DIRECTORY ? path : parent + ); + + // correct for wrong events emitted + if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { + if (typeof opts.ignored === FUNCTION_TYPE) { + let stats; + try { + stats = await stat(path); + } catch (error) {} + if (this.fsw.closed) return; + if (this.checkIgnored(path, stats)) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + switch (info.event) { + case FSEVENT_CREATED: + case FSEVENT_MODIFIED: + return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + case FSEVENT_DELETED: + case FSEVENT_MOVED: + return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } + }; + + const closer = setFSEventsListener( + watchPath, + realPath, + watchCallback, + this.fsw._emitRaw + ); + + this.fsw._emitReady(); + return closer; +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} linkPath path to symlink + * @param {String} fullPath absolute path to the symlink + * @param {Function} transform pre-existing path transformer + * @param {Number} curDepth level of subdirectories traversed to where symlink is + * @returns {Promise} + */ +async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { + // don't follow the same symlink more than once + if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; + + this.fsw._symlinkPaths.set(fullPath, true); + this.fsw._incrReadyCount(); + + try { + const linkTarget = await realpath(linkPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(linkTarget)) { + return this.fsw._emitReady(); + } + + this.fsw._incrReadyCount(); + + // add the linkTarget for watching with a wrapper for transform + // that causes emitted paths to incorporate the link's path + this._addToFsEvents(linkTarget || linkPath, (path) => { + let aliasedPath = linkPath; + if (linkTarget && linkTarget !== DOT_SLASH) { + aliasedPath = path.replace(linkTarget, linkPath); + } else if (path !== DOT_SLASH) { + aliasedPath = sysPath.join(linkPath, path); + } + return transform(aliasedPath); + }, false, curDepth); + } catch(error) { + if (this.fsw._handleError(error)) { + return this.fsw._emitReady(); + } + } +} + +/** + * + * @param {Path} newPath + * @param {fs.Stats} stats + */ +emitAdd(newPath, stats, processPath, opts, forceAdd) { + const pp = processPath(newPath); + const isDir = stats.isDirectory(); + const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp)); + const base = sysPath.basename(pp); + + // ensure empty dirs get tracked + if (isDir) this.fsw._getWatchedDir(pp); + if (dirObj.has(base)) return; + dirObj.add(base); + + if (!opts.ignoreInitial || forceAdd === true) { + this.fsw._emit(isDir ? EV_ADD_DIR : EV_ADD, pp, stats); + } +} + +initWatch(realPath, path, wh, processPath) { + if (this.fsw.closed) return; + const closer = this._watchWithFsEvents( + wh.watchPath, + sysPath.resolve(realPath || wh.watchPath), + processPath, + wh.globFilter + ); + this.fsw._addPathCloser(path, closer); +} + +/** + * Handle added path with fsevents + * @param {String} path file/dir path or glob pattern + * @param {Function|Boolean=} transform converts working path to what the user expects + * @param {Boolean=} forceAdd ensure add is emitted + * @param {Number=} priorDepth Level of subdirectories already traversed. + * @returns {Promise} + */ +async _addToFsEvents(path, transform, forceAdd, priorDepth) { + if (this.fsw.closed) { + return; + } + const opts = this.fsw.options; + const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; + + const wh = this.fsw._getWatchHelpers(path); + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + throw null; + } + if (stats.isDirectory()) { + // emit addDir unless this is a glob parent + if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); + + // don't recurse further if it would exceed depth setting + if (priorDepth && priorDepth > opts.depth) return; + + // scan the contents of the dir + this.fsw._readdirp(wh.watchPath, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + ...Depth(opts.depth - (priorDepth || 0)) + }).on(STR_DATA, (entry) => { + // need to check filterPath on dirs b/c filterDir is less restrictive + if (this.fsw.closed) { + return; + } + if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; + + const joinedPath = sysPath.join(wh.watchPath, entry.path); + const {fullPath} = entry; + + if (wh.followSymlinks && entry.stats.isSymbolicLink()) { + // preserve the current depth here since it can't be derived from + // real paths past the symlink + const curDepth = opts.depth === undefined ? + undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1; + + this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); + } else { + this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); + } + }).on(EV_ERROR, EMPTY_FN).on(STR_END, () => { + this.fsw._emitReady(); + }); + } else { + this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); + this.fsw._emitReady(); + } + } catch (error) { + if (!error || this.fsw._handleError(error)) { + // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- + this.fsw._emitReady(); + this.fsw._emitReady(); + } + } + + if (opts.persistent && forceAdd !== true) { + if (typeof transform === FUNCTION_TYPE) { + // realpath has already been resolved + this.initWatch(undefined, path, wh, processPath); + } else { + let realPath; + try { + realPath = await realpath(wh.watchPath); + } catch (e) {} + this.initWatch(realPath, path, wh, processPath); + } + } +} + +} + +module.exports = FsEventsHandler; +module.exports.canUse = canUse; diff --git a/node_modules/chokidar/lib/nodefs-handler.js b/node_modules/chokidar/lib/nodefs-handler.js new file mode 100644 index 0000000..199cfe9 --- /dev/null +++ b/node_modules/chokidar/lib/nodefs-handler.js @@ -0,0 +1,654 @@ +'use strict'; + +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); +const isBinaryPath = require('is-binary-path'); +const { + isWindows, + isLinux, + EMPTY_FN, + EMPTY_STR, + KEY_LISTENERS, + KEY_ERR, + KEY_RAW, + HANDLER_KEYS, + EV_CHANGE, + EV_ADD, + EV_ADD_DIR, + EV_ERROR, + STR_DATA, + STR_END, + BRACE_START, + STAR +} = require('./constants'); + +const THROTTLE_MODE_WATCH = 'watch'; + +const open = promisify(fs.open); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const close = promisify(fs.close); +const fsrealpath = promisify(fs.realpath); + +const statMethods = { lstat, stat }; + +// TODO: emit errors properly. Example: EMFILE on Macos. +const foreach = (val, fn) => { + if (val instanceof Set) { + val.forEach(fn); + } else { + fn(val); + } +}; + +const addAndConvert = (main, prop, item) => { + let container = main[prop]; + if (!(container instanceof Set)) { + main[prop] = container = new Set([container]); + } + container.add(item); +}; + +const clearItem = cont => key => { + const set = cont[key]; + if (set instanceof Set) { + set.clear(); + } else { + delete cont[key]; + } +}; + +const delFromSet = (main, prop, item) => { + const container = main[prop]; + if (container instanceof Set) { + container.delete(item); + } else if (container === item) { + delete main[prop]; + } +}; + +const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; + +/** + * @typedef {String} Path + */ + +// fs_watch helpers + +// object to hold per-process fs_watch instances +// (may be shared across chokidar FSWatcher instances) + +/** + * @typedef {Object} FsWatchContainer + * @property {Set} listeners + * @property {Set} errHandlers + * @property {Set} rawEmitters + * @property {fs.FSWatcher=} watcher + * @property {Boolean=} watcherUnusable + */ + +/** + * @type {Map} + */ +const FsWatchInstances = new Map(); + +/** + * Instantiates the fs_watch interface + * @param {String} path to be watched + * @param {Object} options to be passed to fs_watch + * @param {Function} listener main event handler + * @param {Function} errHandler emits info about errors + * @param {Function} emitRaw emits raw event data + * @returns {fs.FSWatcher} new fsevents instance + */ +function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { + const handleEvent = (rawEvent, evPath) => { + listener(path); + emitRaw(rawEvent, evPath, {watchedPath: path}); + + // emit based on events occurring for files from a directory's watcher in + // case the file's watcher misses it (and rely on throttling to de-dupe) + if (evPath && path !== evPath) { + fsWatchBroadcast( + sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath) + ); + } + }; + try { + return fs.watch(path, options, handleEvent); + } catch (error) { + errHandler(error); + } +} + +/** + * Helper for passing fs_watch event data to a collection of listeners + * @param {Path} fullPath absolute path bound to fs_watch instance + * @param {String} type listener type + * @param {*=} val1 arguments to be passed to listeners + * @param {*=} val2 + * @param {*=} val3 + */ +const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { + const cont = FsWatchInstances.get(fullPath); + if (!cont) return; + foreach(cont[type], (listener) => { + listener(val1, val2, val3); + }); +}; + +/** + * Instantiates the fs_watch interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path + * @param {String} fullPath absolute path + * @param {Object} options to be passed to fs_watch + * @param {Object} handlers container for event listener functions + */ +const setFsWatchListener = (path, fullPath, options, handlers) => { + const {listener, errHandler, rawEmitter} = handlers; + let cont = FsWatchInstances.get(fullPath); + + /** @type {fs.FSWatcher=} */ + let watcher; + if (!options.persistent) { + watcher = createFsWatchInstance( + path, options, listener, errHandler, rawEmitter + ); + return watcher.close.bind(watcher); + } + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_ERR, errHandler); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + watcher = createFsWatchInstance( + path, + options, + fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), + errHandler, // no need to use broadcast here + fsWatchBroadcast.bind(null, fullPath, KEY_RAW) + ); + if (!watcher) return; + watcher.on(EV_ERROR, async (error) => { + const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); + cont.watcherUnusable = true; // documented since Node 10.4.1 + // Workaround for https://github.com/joyent/node/issues/4337 + if (isWindows && error.code === 'EPERM') { + try { + const fd = await open(path, 'r'); + await close(fd); + broadcastErr(error); + } catch (err) {} + } else { + broadcastErr(error); + } + }); + cont = { + listeners: listener, + errHandlers: errHandler, + rawEmitters: rawEmitter, + watcher + }; + FsWatchInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // removes this instance's listeners and closes the underlying fs_watch + // instance if there are no more listeners left + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_ERR, errHandler); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + // Check to protect against issue gh-730. + // if (cont.watcherUnusable) { + cont.watcher.close(); + // } + FsWatchInstances.delete(fullPath); + HANDLER_KEYS.forEach(clearItem(cont)); + cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +// fs_watchFile helpers + +// object to hold per-process fs_watchFile instances +// (may be shared across chokidar FSWatcher instances) +const FsWatchFileInstances = new Map(); + +/** + * Instantiates the fs_watchFile interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path to be watched + * @param {String} fullPath absolute path + * @param {Object} options options to be passed to fs_watchFile + * @param {Object} handlers container for event listener functions + * @returns {Function} closer + */ +const setFsWatchFileListener = (path, fullPath, options, handlers) => { + const {listener, rawEmitter} = handlers; + let cont = FsWatchFileInstances.get(fullPath); + + /* eslint-disable no-unused-vars, prefer-destructuring */ + let listeners = new Set(); + let rawEmitters = new Set(); + + const copts = cont && cont.options; + if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { + // "Upgrade" the watcher to persistence or a quicker interval. + // This creates some unlikely edge case issues if the user mixes + // settings in a very weird way, but solving for those cases + // doesn't seem worthwhile for the added complexity. + listeners = cont.listeners; + rawEmitters = cont.rawEmitters; + fs.unwatchFile(fullPath); + cont = undefined; + } + + /* eslint-enable no-unused-vars, prefer-destructuring */ + + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + // TODO + // listeners.add(listener); + // rawEmitters.add(rawEmitter); + cont = { + listeners: listener, + rawEmitters: rawEmitter, + options, + watcher: fs.watchFile(fullPath, options, (curr, prev) => { + foreach(cont.rawEmitters, (rawEmitter) => { + rawEmitter(EV_CHANGE, fullPath, {curr, prev}); + }); + const currmtime = curr.mtimeMs; + if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { + foreach(cont.listeners, (listener) => listener(path, curr)); + } + }) + }; + FsWatchFileInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // Removes this instance's listeners and closes the underlying fs_watchFile + // instance if there are no more listeners left. + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + FsWatchFileInstances.delete(fullPath); + fs.unwatchFile(fullPath); + cont.options = cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +/** + * @mixin + */ +class NodeFsHandler { + +/** + * @param {import("../index").FSWatcher} fsW + */ +constructor(fsW) { + this.fsw = fsW; + this._boundHandleError = (error) => fsW._handleError(error); +} + +/** + * Watch file for changes with fs_watchFile or fs_watch. + * @param {String} path to file or dir + * @param {Function} listener on fs change + * @returns {Function} closer for the watcher instance + */ +_watchWithNodeFs(path, listener) { + const opts = this.fsw.options; + const directory = sysPath.dirname(path); + const basename = sysPath.basename(path); + const parent = this.fsw._getWatchedDir(directory); + parent.add(basename); + const absolutePath = sysPath.resolve(path); + const options = {persistent: opts.persistent}; + if (!listener) listener = EMPTY_FN; + + let closer; + if (opts.usePolling) { + options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? + opts.binaryInterval : opts.interval; + closer = setFsWatchFileListener(path, absolutePath, options, { + listener, + rawEmitter: this.fsw._emitRaw + }); + } else { + closer = setFsWatchListener(path, absolutePath, options, { + listener, + errHandler: this._boundHandleError, + rawEmitter: this.fsw._emitRaw + }); + } + return closer; +} + +/** + * Watch a file and emit add event if warranted. + * @param {Path} file Path + * @param {fs.Stats} stats result of fs_stat + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @returns {Function} closer for the watcher instance + */ +_handleFile(file, stats, initialAdd) { + if (this.fsw.closed) { + return; + } + const dirname = sysPath.dirname(file); + const basename = sysPath.basename(file); + const parent = this.fsw._getWatchedDir(dirname); + // stats is always present + let prevStats = stats; + + // if the file is already being watched, do nothing + if (parent.has(basename)) return; + + const listener = async (path, newStats) => { + if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; + if (!newStats || newStats.mtimeMs === 0) { + try { + const newStats = await stat(file); + if (this.fsw.closed) return; + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + if (isLinux && prevStats.ino !== newStats.ino) { + this.fsw._closeFile(path) + prevStats = newStats; + this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); + } else { + prevStats = newStats; + } + } catch (error) { + // Fix issues where mtime is null but file is still present + this.fsw._remove(dirname, basename); + } + // add is about to be emitted if file not already tracked in parent + } else if (parent.has(basename)) { + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + prevStats = newStats; + } + } + // kick off the watcher + const closer = this._watchWithNodeFs(file, listener); + + // emit an add event if we're supposed to + if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { + if (!this.fsw._throttle(EV_ADD, file, 0)) return; + this.fsw._emit(EV_ADD, file, stats); + } + + return closer; +} + +/** + * Handle symlinks encountered while reading a dir. + * @param {Object} entry returned by readdirp + * @param {String} directory path of dir being read + * @param {String} path of this item + * @param {String} item basename of this item + * @returns {Promise} true if no more processing is needed for this entry. + */ +async _handleSymlink(entry, directory, path, item) { + if (this.fsw.closed) { + return; + } + const full = entry.fullPath; + const dir = this.fsw._getWatchedDir(directory); + + if (!this.fsw.options.followSymlinks) { + // watch symlink directly (don't follow) and detect changes + this.fsw._incrReadyCount(); + + let linkPath; + try { + linkPath = await fsrealpath(path); + } catch (e) { + this.fsw._emitReady(); + return true; + } + + if (this.fsw.closed) return; + if (dir.has(item)) { + if (this.fsw._symlinkPaths.get(full) !== linkPath) { + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_CHANGE, path, entry.stats); + } + } else { + dir.add(item); + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_ADD, path, entry.stats); + } + this.fsw._emitReady(); + return true; + } + + // don't follow the same symlink more than once + if (this.fsw._symlinkPaths.has(full)) { + return true; + } + + this.fsw._symlinkPaths.set(full, true); +} + +_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { + // Normalize the directory name on Windows + directory = sysPath.join(directory, EMPTY_STR); + + if (!wh.hasGlob) { + throttler = this.fsw._throttle('readdir', directory, 1000); + if (!throttler) return; + } + + const previous = this.fsw._getWatchedDir(wh.path); + const current = new Set(); + + let stream = this.fsw._readdirp(directory, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + depth: 0 + }).on(STR_DATA, async (entry) => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const item = entry.path; + let path = sysPath.join(directory, item); + current.add(item); + + if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { + return; + } + + if (this.fsw.closed) { + stream = undefined; + return; + } + // Files that present in current directory snapshot + // but absent in previous are added to watch list and + // emit `add` event. + if (item === target || !target && !previous.has(item)) { + this.fsw._incrReadyCount(); + + // ensure relativeness of path is preserved in case of watcher reuse + path = sysPath.join(dir, sysPath.relative(dir, path)); + + this._addToNodeFs(path, initialAdd, wh, depth + 1); + } + }).on(EV_ERROR, this._boundHandleError); + + return new Promise(resolve => + stream.once(STR_END, () => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const wasThrottled = throttler ? throttler.clear() : false; + + resolve(); + + // Files that absent in current directory snapshot + // but present in previous emit `remove` event + // and are removed from @watched[directory]. + previous.getChildren().filter((item) => { + return item !== directory && + !current.has(item) && + // in case of intersecting globs; + // a path may have been filtered out of this readdir, but + // shouldn't be removed because it matches a different glob + (!wh.hasGlob || wh.filterPath({ + fullPath: sysPath.resolve(directory, item) + })); + }).forEach((item) => { + this.fsw._remove(directory, item); + }); + + stream = undefined; + + // one more time for any missed in case changes came in extremely quickly + if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); + }) + ); +} + +/** + * Read directory to add / remove files from `@watched` list and re-read it on change. + * @param {String} dir fs path + * @param {fs.Stats} stats + * @param {Boolean} initialAdd + * @param {Number} depth relative to user-supplied path + * @param {String} target child path targeted for watch + * @param {Object} wh Common watch helpers for this path + * @param {String} realpath + * @returns {Promise} closer for the watcher instance. + */ +async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { + const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir)); + const tracked = parentDir.has(sysPath.basename(dir)); + if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { + if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); + } + + // ensure dir is tracked (harmless if redundant) + parentDir.add(sysPath.basename(dir)); + this.fsw._getWatchedDir(dir); + let throttler; + let closer; + + const oDepth = this.fsw.options.depth; + if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { + if (!target) { + await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); + if (this.fsw.closed) return; + } + + closer = this._watchWithNodeFs(dir, (dirPath, stats) => { + // if current directory is removed, do nothing + if (stats && stats.mtimeMs === 0) return; + + this._handleRead(dirPath, false, wh, target, dir, depth, throttler); + }); + } + return closer; +} + +/** + * Handle added file, directory, or glob pattern. + * Delegates call to _handleFile / _handleDir after checks. + * @param {String} path to file or ir + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @param {Object} priorWh depth relative to user-supplied path + * @param {Number} depth Child path actually targeted for watch + * @param {String=} target Child path actually targeted for watch + * @returns {Promise} + */ +async _addToNodeFs(path, initialAdd, priorWh, depth, target) { + const ready = this.fsw._emitReady; + if (this.fsw._isIgnored(path) || this.fsw.closed) { + ready(); + return false; + } + + const wh = this.fsw._getWatchHelpers(path, depth); + if (!wh.hasGlob && priorWh) { + wh.hasGlob = priorWh.hasGlob; + wh.globFilter = priorWh.globFilter; + wh.filterPath = entry => priorWh.filterPath(entry); + wh.filterDir = entry => priorWh.filterDir(entry); + } + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + ready(); + return false; + } + + const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START); + let closer; + if (stats.isDirectory()) { + const absPath = sysPath.resolve(path); + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); + if (this.fsw.closed) return; + // preserve this symlink's target path + if (absPath !== targetPath && targetPath !== undefined) { + this.fsw._symlinkPaths.set(absPath, targetPath); + } + } else if (stats.isSymbolicLink()) { + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + const parent = sysPath.dirname(wh.watchPath); + this.fsw._getWatchedDir(parent).add(wh.watchPath); + this.fsw._emit(EV_ADD, wh.watchPath, stats); + closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); + if (this.fsw.closed) return; + + // preserve this symlink's target path + if (targetPath !== undefined) { + this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath); + } + } else { + closer = this._handleFile(wh.watchPath, stats, initialAdd); + } + ready(); + + this.fsw._addPathCloser(path, closer); + return false; + + } catch (error) { + if (this.fsw._handleError(error)) { + ready(); + return path; + } + } +} + +} + +module.exports = NodeFsHandler; diff --git a/node_modules/chokidar/package.json b/node_modules/chokidar/package.json new file mode 100644 index 0000000..6c3cd27 --- /dev/null +++ b/node_modules/chokidar/package.json @@ -0,0 +1,85 @@ +{ + "name": "chokidar", + "description": "Minimal and efficient cross-platform file watching library", + "version": "3.5.3", + "homepage": "https://github.com/paulmillr/chokidar", + "author": "Paul Miller (https://paulmillr.com)", + "contributors": [ + "Paul Miller (https://paulmillr.com)", + "Elan Shanker" + ], + "engines": { + "node": ">= 8.10.0" + }, + "main": "index.js", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "devDependencies": { + "@types/node": "^14", + "chai": "^4.3", + "dtslint": "^3.3.0", + "eslint": "^7.0.0", + "mocha": "^7.0.0", + "nyc": "^15.0.0", + "rimraf": "^3.0.0", + "sinon": "^9.0.1", + "sinon-chai": "^3.3.0", + "typescript": "~4.4.3", + "upath": "^1.2.0" + }, + "files": [ + "index.js", + "lib/*.js", + "types/index.d.ts" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/paulmillr/chokidar.git" + }, + "bugs": { + "url": "https://github.com/paulmillr/chokidar/issues" + }, + "license": "MIT", + "scripts": { + "dtslint": "dtslint types", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --exit --timeout 90000", + "test": "npm run lint && npm run mocha" + }, + "keywords": [ + "fs", + "watch", + "watchFile", + "watcher", + "watching", + "file", + "fsevents" + ], + "types": "./types/index.d.ts", + "nyc": { + "include": [ + "index.js", + "lib/*.js" + ], + "reporter": [ + "html", + "text" + ] + }, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] +} diff --git a/node_modules/chokidar/types/index.d.ts b/node_modules/chokidar/types/index.d.ts new file mode 100644 index 0000000..aab8e33 --- /dev/null +++ b/node_modules/chokidar/types/index.d.ts @@ -0,0 +1,188 @@ +// TypeScript Version: 3.0 + +/// + +import * as fs from "fs"; +import { EventEmitter } from "events"; +import { Matcher } from 'anymatch'; + +export class FSWatcher extends EventEmitter implements fs.FSWatcher { + options: WatchOptions; + + /** + * Constructs a new FSWatcher instance with optional WatchOptions parameter. + */ + constructor(options?: WatchOptions); + + /** + * Add files, directories, or glob patterns for tracking. Takes an array of strings or just one + * string. + */ + add(paths: string | ReadonlyArray): this; + + /** + * Stop watching files, directories, or glob patterns. Takes an array of strings or just one + * string. + */ + unwatch(paths: string | ReadonlyArray): this; + + /** + * Returns an object representing all the paths on the file system being watched by this + * `FSWatcher` instance. The object's keys are all the directories (using absolute paths unless + * the `cwd` option was used), and the values are arrays of the names of the items contained in + * each directory. + */ + getWatched(): { + [directory: string]: string[]; + }; + + /** + * Removes all listeners from watched files. + */ + close(): Promise; + + on(event: 'add'|'addDir'|'change', listener: (path: string, stats?: fs.Stats) => void): this; + + on(event: 'all', listener: (eventName: 'add'|'addDir'|'change'|'unlink'|'unlinkDir', path: string, stats?: fs.Stats) => void): this; + + /** + * Error occurred + */ + on(event: 'error', listener: (error: Error) => void): this; + + /** + * Exposes the native Node `fs.FSWatcher events` + */ + on(event: 'raw', listener: (eventName: string, path: string, details: any) => void): this; + + /** + * Fires when the initial scan is complete + */ + on(event: 'ready', listener: () => void): this; + + on(event: 'unlink'|'unlinkDir', listener: (path: string) => void): this; + + on(event: string, listener: (...args: any[]) => void): this; +} + +export interface WatchOptions { + /** + * Indicates whether the process should continue to run as long as files are being watched. If + * set to `false` when using `fsevents` to watch, no more events will be emitted after `ready`, + * even if the process continues to run. + */ + persistent?: boolean; + + /** + * ([anymatch](https://github.com/micromatch/anymatch)-compatible definition) Defines files/paths to + * be ignored. The whole relative or absolute path is tested, not just filename. If a function + * with two arguments is provided, it gets called twice per path - once with a single argument + * (the path), second time with two arguments (the path and the + * [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object of that path). + */ + ignored?: Matcher; + + /** + * If set to `false` then `add`/`addDir` events are also emitted for matching paths while + * instantiating the watching as chokidar discovers these file paths (before the `ready` event). + */ + ignoreInitial?: boolean; + + /** + * When `false`, only the symlinks themselves will be watched for changes instead of following + * the link references and bubbling events through the link's path. + */ + followSymlinks?: boolean; + + /** + * The base directory from which watch `paths` are to be derived. Paths emitted with events will + * be relative to this. + */ + cwd?: string; + + /** + * If set to true then the strings passed to .watch() and .add() are treated as literal path + * names, even if they look like globs. Default: false. + */ + disableGlobbing?: boolean; + + /** + * Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU + * utilization, consider setting this to `false`. It is typically necessary to **set this to + * `true` to successfully watch files over a network**, and it may be necessary to successfully + * watch files in other non-standard situations. Setting to `true` explicitly on OS X overrides + * the `useFsEvents` default. + */ + usePolling?: boolean; + + /** + * Whether to use the `fsevents` watching interface if available. When set to `true` explicitly + * and `fsevents` is available this supercedes the `usePolling` setting. When set to `false` on + * OS X, `usePolling: true` becomes the default. + */ + useFsEvents?: boolean; + + /** + * If relying upon the [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object that + * may get passed with `add`, `addDir`, and `change` events, set this to `true` to ensure it is + * provided even in cases where it wasn't already available from the underlying watch events. + */ + alwaysStat?: boolean; + + /** + * If set, limits how many levels of subdirectories will be traversed. + */ + depth?: number; + + /** + * Interval of file system polling. + */ + interval?: number; + + /** + * Interval of file system polling for binary files. ([see list of binary extensions](https://gi + * thub.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) + */ + binaryInterval?: number; + + /** + * Indicates whether to watch files that don't have read permissions if possible. If watching + * fails due to `EPERM` or `EACCES` with this set to `true`, the errors will be suppressed + * silently. + */ + ignorePermissionErrors?: boolean; + + /** + * `true` if `useFsEvents` and `usePolling` are `false`). Automatically filters out artifacts + * that occur when using editors that use "atomic writes" instead of writing directly to the + * source file. If a file is re-added within 100 ms of being deleted, Chokidar emits a `change` + * event rather than `unlink` then `add`. If the default of 100 ms does not work well for you, + * you can override it by setting `atomic` to a custom value, in milliseconds. + */ + atomic?: boolean | number; + + /** + * can be set to an object in order to adjust timing params: + */ + awaitWriteFinish?: AwaitWriteFinishOptions | boolean; +} + +export interface AwaitWriteFinishOptions { + /** + * Amount of time in milliseconds for a file size to remain constant before emitting its event. + */ + stabilityThreshold?: number; + + /** + * File size polling interval. + */ + pollInterval?: number; +} + +/** + * produces an instance of `FSWatcher`. + */ +export function watch( + paths: string | ReadonlyArray, + options?: WatchOptions +): FSWatcher; diff --git a/node_modules/cliui/CHANGELOG.md b/node_modules/cliui/CHANGELOG.md new file mode 100644 index 0000000..61f06c3 --- /dev/null +++ b/node_modules/cliui/CHANGELOG.md @@ -0,0 +1,139 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [8.0.1](https://github.com/yargs/cliui/compare/v8.0.0...v8.0.1) (2022-10-01) + + +### Bug Fixes + +* **deps:** move rollup-plugin-ts to dev deps ([#124](https://github.com/yargs/cliui/issues/124)) ([7c8bd6b](https://github.com/yargs/cliui/commit/7c8bd6ba024d61e4eeae310c7959ab8ab6829081)) + +## [8.0.0](https://github.com/yargs/cliui/compare/v7.0.4...v8.0.0) (2022-09-30) + + +### ⚠ BREAKING CHANGES + +* **deps:** drop Node 10 to release CVE-2021-3807 patch (#122) + +### Bug Fixes + +* **deps:** drop Node 10 to release CVE-2021-3807 patch ([#122](https://github.com/yargs/cliui/issues/122)) ([f156571](https://github.com/yargs/cliui/commit/f156571ce4f2ebf313335e3a53ad905589da5a30)) + +### [7.0.4](https://www.github.com/yargs/cliui/compare/v7.0.3...v7.0.4) (2020-11-08) + + +### Bug Fixes + +* **deno:** import UIOptions from definitions ([#97](https://www.github.com/yargs/cliui/issues/97)) ([f04f343](https://www.github.com/yargs/cliui/commit/f04f3439bc78114c7e90f82ff56f5acf16268ea8)) + +### [7.0.3](https://www.github.com/yargs/cliui/compare/v7.0.2...v7.0.3) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#93](https://www.github.com/yargs/cliui/issues/93)) ([eca16fc](https://www.github.com/yargs/cliui/commit/eca16fc05d26255df3280906c36d7f0e5b05c6e9)) + +### [7.0.2](https://www.github.com/yargs/cliui/compare/v7.0.1...v7.0.2) (2020-10-14) + + +### Bug Fixes + +* **exports:** node 13.0-13.6 require a string fallback ([#91](https://www.github.com/yargs/cliui/issues/91)) ([b529d7e](https://www.github.com/yargs/cliui/commit/b529d7e432901af1af7848b23ed6cf634497d961)) + +### [7.0.1](https://www.github.com/yargs/cliui/compare/v7.0.0...v7.0.1) (2020-08-16) + + +### Bug Fixes + +* **build:** main should be build/index.cjs ([dc29a3c](https://www.github.com/yargs/cliui/commit/dc29a3cc617a410aa850e06337b5954b04f2cb4d)) + +## [7.0.0](https://www.github.com/yargs/cliui/compare/v6.0.0...v7.0.0) (2020-08-16) + + +### ⚠ BREAKING CHANGES + +* tsc/ESM/Deno support (#82) +* modernize deps and build (#80) + +### Build System + +* modernize deps and build ([#80](https://www.github.com/yargs/cliui/issues/80)) ([339d08d](https://www.github.com/yargs/cliui/commit/339d08dc71b15a3928aeab09042af94db2f43743)) + + +### Code Refactoring + +* tsc/ESM/Deno support ([#82](https://www.github.com/yargs/cliui/issues/82)) ([4b777a5](https://www.github.com/yargs/cliui/commit/4b777a5fe01c5d8958c6708695d6aab7dbe5706c)) + +## [6.0.0](https://www.github.com/yargs/cliui/compare/v5.0.0...v6.0.0) (2019-11-10) + + +### ⚠ BREAKING CHANGES + +* update deps, drop Node 6 + +### Code Refactoring + +* update deps, drop Node 6 ([62056df](https://www.github.com/yargs/cliui/commit/62056df)) + +## [5.0.0](https://github.com/yargs/cliui/compare/v4.1.0...v5.0.0) (2019-04-10) + + +### Bug Fixes + +* Update wrap-ansi to fix compatibility with latest versions of chalk. ([#60](https://github.com/yargs/cliui/issues/60)) ([7bf79ae](https://github.com/yargs/cliui/commit/7bf79ae)) + + +### BREAKING CHANGES + +* Drop support for node < 6. + + + + +## [4.1.0](https://github.com/yargs/cliui/compare/v4.0.0...v4.1.0) (2018-04-23) + + +### Features + +* add resetOutput method ([#57](https://github.com/yargs/cliui/issues/57)) ([7246902](https://github.com/yargs/cliui/commit/7246902)) + + + + +## [4.0.0](https://github.com/yargs/cliui/compare/v3.2.0...v4.0.0) (2017-12-18) + + +### Bug Fixes + +* downgrades strip-ansi to version 3.0.1 ([#54](https://github.com/yargs/cliui/issues/54)) ([5764c46](https://github.com/yargs/cliui/commit/5764c46)) +* set env variable FORCE_COLOR. ([#56](https://github.com/yargs/cliui/issues/56)) ([7350e36](https://github.com/yargs/cliui/commit/7350e36)) + + +### Chores + +* drop support for node < 4 ([#53](https://github.com/yargs/cliui/issues/53)) ([b105376](https://github.com/yargs/cliui/commit/b105376)) + + +### Features + +* add fallback for window width ([#45](https://github.com/yargs/cliui/issues/45)) ([d064922](https://github.com/yargs/cliui/commit/d064922)) + + +### BREAKING CHANGES + +* officially drop support for Node < 4 + + + + +## [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11) + + +### Bug Fixes + +* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33)) + +### Features + +* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32)) diff --git a/node_modules/cliui/LICENSE.txt b/node_modules/cliui/LICENSE.txt new file mode 100644 index 0000000..c7e2747 --- /dev/null +++ b/node_modules/cliui/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/cliui/README.md b/node_modules/cliui/README.md new file mode 100644 index 0000000..65b5672 --- /dev/null +++ b/node_modules/cliui/README.md @@ -0,0 +1,141 @@ +# cliui + +![ci](https://github.com/yargs/cliui/workflows/ci/badge.svg) +[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui) +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) +![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/cliui) + +easily create complex multi-column command-line-interfaces. + +## Example + +```js +const ui = require('cliui')() + +ui.div('Usage: $0 [command] [options]') + +ui.div({ + text: 'Options:', + padding: [2, 0, 1, 0] +}) + +ui.div( + { + text: "-f, --file", + width: 20, + padding: [0, 4, 0, 4] + }, + { + text: "the file to load." + + chalk.green("(if this description is long it wraps).") + , + width: 20 + }, + { + text: chalk.red("[required]"), + align: 'right' + } +) + +console.log(ui.toString()) +``` + +## Deno/ESM Support + +As of `v7` `cliui` supports [Deno](https://github.com/denoland/deno) and +[ESM](https://nodejs.org/api/esm.html#esm_ecmascript_modules): + +```typescript +import cliui from "https://deno.land/x/cliui/deno.ts"; + +const ui = cliui({}) + +ui.div('Usage: $0 [command] [options]') + +ui.div({ + text: 'Options:', + padding: [2, 0, 1, 0] +}) + +ui.div({ + text: "-f, --file", + width: 20, + padding: [0, 4, 0, 4] +}) + +console.log(ui.toString()) +``` + + + +## Layout DSL + +cliui exposes a simple layout DSL: + +If you create a single `ui.div`, passing a string rather than an +object: + +* `\n`: characters will be interpreted as new rows. +* `\t`: characters will be interpreted as new columns. +* `\s`: characters will be interpreted as padding. + +**as an example...** + +```js +var ui = require('./')({ + width: 60 +}) + +ui.div( + 'Usage: node ./bin/foo.js\n' + + ' \t provide a regex\n' + + ' \t provide a glob\t [required]' +) + +console.log(ui.toString()) +``` + +**will output:** + +```shell +Usage: node ./bin/foo.js + provide a regex + provide a glob [required] +``` + +## Methods + +```js +cliui = require('cliui') +``` + +### cliui({width: integer}) + +Specify the maximum width of the UI being generated. +If no width is provided, cliui will try to get the current window's width and use it, and if that doesn't work, width will be set to `80`. + +### cliui({wrap: boolean}) + +Enable or disable the wrapping of text in a column. + +### cliui.div(column, column, column) + +Create a row with any number of columns, a column +can either be a string, or an object with the following +options: + +* **text:** some text to place in the column. +* **width:** the width of a column. +* **align:** alignment, `right` or `center`. +* **padding:** `[top, right, bottom, left]`. +* **border:** should a border be placed around the div? + +### cliui.span(column, column, column) + +Similar to `div`, except the next row will be appended without +a new line being created. + +### cliui.resetOutput() + +Resets the UI elements of the current cliui instance, maintaining the values +set for `width` and `wrap`. diff --git a/node_modules/cliui/build/index.cjs b/node_modules/cliui/build/index.cjs new file mode 100644 index 0000000..82126b6 --- /dev/null +++ b/node_modules/cliui/build/index.cjs @@ -0,0 +1,302 @@ +'use strict'; + +const align = { + right: alignRight, + center: alignCenter +}; +const top = 0; +const right = 1; +const bottom = 2; +const left = 3; +class UI { + constructor(opts) { + var _a; + this.width = opts.width; + this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true; + this.rows = []; + } + span(...args) { + const cols = this.div(...args); + cols.span = true; + } + resetOutput() { + this.rows = []; + } + div(...args) { + if (args.length === 0) { + this.div(''); + } + if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') { + return this.applyLayoutDSL(args[0]); + } + const cols = args.map(arg => { + if (typeof arg === 'string') { + return this.colFromString(arg); + } + return arg; + }); + this.rows.push(cols); + return cols; + } + shouldApplyLayoutDSL(...args) { + return args.length === 1 && typeof args[0] === 'string' && + /[\t\n]/.test(args[0]); + } + applyLayoutDSL(str) { + const rows = str.split('\n').map(row => row.split('\t')); + let leftColumnWidth = 0; + // simple heuristic for layout, make sure the + // second column lines up along the left-hand. + // don't allow the first column to take up more + // than 50% of the screen. + rows.forEach(columns => { + if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) { + leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0])); + } + }); + // generate a table: + // replacing ' ' with padding calculations. + // using the algorithmically generated width. + rows.forEach(columns => { + this.div(...columns.map((r, i) => { + return { + text: r.trim(), + padding: this.measurePadding(r), + width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined + }; + })); + }); + return this.rows[this.rows.length - 1]; + } + colFromString(text) { + return { + text, + padding: this.measurePadding(text) + }; + } + measurePadding(str) { + // measure padding without ansi escape codes + const noAnsi = mixin.stripAnsi(str); + return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; + } + toString() { + const lines = []; + this.rows.forEach(row => { + this.rowToString(row, lines); + }); + // don't display any lines with the + // hidden flag set. + return lines + .filter(line => !line.hidden) + .map(line => line.text) + .join('\n'); + } + rowToString(row, lines) { + this.rasterize(row).forEach((rrow, r) => { + let str = ''; + rrow.forEach((col, c) => { + const { width } = row[c]; // the width with padding. + const wrapWidth = this.negatePadding(row[c]); // the width without padding. + let ts = col; // temporary string used during alignment/padding. + if (wrapWidth > mixin.stringWidth(col)) { + ts += ' '.repeat(wrapWidth - mixin.stringWidth(col)); + } + // align the string within its column. + if (row[c].align && row[c].align !== 'left' && this.wrap) { + const fn = align[row[c].align]; + ts = fn(ts, wrapWidth); + if (mixin.stringWidth(ts) < wrapWidth) { + ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1); + } + } + // apply border and padding to string. + const padding = row[c].padding || [0, 0, 0, 0]; + if (padding[left]) { + str += ' '.repeat(padding[left]); + } + str += addBorder(row[c], ts, '| '); + str += ts; + str += addBorder(row[c], ts, ' |'); + if (padding[right]) { + str += ' '.repeat(padding[right]); + } + // if prior row is span, try to render the + // current row on the prior line. + if (r === 0 && lines.length > 0) { + str = this.renderInline(str, lines[lines.length - 1]); + } + }); + // remove trailing whitespace. + lines.push({ + text: str.replace(/ +$/, ''), + span: row.span + }); + }); + return lines; + } + // if the full 'source' can render in + // the target line, do so. + renderInline(source, previousLine) { + const match = source.match(/^ */); + const leadingWhitespace = match ? match[0].length : 0; + const target = previousLine.text; + const targetTextWidth = mixin.stringWidth(target.trimRight()); + if (!previousLine.span) { + return source; + } + // if we're not applying wrapping logic, + // just always append to the span. + if (!this.wrap) { + previousLine.hidden = true; + return target + source; + } + if (leadingWhitespace < targetTextWidth) { + return source; + } + previousLine.hidden = true; + return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); + } + rasterize(row) { + const rrows = []; + const widths = this.columnWidths(row); + let wrapped; + // word wrap all columns, and create + // a data-structure that is easy to rasterize. + row.forEach((col, c) => { + // leave room for left and right padding. + col.width = widths[c]; + if (this.wrap) { + wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n'); + } + else { + wrapped = col.text.split('\n'); + } + if (col.border) { + wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.'); + wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'"); + } + // add top and bottom padding. + if (col.padding) { + wrapped.unshift(...new Array(col.padding[top] || 0).fill('')); + wrapped.push(...new Array(col.padding[bottom] || 0).fill('')); + } + wrapped.forEach((str, r) => { + if (!rrows[r]) { + rrows.push([]); + } + const rrow = rrows[r]; + for (let i = 0; i < c; i++) { + if (rrow[i] === undefined) { + rrow.push(''); + } + } + rrow.push(str); + }); + }); + return rrows; + } + negatePadding(col) { + let wrapWidth = col.width || 0; + if (col.padding) { + wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); + } + if (col.border) { + wrapWidth -= 4; + } + return wrapWidth; + } + columnWidths(row) { + if (!this.wrap) { + return row.map(col => { + return col.width || mixin.stringWidth(col.text); + }); + } + let unset = row.length; + let remainingWidth = this.width; + // column widths can be set in config. + const widths = row.map(col => { + if (col.width) { + unset--; + remainingWidth -= col.width; + return col.width; + } + return undefined; + }); + // any unset widths should be calculated. + const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; + return widths.map((w, i) => { + if (w === undefined) { + return Math.max(unsetWidth, _minWidth(row[i])); + } + return w; + }); + } +} +function addBorder(col, ts, style) { + if (col.border) { + if (/[.']-+[.']/.test(ts)) { + return ''; + } + if (ts.trim().length !== 0) { + return style; + } + return ' '; + } + return ''; +} +// calculates the minimum width of +// a column, based on padding preferences. +function _minWidth(col) { + const padding = col.padding || []; + const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); + if (col.border) { + return minWidth + 4; + } + return minWidth; +} +function getWindowWidth() { + /* istanbul ignore next: depends on terminal */ + if (typeof process === 'object' && process.stdout && process.stdout.columns) { + return process.stdout.columns; + } + return 80; +} +function alignRight(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + if (strWidth < width) { + return ' '.repeat(width - strWidth) + str; + } + return str; +} +function alignCenter(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + /* istanbul ignore next */ + if (strWidth >= width) { + return str; + } + return ' '.repeat((width - strWidth) >> 1) + str; +} +let mixin; +function cliui(opts, _mixin) { + mixin = _mixin; + return new UI({ + width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), + wrap: opts === null || opts === void 0 ? void 0 : opts.wrap + }); +} + +// Bootstrap cliui with CommonJS dependencies: +const stringWidth = require('string-width'); +const stripAnsi = require('strip-ansi'); +const wrap = require('wrap-ansi'); +function ui(opts) { + return cliui(opts, { + stringWidth, + stripAnsi, + wrap + }); +} + +module.exports = ui; diff --git a/node_modules/cliui/build/index.d.cts b/node_modules/cliui/build/index.d.cts new file mode 100644 index 0000000..4567f94 --- /dev/null +++ b/node_modules/cliui/build/index.d.cts @@ -0,0 +1,43 @@ +interface UIOptions { + width: number; + wrap?: boolean; + rows?: string[]; +} +interface Column { + text: string; + width?: number; + align?: "right" | "left" | "center"; + padding: number[]; + border?: boolean; +} +interface ColumnArray extends Array { + span: boolean; +} +interface Line { + hidden?: boolean; + text: string; + span?: boolean; +} +declare class UI { + width: number; + wrap: boolean; + rows: ColumnArray[]; + constructor(opts: UIOptions); + span(...args: ColumnArray): void; + resetOutput(): void; + div(...args: (Column | string)[]): ColumnArray; + private shouldApplyLayoutDSL; + private applyLayoutDSL; + private colFromString; + private measurePadding; + toString(): string; + rowToString(row: ColumnArray, lines: Line[]): Line[]; + // if the full 'source' can render in + // the target line, do so. + private renderInline; + private rasterize; + private negatePadding; + private columnWidths; +} +declare function ui(opts: UIOptions): UI; +export { ui as default }; diff --git a/node_modules/cliui/build/lib/index.js b/node_modules/cliui/build/lib/index.js new file mode 100644 index 0000000..b6eb054 --- /dev/null +++ b/node_modules/cliui/build/lib/index.js @@ -0,0 +1,287 @@ +'use strict'; +const align = { + right: alignRight, + center: alignCenter +}; +const top = 0; +const right = 1; +const bottom = 2; +const left = 3; +export class UI { + constructor(opts) { + var _a; + this.width = opts.width; + this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true; + this.rows = []; + } + span(...args) { + const cols = this.div(...args); + cols.span = true; + } + resetOutput() { + this.rows = []; + } + div(...args) { + if (args.length === 0) { + this.div(''); + } + if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') { + return this.applyLayoutDSL(args[0]); + } + const cols = args.map(arg => { + if (typeof arg === 'string') { + return this.colFromString(arg); + } + return arg; + }); + this.rows.push(cols); + return cols; + } + shouldApplyLayoutDSL(...args) { + return args.length === 1 && typeof args[0] === 'string' && + /[\t\n]/.test(args[0]); + } + applyLayoutDSL(str) { + const rows = str.split('\n').map(row => row.split('\t')); + let leftColumnWidth = 0; + // simple heuristic for layout, make sure the + // second column lines up along the left-hand. + // don't allow the first column to take up more + // than 50% of the screen. + rows.forEach(columns => { + if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) { + leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0])); + } + }); + // generate a table: + // replacing ' ' with padding calculations. + // using the algorithmically generated width. + rows.forEach(columns => { + this.div(...columns.map((r, i) => { + return { + text: r.trim(), + padding: this.measurePadding(r), + width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined + }; + })); + }); + return this.rows[this.rows.length - 1]; + } + colFromString(text) { + return { + text, + padding: this.measurePadding(text) + }; + } + measurePadding(str) { + // measure padding without ansi escape codes + const noAnsi = mixin.stripAnsi(str); + return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; + } + toString() { + const lines = []; + this.rows.forEach(row => { + this.rowToString(row, lines); + }); + // don't display any lines with the + // hidden flag set. + return lines + .filter(line => !line.hidden) + .map(line => line.text) + .join('\n'); + } + rowToString(row, lines) { + this.rasterize(row).forEach((rrow, r) => { + let str = ''; + rrow.forEach((col, c) => { + const { width } = row[c]; // the width with padding. + const wrapWidth = this.negatePadding(row[c]); // the width without padding. + let ts = col; // temporary string used during alignment/padding. + if (wrapWidth > mixin.stringWidth(col)) { + ts += ' '.repeat(wrapWidth - mixin.stringWidth(col)); + } + // align the string within its column. + if (row[c].align && row[c].align !== 'left' && this.wrap) { + const fn = align[row[c].align]; + ts = fn(ts, wrapWidth); + if (mixin.stringWidth(ts) < wrapWidth) { + ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1); + } + } + // apply border and padding to string. + const padding = row[c].padding || [0, 0, 0, 0]; + if (padding[left]) { + str += ' '.repeat(padding[left]); + } + str += addBorder(row[c], ts, '| '); + str += ts; + str += addBorder(row[c], ts, ' |'); + if (padding[right]) { + str += ' '.repeat(padding[right]); + } + // if prior row is span, try to render the + // current row on the prior line. + if (r === 0 && lines.length > 0) { + str = this.renderInline(str, lines[lines.length - 1]); + } + }); + // remove trailing whitespace. + lines.push({ + text: str.replace(/ +$/, ''), + span: row.span + }); + }); + return lines; + } + // if the full 'source' can render in + // the target line, do so. + renderInline(source, previousLine) { + const match = source.match(/^ */); + const leadingWhitespace = match ? match[0].length : 0; + const target = previousLine.text; + const targetTextWidth = mixin.stringWidth(target.trimRight()); + if (!previousLine.span) { + return source; + } + // if we're not applying wrapping logic, + // just always append to the span. + if (!this.wrap) { + previousLine.hidden = true; + return target + source; + } + if (leadingWhitespace < targetTextWidth) { + return source; + } + previousLine.hidden = true; + return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); + } + rasterize(row) { + const rrows = []; + const widths = this.columnWidths(row); + let wrapped; + // word wrap all columns, and create + // a data-structure that is easy to rasterize. + row.forEach((col, c) => { + // leave room for left and right padding. + col.width = widths[c]; + if (this.wrap) { + wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n'); + } + else { + wrapped = col.text.split('\n'); + } + if (col.border) { + wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.'); + wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'"); + } + // add top and bottom padding. + if (col.padding) { + wrapped.unshift(...new Array(col.padding[top] || 0).fill('')); + wrapped.push(...new Array(col.padding[bottom] || 0).fill('')); + } + wrapped.forEach((str, r) => { + if (!rrows[r]) { + rrows.push([]); + } + const rrow = rrows[r]; + for (let i = 0; i < c; i++) { + if (rrow[i] === undefined) { + rrow.push(''); + } + } + rrow.push(str); + }); + }); + return rrows; + } + negatePadding(col) { + let wrapWidth = col.width || 0; + if (col.padding) { + wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); + } + if (col.border) { + wrapWidth -= 4; + } + return wrapWidth; + } + columnWidths(row) { + if (!this.wrap) { + return row.map(col => { + return col.width || mixin.stringWidth(col.text); + }); + } + let unset = row.length; + let remainingWidth = this.width; + // column widths can be set in config. + const widths = row.map(col => { + if (col.width) { + unset--; + remainingWidth -= col.width; + return col.width; + } + return undefined; + }); + // any unset widths should be calculated. + const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; + return widths.map((w, i) => { + if (w === undefined) { + return Math.max(unsetWidth, _minWidth(row[i])); + } + return w; + }); + } +} +function addBorder(col, ts, style) { + if (col.border) { + if (/[.']-+[.']/.test(ts)) { + return ''; + } + if (ts.trim().length !== 0) { + return style; + } + return ' '; + } + return ''; +} +// calculates the minimum width of +// a column, based on padding preferences. +function _minWidth(col) { + const padding = col.padding || []; + const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); + if (col.border) { + return minWidth + 4; + } + return minWidth; +} +function getWindowWidth() { + /* istanbul ignore next: depends on terminal */ + if (typeof process === 'object' && process.stdout && process.stdout.columns) { + return process.stdout.columns; + } + return 80; +} +function alignRight(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + if (strWidth < width) { + return ' '.repeat(width - strWidth) + str; + } + return str; +} +function alignCenter(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + /* istanbul ignore next */ + if (strWidth >= width) { + return str; + } + return ' '.repeat((width - strWidth) >> 1) + str; +} +let mixin; +export function cliui(opts, _mixin) { + mixin = _mixin; + return new UI({ + width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), + wrap: opts === null || opts === void 0 ? void 0 : opts.wrap + }); +} diff --git a/node_modules/cliui/build/lib/string-utils.js b/node_modules/cliui/build/lib/string-utils.js new file mode 100644 index 0000000..4b87453 --- /dev/null +++ b/node_modules/cliui/build/lib/string-utils.js @@ -0,0 +1,27 @@ +// Minimal replacement for ansi string helpers "wrap-ansi" and "strip-ansi". +// to facilitate ESM and Deno modules. +// TODO: look at porting https://www.npmjs.com/package/wrap-ansi to ESM. +// The npm application +// Copyright (c) npm, Inc. and Contributors +// Licensed on the terms of The Artistic License 2.0 +// See: https://github.com/npm/cli/blob/4c65cd952bc8627811735bea76b9b110cc4fc80e/lib/utils/ansi-trim.js +const ansi = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + + '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g'); +export function stripAnsi(str) { + return str.replace(ansi, ''); +} +export function wrap(str, width) { + const [start, end] = str.match(ansi) || ['', '']; + str = stripAnsi(str); + let wrapped = ''; + for (let i = 0; i < str.length; i++) { + if (i !== 0 && (i % width) === 0) { + wrapped += '\n'; + } + wrapped += str.charAt(i); + } + if (start && end) { + wrapped = `${start}${wrapped}${end}`; + } + return wrapped; +} diff --git a/node_modules/cliui/index.mjs b/node_modules/cliui/index.mjs new file mode 100644 index 0000000..bc7a022 --- /dev/null +++ b/node_modules/cliui/index.mjs @@ -0,0 +1,13 @@ +// Bootstrap cliui with CommonJS dependencies: +import { cliui } from './build/lib/index.js' +import { wrap, stripAnsi } from './build/lib/string-utils.js' + +export default function ui (opts) { + return cliui(opts, { + stringWidth: (str) => { + return [...str].length + }, + stripAnsi, + wrap + }) +} diff --git a/node_modules/cliui/package.json b/node_modules/cliui/package.json new file mode 100644 index 0000000..eab6bf4 --- /dev/null +++ b/node_modules/cliui/package.json @@ -0,0 +1,83 @@ +{ + "name": "cliui", + "version": "8.0.1", + "description": "easily create complex multi-column command-line-interfaces", + "main": "build/index.cjs", + "exports": { + ".": [ + { + "import": "./index.mjs", + "require": "./build/index.cjs" + }, + "./build/index.cjs" + ] + }, + "type": "module", + "module": "./index.mjs", + "scripts": { + "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", + "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", + "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "test": "c8 mocha ./test/*.cjs", + "test:esm": "c8 mocha ./test/esm/cliui-test.mjs", + "postest": "check", + "coverage": "c8 report --check-coverage", + "precompile": "rimraf build", + "compile": "tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c", + "prepare": "npm run compile" + }, + "repository": "yargs/cliui", + "standard": { + "ignore": [ + "**/example/**" + ], + "globals": [ + "it" + ] + }, + "keywords": [ + "cli", + "command-line", + "layout", + "design", + "console", + "wrap", + "table" + ], + "author": "Ben Coe ", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "devDependencies": { + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^4.0.0", + "@typescript-eslint/parser": "^4.0.0", + "c8": "^7.3.0", + "chai": "^4.2.0", + "chalk": "^4.1.0", + "cross-env": "^7.0.2", + "eslint": "^7.6.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-node": "^11.1.0", + "gts": "^3.0.0", + "mocha": "^10.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.23.1", + "rollup-plugin-ts": "^3.0.2", + "standardx": "^7.0.0", + "typescript": "^4.0.0" + }, + "files": [ + "build", + "index.mjs", + "!*.d.ts" + ], + "engines": { + "node": ">=12" + } +} diff --git a/node_modules/color-convert/CHANGELOG.md b/node_modules/color-convert/CHANGELOG.md new file mode 100644 index 0000000..0a7bce4 --- /dev/null +++ b/node_modules/color-convert/CHANGELOG.md @@ -0,0 +1,54 @@ +# 1.0.0 - 2016-01-07 + +- Removed: unused speed test +- Added: Automatic routing between previously unsupported conversions +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Removed: `convert()` class +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Changed: all functions to lookup dictionary +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Changed: `ansi` to `ansi256` +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Fixed: argument grouping for functions requiring only one argument +([#27](https://github.com/Qix-/color-convert/pull/27)) + +# 0.6.0 - 2015-07-23 + +- Added: methods to handle +[ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: + - rgb2ansi16 + - rgb2ansi + - hsl2ansi16 + - hsl2ansi + - hsv2ansi16 + - hsv2ansi + - hwb2ansi16 + - hwb2ansi + - cmyk2ansi16 + - cmyk2ansi + - keyword2ansi16 + - keyword2ansi + - ansi162rgb + - ansi162hsl + - ansi162hsv + - ansi162hwb + - ansi162cmyk + - ansi162keyword + - ansi2rgb + - ansi2hsl + - ansi2hsv + - ansi2hwb + - ansi2cmyk + - ansi2keyword +([#18](https://github.com/harthur/color-convert/pull/18)) + +# 0.5.3 - 2015-06-02 + +- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` +([#15](https://github.com/harthur/color-convert/issues/15)) + +--- + +Check out commit logs for older releases diff --git a/node_modules/color-convert/LICENSE b/node_modules/color-convert/LICENSE new file mode 100644 index 0000000..5b4c386 --- /dev/null +++ b/node_modules/color-convert/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2011-2016 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/node_modules/color-convert/README.md b/node_modules/color-convert/README.md new file mode 100644 index 0000000..d4b08fc --- /dev/null +++ b/node_modules/color-convert/README.md @@ -0,0 +1,68 @@ +# color-convert + +[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) + +Color-convert is a color conversion library for JavaScript and node. +It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): + +```js +var convert = require('color-convert'); + +convert.rgb.hsl(140, 200, 100); // [96, 48, 59] +convert.keyword.rgb('blue'); // [0, 0, 255] + +var rgbChannels = convert.rgb.channels; // 3 +var cmykChannels = convert.cmyk.channels; // 4 +var ansiChannels = convert.ansi16.channels; // 1 +``` + +# Install + +```console +$ npm install color-convert +``` + +# API + +Simply get the property of the _from_ and _to_ conversion that you're looking for. + +All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. + +All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). + +```js +var convert = require('color-convert'); + +// Hex to LAB +convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] +convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] + +// RGB to CMYK +convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] +convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] +``` + +### Arrays +All functions that accept multiple arguments also support passing an array. + +Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) + +```js +var convert = require('color-convert'); + +convert.rgb.hex(123, 45, 67); // '7B2D43' +convert.rgb.hex([123, 45, 67]); // '7B2D43' +``` + +## Routing + +Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). + +Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). + +# Contribute + +If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. + +# License +Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). diff --git a/node_modules/color-convert/conversions.js b/node_modules/color-convert/conversions.js new file mode 100644 index 0000000..2657f26 --- /dev/null +++ b/node_modules/color-convert/conversions.js @@ -0,0 +1,839 @@ +/* MIT license */ +/* eslint-disable no-mixed-operators */ +const cssKeywords = require('color-name'); + +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) + +const reverseKeywords = {}; +for (const key of Object.keys(cssKeywords)) { + reverseKeywords[cssKeywords[key]] = key; +} + +const convert = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; + +module.exports = convert; + +// Hide .channels and .labels properties +for (const model of Object.keys(convert)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } + + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); + } + + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + + const {channels, labels} = convert[model]; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', {value: channels}); + Object.defineProperty(convert[model], 'labels', {value: labels}); +} + +convert.rgb.hsl = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + const l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +convert.rgb.hsv = function (rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; + + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + const diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [ + h * 360, + s * 100, + v * 100 + ]; +}; + +convert.rgb.hwb = function (rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); + + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +}; + +convert.rgb.cmyk = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; + + return [c * 100, m * 100, y * 100, k * 100]; +}; + +function comparativeDistance(x, y) { + /* + See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + */ + return ( + ((x[0] - y[0]) ** 2) + + ((x[1] - y[1]) ** 2) + + ((x[2] - y[2]) ** 2) + ); +} + +convert.rgb.keyword = function (rgb) { + const reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + + let currentClosestDistance = Infinity; + let currentClosestKeyword; + + for (const keyword of Object.keys(cssKeywords)) { + const value = cssKeywords[keyword]; + + // Compute comparative distance + const distance = comparativeDistance(rgb, value); + + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + + return currentClosestKeyword; +}; + +convert.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; +}; + +convert.rgb.xyz = function (rgb) { + let r = rgb[0] / 255; + let g = rgb[1] / 255; + let b = rgb[2] / 255; + + // Assume sRGB + r = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92); + g = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92); + b = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92); + + const x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + const y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + const z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + + return [x * 100, y * 100, z * 100]; +}; + +convert.rgb.lab = function (rgb) { + const xyz = convert.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); + + const l = (116 * y) - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.hsl.rgb = function (hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t2; + let t3; + let val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + const t1 = 2 * l - t2; + + const rgb = [0, 0, 0]; + for (let i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; +}; + +convert.hsl.hsv = function (hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); + + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + + return [h, sv * 100, v * 100]; +}; + +convert.hsv.rgb = function (hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - (s * f)); + const t = 255 * v * (1 - (s * (1 - f))); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; + +convert.hsv.hsl = function (hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; + + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + + return [h, sl * 100, l * 100]; +}; + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; + + // Wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + const n = wh + f * (v - wh); // Linear interpolation + + let r; + let g; + let b; + /* eslint-disable max-statements-per-line,no-multi-spaces */ + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + /* eslint-enable max-statements-per-line,no-multi-spaces */ + + return [r * 255, g * 255, b * 255]; +}; + +convert.cmyk.rgb = function (cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; + + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.rgb = function (xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + let r; + let g; + let b; + + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + + // Assume sRGB + r = r > 0.0031308 + ? ((1.055 * (r ** (1.0 / 2.4))) - 0.055) + : r * 12.92; + + g = g > 0.0031308 + ? ((1.055 * (g ** (1.0 / 2.4))) - 0.055) + : g * 12.92; + + b = b > 0.0031308 + ? ((1.055 * (b ** (1.0 / 2.4))) - 0.055) + : b * 12.92; + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.lab = function (xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); + + const l = (116 * y) - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.lab.xyz = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z; + + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + + const y2 = y ** 3; + const x2 = x ** 3; + const z2 = z ** 3; + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + + x *= 95.047; + y *= 100; + z *= 108.883; + + return [x, y, z]; +}; + +convert.lab.lch = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; + + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + + if (h < 0) { + h += 360; + } + + const c = Math.sqrt(a * a + b * b); + + return [l, c, h]; +}; + +convert.lch.lab = function (lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; + + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); + + return [l, a, b]; +}; + +convert.rgb.ansi16 = function (args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; + } + + let ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); + + if (value === 2) { + ansi += 60; + } + + return ansi; +}; + +convert.hsv.ansi16 = function (args) { + // Optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; + +convert.rgb.ansi256 = function (args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; + + // We use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } + + if (r > 248) { + return 231; + } + + return Math.round(((r - 8) / 247) * 24) + 232; + } + + const ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); + + return ansi; +}; + +convert.ansi16.rgb = function (args) { + let color = args % 10; + + // Handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = color / 10.5 * 255; + + return [color, color, color]; + } + + const mult = (~~(args > 50) + 1) * 0.5; + const r = ((color & 1) * mult) * 255; + const g = (((color >> 1) & 1) * mult) * 255; + const b = (((color >> 2) & 1) * mult) * 255; + + return [r, g, b]; +}; + +convert.ansi256.rgb = function (args) { + // Handle greyscale + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } + + args -= 16; + + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = (rem % 6) / 5 * 255; + + return [r, g, b]; +}; + +convert.rgb.hex = function (args) { + const integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); + + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.hex.rgb = function (args) { + const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + + let colorString = match[0]; + + if (match[0].length === 3) { + colorString = colorString.split('').map(char => { + return char + char; + }).join(''); + } + + const integer = parseInt(colorString, 16); + const r = (integer >> 16) & 0xFF; + const g = (integer >> 8) & 0xFF; + const b = integer & 0xFF; + + return [r, g, b]; +}; + +convert.rgb.hcg = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = (max - min); + let grayscale; + let hue; + + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } + + hue /= 6; + hue %= 1; + + return [hue * 360, chroma * 100, grayscale * 100]; +}; + +convert.hsl.hcg = function (hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; + + const c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l)); + + let f = 0; + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } + + return [hsl[0], c * 100, f * 100]; +}; + +convert.hsv.hcg = function (hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; + + const c = s * v; + let f = 0; + + if (c < 1.0) { + f = (v - c) / (1 - c); + } + + return [hsv[0], c * 100, f * 100]; +}; + +convert.hcg.rgb = function (hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + + const pure = [0, 0, 0]; + const hi = (h % 1) * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; + + /* eslint-disable max-statements-per-line */ + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } + /* eslint-enable max-statements-per-line */ + + mg = (1.0 - c) * g; + + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; + +convert.hcg.hsv = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + const v = c + g * (1.0 - c); + let f = 0; + + if (v > 0.0) { + f = c / v; + } + + return [hcg[0], f * 100, v * 100]; +}; + +convert.hcg.hsl = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + const l = g * (1.0 - c) + 0.5 * c; + let s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } + + return [hcg[0], s * 100, l * 100]; +}; + +convert.hcg.hwb = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; + +convert.hwb.hcg = function (hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; + + if (c < 1) { + g = (v - c) / (1 - c); + } + + return [hwb[0], c * 100, g * 100]; +}; + +convert.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; + +convert.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; + +convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; + +convert.gray.hsl = function (args) { + return [0, 0, args[0]]; +}; + +convert.gray.hsv = convert.gray.hsl; + +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; + +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; + +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; + +convert.gray.hex = function (gray) { + const val = Math.round(gray[0] / 100 * 255) & 0xFF; + const integer = (val << 16) + (val << 8) + val; + + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.rgb.gray = function (rgb) { + const val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; diff --git a/node_modules/color-convert/index.js b/node_modules/color-convert/index.js new file mode 100644 index 0000000..b648e57 --- /dev/null +++ b/node_modules/color-convert/index.js @@ -0,0 +1,81 @@ +const conversions = require('./conversions'); +const route = require('./route'); + +const convert = {}; + +const models = Object.keys(conversions); + +function wrapRaw(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + if (arg0 === undefined || arg0 === null) { + return arg0; + } + + if (arg0.length > 1) { + args = arg0; + } + + return fn(args); + }; + + // Preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +function wrapRounded(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + + if (arg0 === undefined || arg0 === null) { + return arg0; + } + + if (arg0.length > 1) { + args = arg0; + } + + const result = fn(args); + + // We're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (let len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + + return result; + }; + + // Preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +models.forEach(fromModel => { + convert[fromModel] = {}; + + Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); + + const routes = route(fromModel); + const routeModels = Object.keys(routes); + + routeModels.forEach(toModel => { + const fn = routes[toModel]; + + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); + +module.exports = convert; diff --git a/node_modules/color-convert/package.json b/node_modules/color-convert/package.json new file mode 100644 index 0000000..6e48000 --- /dev/null +++ b/node_modules/color-convert/package.json @@ -0,0 +1,48 @@ +{ + "name": "color-convert", + "description": "Plain color conversion functions", + "version": "2.0.1", + "author": "Heather Arthur ", + "license": "MIT", + "repository": "Qix-/color-convert", + "scripts": { + "pretest": "xo", + "test": "node test/basic.js" + }, + "engines": { + "node": ">=7.0.0" + }, + "keywords": [ + "color", + "colour", + "convert", + "converter", + "conversion", + "rgb", + "hsl", + "hsv", + "hwb", + "cmyk", + "ansi", + "ansi16" + ], + "files": [ + "index.js", + "conversions.js", + "route.js" + ], + "xo": { + "rules": { + "default-case": 0, + "no-inline-comments": 0, + "operator-linebreak": 0 + } + }, + "devDependencies": { + "chalk": "^2.4.2", + "xo": "^0.24.0" + }, + "dependencies": { + "color-name": "~1.1.4" + } +} diff --git a/node_modules/color-convert/route.js b/node_modules/color-convert/route.js new file mode 100644 index 0000000..1a08521 --- /dev/null +++ b/node_modules/color-convert/route.js @@ -0,0 +1,97 @@ +const conversions = require('./conversions'); + +/* + This function routes a model to all other models. + + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). + + conversions that are not possible simply are not included. +*/ + +function buildGraph() { + const graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + const models = Object.keys(conversions); + + for (let len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + + return graph; +} + +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + const graph = buildGraph(); + const queue = [fromModel]; // Unshift -> queue -> pop + + graph[fromModel].distance = 0; + + while (queue.length) { + const current = queue.pop(); + const adjacents = Object.keys(conversions[current]); + + for (let len = adjacents.length, i = 0; i < len; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + + return graph; +} + +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} + +function wrapConversion(toModel, graph) { + const path = [graph[toModel].parent, toModel]; + let fn = conversions[graph[toModel].parent][toModel]; + + let cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + + fn.conversion = path; + return fn; +} + +module.exports = function (fromModel) { + const graph = deriveBFS(fromModel); + const conversion = {}; + + const models = Object.keys(graph); + for (let len = models.length, i = 0; i < len; i++) { + const toModel = models[i]; + const node = graph[toModel]; + + if (node.parent === null) { + // No possible conversion, or this node is the source model. + continue; + } + + conversion[toModel] = wrapConversion(toModel, graph); + } + + return conversion; +}; + diff --git a/node_modules/color-name/LICENSE b/node_modules/color-name/LICENSE new file mode 100644 index 0000000..c6b1001 --- /dev/null +++ b/node_modules/color-name/LICENSE @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/color-name/README.md b/node_modules/color-name/README.md new file mode 100644 index 0000000..932b979 --- /dev/null +++ b/node_modules/color-name/README.md @@ -0,0 +1,11 @@ +A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. + +[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) + + +```js +var colors = require('color-name'); +colors.red //[255,0,0] +``` + + diff --git a/node_modules/color-name/index.js b/node_modules/color-name/index.js new file mode 100644 index 0000000..b7c198a --- /dev/null +++ b/node_modules/color-name/index.js @@ -0,0 +1,152 @@ +'use strict' + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; diff --git a/node_modules/color-name/package.json b/node_modules/color-name/package.json new file mode 100644 index 0000000..782dd82 --- /dev/null +++ b/node_modules/color-name/package.json @@ -0,0 +1,28 @@ +{ + "name": "color-name", + "version": "1.1.4", + "description": "A list of color names and its values", + "main": "index.js", + "files": [ + "index.js" + ], + "scripts": { + "test": "node test.js" + }, + "repository": { + "type": "git", + "url": "git@github.com:colorjs/color-name.git" + }, + "keywords": [ + "color-name", + "color", + "color-keyword", + "keyword" + ], + "author": "DY ", + "license": "MIT", + "bugs": { + "url": "https://github.com/colorjs/color-name/issues" + }, + "homepage": "https://github.com/colorjs/color-name" +} diff --git a/node_modules/dependency-graph/CHANGELOG.md b/node_modules/dependency-graph/CHANGELOG.md new file mode 100755 index 0000000..5e6c4d9 --- /dev/null +++ b/node_modules/dependency-graph/CHANGELOG.md @@ -0,0 +1,82 @@ +# Dependency Graph Changelog + +## 0.11.0 (March 5, 2021) + +- Add `entryNodes` method that returns the nodes that nothing depends on - thanks [amcdnl](https://github.com/amcdnl)! + +## 0.10.0 (January 9, 2021) + +- Add `directDependenciesOf` and `directDependantsOf` methods for retrieving direct dependency information. (Fixes #40) +- Add aliases `dependentsOf` and `directDependentsOf`. + +## 0.9.0 (February 10, 2020) + +- Rewrite the topological sort DFS to be more efficient (and work!) on large graphs. + - No longer uses recursion to avoid stack overflows with large/deep graphs + - No longer is accidentally `O(N^2)` (thanks [willtennien](https://github.com/willtennien) for pointing this out!) + +## 0.8.1 (December 3, 2019) + +- Ensure all nodes are included in overallOrder when cycles are allowed. (Fixes #33) + +## 0.8.0 (December 11, 2018) + +- Add a `DepGraphCycleError` with cyclePath property - thanks [jhugman](https://github.com/jhugman)! + +## 0.7.2 (August 30, 2018) + +- Make constructor parameter optional in Typescript definition. (Fixes #26) + +## 0.7.1 (June 5, 2018) + +- Fix Typescript definition to include the new constructor arguments added in `0.7.0` - thanks [tbranyen](https://github.com/tbranyen)! + +## 0.7.0 (January 17, 2018) + +- Allow circular dependencies by passing in `{circular: true}` into the constructor - thanks [tbranyen](https://github.com/tbranyen)! + +## 0.6.0 (October 22, 2017) + +- Add a `size` method that will return the number of nodes in the graph. +- Add a `clone` method that will clone the graph. Any custom node data will only be shallow-copied. (Fixes #14) + +## 0.5.2 (October 22, 2017) + +- Add missing parameter in TypeScript definition. (Fixes #19) + +## 0.5.1 (October 7, 2017) + +- Now exposes Typescript type definition - thanks [vangorra](https://github.com/vangorra)! + +## 0.5.0 (April 26, 2016) + +- Add optional data parameter for the addNode method. (Fixes #12) +- Add methods getNodeData and setNodeData to manipulate the data associated with a node name. (Fixes #12) +- Change the hasNode method to be able to cope with falsy node data. (Fixes #12) + +## 0.4.1 (Sept 3, 2015) + +- Check all nodes for potential cycles when calculating overall order. (Fixes #8) + +## 0.4.0 (Aug 1, 2015) + +- Better error messages + - When a cycle is detected, the error message will now include the cycle in it. E.g `Dependency Cycle Found: a -> b -> c -> a` (Fixes #7) + - When calling `addDependency` if one of the nodes does not exist, the error will say which one it was (instead of saying that "one" of the two nodes did not exist and making you manually determine which one) +- Calling `overallOrder` on an empty graph will no longer throw an error about a dependency cycle. It will return an empty array. + +## 0.3.0 (July 24, 2015) + +- Fix issue where if you call `addNode` twice with the same name, it would clear all edges for that node. Now it will do nothing if a node with the specified name already exists. (Fixes #3) + +## 0.2.1 (July 3, 2015) + +- Fixed removeNode leaving references in outgoingEdges and reference to non-existent var edges - thanks [juhoha](https://github.com/juhoha)! (Fixes #2) + +## 0.2.0 (May 1, 2015) + +- Removed dependency on Underscore - thanks [myndzi](https://github.com/myndzi)! (Fixes #1) + +## 0.1.0 (May 18, 2013) + +- Initial Release - extracted out of asset-smasher diff --git a/node_modules/dependency-graph/LICENSE b/node_modules/dependency-graph/LICENSE new file mode 100755 index 0000000..6ebe5b6 --- /dev/null +++ b/node_modules/dependency-graph/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2013-2020 by Jim Riecken + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/dependency-graph/README.md b/node_modules/dependency-graph/README.md new file mode 100755 index 0000000..763aaf8 --- /dev/null +++ b/node_modules/dependency-graph/README.md @@ -0,0 +1,78 @@ +# Dependency Graph + +Simple dependency graph + +## Overview + +This is a simple dependency graph useful for determining the order to do a list of things that depend on certain items being done before they are. + +To use, `npm install dependency-graph` and then `require('dependency-graph').DepGraph` + +## API + +### DepGraph + +Nodes in the graph are just simple strings with optional data associated with them. + + - `addNode(name, data)` - add a node in the graph with optional data. If `data` is not given, `name` will be used as data + - `removeNode(name)` - remove a node from the graph + - `hasNode(name)` - check if a node exists in the graph + - `size()` - return the number of nodes in the graph + - `getNodeData(name)` - get the data associated with a node (will throw an `Error` if the node does not exist) + - `setNodeData(name, data)` - set the data for an existing node (will throw an `Error` if the node does not exist) + - `addDependency(from, to)` - add a dependency between two nodes (will throw an `Error` if one of the nodes does not exist) + - `removeDependency(from, to)` - remove a dependency between two nodes + - `clone()` - return a clone of the graph. Any data attached to the nodes will only be *shallow-copied* + - `dependenciesOf(name, leavesOnly)` - get an array containing the nodes that the specified node depends on (transitively). If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned in the array. + - `dependantsOf(name, leavesOnly)` (aliased as `dependentsOf`) - get an array containing the nodes that depend on the specified node (transitively). If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array. + - `directDependenciesOf(name)` - get an array containing the direct dependencies of the specified node + - `directDependantsOf(name)` (aliased as `directDependentsOf`) - get an array containing the nodes that directly depend on the specified node + - `overallOrder(leavesOnly)` - construct the overall processing order for the dependency graph. If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned. + - `entryNodes()` - array of nodes that have no dependants (i.e. nothing depends on them). + +Dependency Cycles are detected when running `dependenciesOf`, `dependantsOf`, and `overallOrder` and if one is found, a `DepGraphCycleError` will be thrown that includes what the cycle was in the message as well as the `cyclePath` property: e.g. `Dependency Cycle Found: a -> b -> c -> a`. If you wish to silence this error, pass `circular: true` when instantiating `DepGraph` (more below). + +## Examples + + var DepGraph = require('dependency-graph').DepGraph; + + var graph = new DepGraph(); + graph.addNode('a'); + graph.addNode('b'); + graph.addNode('c'); + + graph.size() // 3 + + graph.addDependency('a', 'b'); + graph.addDependency('b', 'c'); + + graph.dependenciesOf('a'); // ['c', 'b'] + graph.dependenciesOf('b'); // ['c'] + graph.dependantsOf('c'); // ['a', 'b'] + + graph.overallOrder(); // ['c', 'b', 'a'] + graph.overallOrder(true); // ['c'] + graph.entryNodes(); // ['a'] + + graph.addNode('d', 'data'); + + graph.getNodeData('d'); // 'data' + + graph.setNodeData('d', 'newData'); + + graph.getNodeData('d'); // 'newData' + + var circularGraph = new DepGraph({ circular: true }); + + circularGraph.addNode('a'); + circularGraph.addNode('b'); + circularGraph.addNode('c'); + circularGraph.addNode('d'); + + circularGraph.addDependency('a', 'b'); + circularGraph.addDependency('b', 'c'); // b depends on c + circularGraph.addDependency('c', 'a'); // c depends on a, which depends on b + circularGraph.addDependency('d', 'a'); + + circularGraph.dependenciesOf('b'); // ['a', 'c'] + circularGraph.overallOrder(); // ['c', 'b', 'a', 'd'] diff --git a/node_modules/dependency-graph/lib/dep_graph.js b/node_modules/dependency-graph/lib/dep_graph.js new file mode 100755 index 0000000..a64f801 --- /dev/null +++ b/node_modules/dependency-graph/lib/dep_graph.js @@ -0,0 +1,364 @@ +/** + * A simple dependency graph + */ + +/** + * Helper for creating a Topological Sort using Depth-First-Search on a set of edges. + * + * Detects cycles and throws an Error if one is detected (unless the "circular" + * parameter is "true" in which case it ignores them). + * + * @param edges The set of edges to DFS through + * @param leavesOnly Whether to only return "leaf" nodes (ones who have no edges) + * @param result An array in which the results will be populated + * @param circular A boolean to allow circular dependencies + */ +function createDFS(edges, leavesOnly, result, circular) { + var visited = {}; + return function (start) { + if (visited[start]) { + return; + } + var inCurrentPath = {}; + var currentPath = []; + var todo = []; // used as a stack + todo.push({ node: start, processed: false }); + while (todo.length > 0) { + var current = todo[todo.length - 1]; // peek at the todo stack + var processed = current.processed; + var node = current.node; + if (!processed) { + // Haven't visited edges yet (visiting phase) + if (visited[node]) { + todo.pop(); + continue; + } else if (inCurrentPath[node]) { + // It's not a DAG + if (circular) { + todo.pop(); + // If we're tolerating cycles, don't revisit the node + continue; + } + currentPath.push(node); + throw new DepGraphCycleError(currentPath); + } + + inCurrentPath[node] = true; + currentPath.push(node); + var nodeEdges = edges[node]; + // (push edges onto the todo stack in reverse order to be order-compatible with the old DFS implementation) + for (var i = nodeEdges.length - 1; i >= 0; i--) { + todo.push({ node: nodeEdges[i], processed: false }); + } + current.processed = true; + } else { + // Have visited edges (stack unrolling phase) + todo.pop(); + currentPath.pop(); + inCurrentPath[node] = false; + visited[node] = true; + if (!leavesOnly || edges[node].length === 0) { + result.push(node); + } + } + } + }; +} + +/** + * Simple Dependency Graph + */ +var DepGraph = (exports.DepGraph = function DepGraph(opts) { + this.nodes = {}; // Node -> Node/Data (treated like a Set) + this.outgoingEdges = {}; // Node -> [Dependency Node] + this.incomingEdges = {}; // Node -> [Dependant Node] + this.circular = opts && !!opts.circular; // Allows circular deps +}); +DepGraph.prototype = { + /** + * The number of nodes in the graph. + */ + size: function () { + return Object.keys(this.nodes).length; + }, + /** + * Add a node to the dependency graph. If a node already exists, this method will do nothing. + */ + addNode: function (node, data) { + if (!this.hasNode(node)) { + // Checking the arguments length allows the user to add a node with undefined data + if (arguments.length === 2) { + this.nodes[node] = data; + } else { + this.nodes[node] = node; + } + this.outgoingEdges[node] = []; + this.incomingEdges[node] = []; + } + }, + /** + * Remove a node from the dependency graph. If a node does not exist, this method will do nothing. + */ + removeNode: function (node) { + if (this.hasNode(node)) { + delete this.nodes[node]; + delete this.outgoingEdges[node]; + delete this.incomingEdges[node]; + [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) { + Object.keys(edgeList).forEach(function (key) { + var idx = edgeList[key].indexOf(node); + if (idx >= 0) { + edgeList[key].splice(idx, 1); + } + }, this); + }); + } + }, + /** + * Check if a node exists in the graph + */ + hasNode: function (node) { + return this.nodes.hasOwnProperty(node); + }, + /** + * Get the data associated with a node name + */ + getNodeData: function (node) { + if (this.hasNode(node)) { + return this.nodes[node]; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Set the associated data for a given node name. If the node does not exist, this method will throw an error + */ + setNodeData: function (node, data) { + if (this.hasNode(node)) { + this.nodes[node] = data; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Add a dependency between two nodes. If either of the nodes does not exist, + * an Error will be thrown. + */ + addDependency: function (from, to) { + if (!this.hasNode(from)) { + throw new Error("Node does not exist: " + from); + } + if (!this.hasNode(to)) { + throw new Error("Node does not exist: " + to); + } + if (this.outgoingEdges[from].indexOf(to) === -1) { + this.outgoingEdges[from].push(to); + } + if (this.incomingEdges[to].indexOf(from) === -1) { + this.incomingEdges[to].push(from); + } + return true; + }, + /** + * Remove a dependency between two nodes. + */ + removeDependency: function (from, to) { + var idx; + if (this.hasNode(from)) { + idx = this.outgoingEdges[from].indexOf(to); + if (idx >= 0) { + this.outgoingEdges[from].splice(idx, 1); + } + } + + if (this.hasNode(to)) { + idx = this.incomingEdges[to].indexOf(from); + if (idx >= 0) { + this.incomingEdges[to].splice(idx, 1); + } + } + }, + /** + * Return a clone of the dependency graph. If any custom data is attached + * to the nodes, it will only be shallow copied. + */ + clone: function () { + var source = this; + var result = new DepGraph(); + var keys = Object.keys(source.nodes); + keys.forEach(function (n) { + result.nodes[n] = source.nodes[n]; + result.outgoingEdges[n] = source.outgoingEdges[n].slice(0); + result.incomingEdges[n] = source.incomingEdges[n].slice(0); + }); + return result; + }, + /** + * Get an array containing the direct dependencies of the specified node. + * + * Throws an Error if the specified node does not exist. + */ + directDependenciesOf: function (node) { + if (this.hasNode(node)) { + return this.outgoingEdges[node].slice(0); + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Get an array containing the nodes that directly depend on the specified node. + * + * Throws an Error if the specified node does not exist. + */ + directDependantsOf: function (node) { + if (this.hasNode(node)) { + return this.incomingEdges[node].slice(0); + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Get an array containing the nodes that the specified node depends on (transitively). + * + * Throws an Error if the graph has a cycle, or the specified node does not exist. + * + * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned + * in the array. + */ + dependenciesOf: function (node, leavesOnly) { + if (this.hasNode(node)) { + var result = []; + var DFS = createDFS( + this.outgoingEdges, + leavesOnly, + result, + this.circular + ); + DFS(node); + var idx = result.indexOf(node); + if (idx >= 0) { + result.splice(idx, 1); + } + return result; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * get an array containing the nodes that depend on the specified node (transitively). + * + * Throws an Error if the graph has a cycle, or the specified node does not exist. + * + * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array. + */ + dependantsOf: function (node, leavesOnly) { + if (this.hasNode(node)) { + var result = []; + var DFS = createDFS( + this.incomingEdges, + leavesOnly, + result, + this.circular + ); + DFS(node); + var idx = result.indexOf(node); + if (idx >= 0) { + result.splice(idx, 1); + } + return result; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Construct the overall processing order for the dependency graph. + * + * Throws an Error if the graph has a cycle. + * + * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned. + */ + overallOrder: function (leavesOnly) { + var self = this; + var result = []; + var keys = Object.keys(this.nodes); + if (keys.length === 0) { + return result; // Empty graph + } else { + if (!this.circular) { + // Look for cycles - we run the DFS starting at all the nodes in case there + // are several disconnected subgraphs inside this dependency graph. + var CycleDFS = createDFS(this.outgoingEdges, false, [], this.circular); + keys.forEach(function (n) { + CycleDFS(n); + }); + } + + var DFS = createDFS( + this.outgoingEdges, + leavesOnly, + result, + this.circular + ); + // Find all potential starting points (nodes with nothing depending on them) an + // run a DFS starting at these points to get the order + keys + .filter(function (node) { + return self.incomingEdges[node].length === 0; + }) + .forEach(function (n) { + DFS(n); + }); + + // If we're allowing cycles - we need to run the DFS against any remaining + // nodes that did not end up in the initial result (as they are part of a + // subgraph that does not have a clear starting point) + if (this.circular) { + keys + .filter(function (node) { + return result.indexOf(node) === -1; + }) + .forEach(function (n) { + DFS(n); + }); + } + + return result; + } + }, + /** + * Get an array of nodes that have no dependants (i.e. nothing depends on them). + */ + entryNodes: function () { + var self = this; + return Object.keys(this.nodes).filter(function (node) { + return self.incomingEdges[node].length === 0; + }); + } +}; + +// Create some aliases +DepGraph.prototype.directDependentsOf = DepGraph.prototype.directDependantsOf; +DepGraph.prototype.dependentsOf = DepGraph.prototype.dependantsOf; + +/** + * Cycle error, including the path of the cycle. + */ +var DepGraphCycleError = (exports.DepGraphCycleError = function (cyclePath) { + var message = "Dependency Cycle Found: " + cyclePath.join(" -> "); + var instance = new Error(message); + instance.cyclePath = cyclePath; + Object.setPrototypeOf(instance, Object.getPrototypeOf(this)); + if (Error.captureStackTrace) { + Error.captureStackTrace(instance, DepGraphCycleError); + } + return instance; +}); +DepGraphCycleError.prototype = Object.create(Error.prototype, { + constructor: { + value: Error, + enumerable: false, + writable: true, + configurable: true + } +}); +Object.setPrototypeOf(DepGraphCycleError, Error); diff --git a/node_modules/dependency-graph/lib/index.d.ts b/node_modules/dependency-graph/lib/index.d.ts new file mode 100755 index 0000000..6ed8de5 --- /dev/null +++ b/node_modules/dependency-graph/lib/index.d.ts @@ -0,0 +1,127 @@ +declare module 'dependency-graph' { + export interface Options { + circular?: boolean; + } + + export class DepGraph { + /** + * Creates an instance of DepGraph with optional Options. + */ + constructor(opts?: Options); + + /** + * The number of nodes in the graph. + */ + size(): number; + + /** + * Add a node in the graph with optional data. If data is not given, name will be used as data. + * @param {string} name + * @param data + */ + addNode(name: string, data?: T): void; + + /** + * Remove a node from the graph. + * @param {string} name + */ + removeNode(name: string): void; + + /** + * Check if a node exists in the graph. + * @param {string} name + */ + hasNode(name: string): boolean; + + /** + * Get the data associated with a node (will throw an Error if the node does not exist). + * @param {string} name + */ + getNodeData(name: string): T; + + /** + * Set the data for an existing node (will throw an Error if the node does not exist). + * @param {string} name + * @param data + */ + setNodeData(name: string, data?: T): void; + + /** + * Add a dependency between two nodes (will throw an Error if one of the nodes does not exist). + * @param {string} from + * @param {string} to + */ + addDependency(from: string, to: string): void; + + /** + * Remove a dependency between two nodes. + * @param {string} from + * @param {string} to + */ + removeDependency(from: string, to: string): void; + + /** + * Return a clone of the dependency graph (If any custom data is attached + * to the nodes, it will only be shallow copied). + */ + clone(): DepGraph; + + /** + * Get an array containing the direct dependency nodes of the specified node. + * @param name + */ + directDependenciesOf(name: string): string[]; + + /** + * Get an array containing the nodes that directly depend on the specified node. + * @param name + */ + directDependantsOf(name: string): string[]; + + /** + * Alias of `directDependantsOf` + * + * @see directDependantsOf + * @param {string} name + */ + directDependentsOf(name: string): string[]; + + /** + * Get an array containing the nodes that the specified node depends on (transitively). If leavesOnly is true, only nodes that do not depend on any other nodes will be returned in the array. + * @param {string} name + * @param {boolean} leavesOnly + */ + dependenciesOf(name: string, leavesOnly?: boolean): string[]; + + /** + * Get an array containing the nodes that depend on the specified node (transitively). If leavesOnly is true, only nodes that do not have any dependants will be returned in the array. + * @param {string} name + * @param {boolean} leavesOnly + */ + dependantsOf(name: string, leavesOnly?: boolean): string[]; + + /** + * Alias of `dependantsOf` + * + * @see dependantsOf + * @param name + * @param leavesOnly + */ + dependentsOf(name: string, leavesOnly?: boolean): string[]; + + /** + * Get an array of nodes that have no dependants (i.e. nothing depends on them). + */ + entryNodes(): string[]; + + /** + * Construct the overall processing order for the dependency graph. If leavesOnly is true, only nodes that do not depend on any other nodes will be returned. + * @param {boolean} leavesOnly + */ + overallOrder(leavesOnly?: boolean): string[]; + } + + export class DepGraphCycleError extends Error { + cyclePath: string[]; + } +} diff --git a/node_modules/dependency-graph/package.json b/node_modules/dependency-graph/package.json new file mode 100755 index 0000000..d965899 --- /dev/null +++ b/node_modules/dependency-graph/package.json @@ -0,0 +1,31 @@ +{ + "name": "dependency-graph", + "description": "Simple dependency graph.", + "version": "0.11.0", + "author": "Jim Riecken ", + "keywords": [ + "dependency", + "graph" + ], + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/jriecken/dependency-graph.git" + }, + "bugs": { + "url": "http://github.com/jriecken/dependency-graph/issues" + }, + "main": "./lib/dep_graph.js", + "scripts": { + "test": "jasmine specs/**/*.js" + }, + "dependencies": {}, + "optionalDependencies": {}, + "devDependencies": { + "jasmine": "3.5.0" + }, + "engines": { + "node": ">= 0.6.0" + }, + "types": "./lib/index.d.ts" +} \ No newline at end of file diff --git a/node_modules/dependency-graph/specs/dep_graph_spec.js b/node_modules/dependency-graph/specs/dep_graph_spec.js new file mode 100755 index 0000000..07aa68e --- /dev/null +++ b/node_modules/dependency-graph/specs/dep_graph_spec.js @@ -0,0 +1,542 @@ +var dep_graph = require("../lib/dep_graph"); +var DepGraph = dep_graph.DepGraph; + +describe("DepGraph", function () { + it("should be able to add/remove nodes", function () { + var graph = new DepGraph(); + + graph.addNode("Foo"); + graph.addNode("Bar"); + + expect(graph.hasNode("Foo")).toBeTrue(); + expect(graph.hasNode("Bar")).toBeTrue(); + expect(graph.hasNode("NotThere")).toBeFalse(); + + graph.removeNode("Bar"); + + expect(graph.hasNode("Bar")).toBeFalse(); + }); + + it("should calculate its size", function () { + var graph = new DepGraph(); + + expect(graph.size()).toBe(0); + + graph.addNode("Foo"); + graph.addNode("Bar"); + + expect(graph.size()).toBe(2); + + graph.removeNode("Bar"); + + expect(graph.size()).toBe(1); + }); + + it("should treat the node data parameter as optional and use the node name as data if node data was not given", function () { + var graph = new DepGraph(); + + graph.addNode("Foo"); + + expect(graph.getNodeData("Foo")).toBe("Foo"); + }); + + it("should be able to associate a node name with data on node add", function () { + var graph = new DepGraph(); + + graph.addNode("Foo", "data"); + + expect(graph.getNodeData("Foo")).toBe("data"); + }); + + it("should be able to add undefined as node data", function () { + var graph = new DepGraph(); + + graph.addNode("Foo", undefined); + + expect(graph.getNodeData("Foo")).toBeUndefined(); + }); + + it("should return true when using hasNode with a node which has falsy data", function () { + var graph = new DepGraph(); + + var falsyData = ["", 0, null, undefined, false]; + graph.addNode("Foo"); + + falsyData.forEach(function (data) { + graph.setNodeData("Foo", data); + + expect(graph.hasNode("Foo")).toBeTrue(); + + // Just an extra check to make sure that the saved data is correct + expect(graph.getNodeData("Foo")).toBe(data); + }); + }); + + it("should be able to set data after a node was added", function () { + var graph = new DepGraph(); + + graph.addNode("Foo", "data"); + graph.setNodeData("Foo", "data2"); + + expect(graph.getNodeData("Foo")).toBe("data2"); + }); + + it("should throw an error if we try to set data for a non-existing node", function () { + var graph = new DepGraph(); + + expect(function () { + graph.setNodeData("Foo", "data"); + }).toThrow(new Error("Node does not exist: Foo")); + }); + + it("should throw an error if the node does not exists and we try to get data", function () { + var graph = new DepGraph(); + + expect(function () { + graph.getNodeData("Foo"); + }).toThrow(new Error("Node does not exist: Foo")); + }); + + it("should do nothing if creating a node that already exists", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + + graph.addDependency("a", "b"); + + graph.addNode("a"); + + expect(graph.dependenciesOf("a")).toEqual(["b"]); + }); + + it("should do nothing if removing a node that does not exist", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + expect(graph.hasNode("a")).toBeTrue(); + + graph.removeNode("a"); + expect(graph.hasNode("Foo")).toBeFalse(); + + graph.removeNode("a"); + expect(graph.hasNode("Foo")).toBeFalse(); + }); + + it("should be able to add dependencies between nodes", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + + expect(graph.dependenciesOf("a")).toEqual(["b", "c"]); + }); + + it("should find entry nodes", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + + expect(graph.entryNodes()).toEqual(["a"]); + }); + + it("should throw an error if a node does not exist and a dependency is added", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + + expect(function () { + graph.addDependency("a", "b"); + }).toThrow(new Error("Node does not exist: b")); + }); + + it("should detect cycles", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + graph.addDependency("d", "a"); + + expect(function () { + graph.dependenciesOf("b"); + }).toThrow(new dep_graph.DepGraphCycleError(["b", "c", "a", "b"])); + }); + + it("should allow cycles when configured", function () { + var graph = new DepGraph({ circular: true }); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + graph.addDependency("d", "a"); + + expect(graph.dependenciesOf("b")).toEqual(["a", "c"]); + expect(graph.overallOrder()).toEqual(["c", "b", "a", "d"]); + }); + + it( + "should include all nodes in overall order even from " + + "cycles in disconnected subgraphs when circular is true", + function () { + var graph = new DepGraph({ circular: true }); + + graph.addNode("2a"); + graph.addNode("2b"); + graph.addNode("2c"); + graph.addDependency("2a", "2b"); + graph.addDependency("2b", "2c"); + graph.addDependency("2c", "2a"); + + graph.addNode("1a"); + graph.addNode("1b"); + graph.addNode("1c"); + graph.addNode("1d"); + graph.addNode("1e"); + + graph.addDependency("1a", "1b"); + graph.addDependency("1a", "1c"); + graph.addDependency("1b", "1c"); + graph.addDependency("1c", "1d"); + + expect(graph.overallOrder()).toEqual([ + "1d", + "1c", + "1b", + "1a", + "1e", + "2c", + "2b", + "2a" + ]); + } + ); + + it("should detect cycles in overall order", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + graph.addDependency("d", "a"); + + expect(function () { + graph.overallOrder(); + }).toThrow(new dep_graph.DepGraphCycleError(["a", "b", "c", "a"])); + }); + + it("should detect cycles in overall order when all nodes have dependants (incoming edges)", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + + expect(function () { + graph.overallOrder(); + }).toThrow(new dep_graph.DepGraphCycleError(["a", "b", "c", "a"])); + }); + + it( + "should detect cycles in overall order when there are several " + + "disconnected subgraphs (with one that does not have a cycle", + function () { + var graph = new DepGraph(); + + graph.addNode("a_1"); + graph.addNode("a_2"); + graph.addNode("b_1"); + graph.addNode("b_2"); + graph.addNode("b_3"); + + graph.addDependency("a_1", "a_2"); + graph.addDependency("b_1", "b_2"); + graph.addDependency("b_2", "b_3"); + graph.addDependency("b_3", "b_1"); + + expect(function () { + graph.overallOrder(); + }).toThrow( + new dep_graph.DepGraphCycleError(["b_1", "b_2", "b_3", "b_1"]) + ); + } + ); + + it("should retrieve dependencies and dependants in the correct order", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "d"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("d", "b"); + + expect(graph.dependenciesOf("a")).toEqual(["c", "b", "d"]); + expect(graph.dependenciesOf("b")).toEqual(["c"]); + expect(graph.dependenciesOf("c")).toEqual([]); + expect(graph.dependenciesOf("d")).toEqual(["c", "b"]); + + expect(graph.dependantsOf("a")).toEqual([]); + expect(graph.dependantsOf("b")).toEqual(["a", "d"]); + expect(graph.dependantsOf("c")).toEqual(["a", "d", "b"]); + expect(graph.dependantsOf("d")).toEqual(["a"]); + + // check the alias "dependentsOf" + expect(graph.dependentsOf("a")).toEqual([]); + expect(graph.dependentsOf("b")).toEqual(["a", "d"]); + expect(graph.dependentsOf("c")).toEqual(["a", "d", "b"]); + expect(graph.dependentsOf("d")).toEqual(["a"]); + }); + + it("should be able to retrieve direct dependencies/dependants", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "d"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("d", "b"); + + expect(graph.directDependenciesOf("a")).toEqual(["d", "b"]); + expect(graph.directDependenciesOf("b")).toEqual(["c"]); + expect(graph.directDependenciesOf("c")).toEqual([]); + expect(graph.directDependenciesOf("d")).toEqual(["b"]); + + expect(graph.directDependantsOf("a")).toEqual([]); + expect(graph.directDependantsOf("b")).toEqual(["a", "d"]); + expect(graph.directDependantsOf("c")).toEqual(["b"]); + expect(graph.directDependantsOf("d")).toEqual(["a"]); + + // check the alias "directDependentsOf" + expect(graph.directDependentsOf("a")).toEqual([]); + expect(graph.directDependentsOf("b")).toEqual(["a", "d"]); + expect(graph.directDependentsOf("c")).toEqual(["b"]); + expect(graph.directDependentsOf("d")).toEqual(["a"]); + }); + + it("should be able to resolve the overall order of things", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + graph.addNode("e"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + graph.addDependency("b", "c"); + graph.addDependency("c", "d"); + + expect(graph.overallOrder()).toEqual(["d", "c", "b", "a", "e"]); + }); + + it('should be able to only retrieve the "leaves" in the overall order', function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + graph.addNode("e"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + graph.addDependency("b", "c"); + graph.addDependency("c", "d"); + + expect(graph.overallOrder(true)).toEqual(["d", "e"]); + }); + + it("should be able to give the overall order for a graph with several disconnected subgraphs", function () { + var graph = new DepGraph(); + + graph.addNode("a_1"); + graph.addNode("a_2"); + graph.addNode("b_1"); + graph.addNode("b_2"); + graph.addNode("b_3"); + + graph.addDependency("a_1", "a_2"); + graph.addDependency("b_1", "b_2"); + graph.addDependency("b_2", "b_3"); + + expect(graph.overallOrder()).toEqual(["a_2", "a_1", "b_3", "b_2", "b_1"]); + }); + + it("should give an empty overall order for an empty graph", function () { + var graph = new DepGraph(); + + expect(graph.overallOrder()).toEqual([]); + }); + + it("should still work after nodes are removed", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + + expect(graph.dependenciesOf("a")).toEqual(["c", "b"]); + + graph.removeNode("c"); + + expect(graph.dependenciesOf("a")).toEqual(["b"]); + }); + + it("should clone an empty graph", function () { + var graph = new DepGraph(); + expect(graph.size()).toEqual(0); + var cloned = graph.clone(); + expect(cloned.size()).toEqual(0); + + expect(graph === cloned).toBeFalse(); + }); + + it("should clone a non-empty graph", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + + var cloned = graph.clone(); + + expect(graph === cloned).toBeFalse(); + expect(cloned.hasNode("a")).toBeTrue(); + expect(cloned.hasNode("b")).toBeTrue(); + expect(cloned.hasNode("c")).toBeTrue(); + expect(cloned.dependenciesOf("a")).toEqual(["c", "b"]); + expect(cloned.dependantsOf("c")).toEqual(["a", "b"]); + + // Changes to the original graph shouldn't affect the clone + graph.removeNode("c"); + expect(graph.dependenciesOf("a")).toEqual(["b"]); + expect(cloned.dependenciesOf("a")).toEqual(["c", "b"]); + + graph.addNode("d"); + graph.addDependency("b", "d"); + expect(graph.dependenciesOf("a")).toEqual(["d", "b"]); + expect(cloned.dependenciesOf("a")).toEqual(["c", "b"]); + }); + + it("should only be a shallow clone", function () { + var graph = new DepGraph(); + + var data = { a: 42 }; + graph.addNode("a", data); + + var cloned = graph.clone(); + expect(graph === cloned).toBeFalse(); + expect(graph.getNodeData("a") === cloned.getNodeData("a")).toBeTrue(); + + graph.getNodeData("a").a = 43; + expect(cloned.getNodeData("a").a).toBe(43); + + cloned.setNodeData("a", { a: 42 }); + expect(cloned.getNodeData("a").a).toBe(42); + expect(graph.getNodeData("a") === cloned.getNodeData("a")).toBeFalse(); + }); +}); + +describe("DepGraph Performance", function () { + it("should not exceed max call stack with a very deep graph", function () { + var g = new DepGraph(); + var expected = []; + for (var i = 0; i < 100000; i++) { + var istr = i.toString(); + g.addNode(istr); + expected.push(istr); + if (i > 0) { + g.addDependency(istr, (i - 1).toString()); + } + } + var order = g.overallOrder(); + expect(order).toEqual(expected); + }); + + it("should run an a reasonable amount of time for a very large graph", function () { + var randInt = function (min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; + }; + var g = new DepGraph(); + var nodes = []; + // Create a graph with 100000 nodes in it with 10 random connections to + // lower numbered nodes + for (var i = 0; i < 100000; i++) { + nodes.push(i.toString()); + g.addNode(i.toString()); + for (var j = 0; j < 10; j++) { + var dep = randInt(0, i); + if (i !== dep) { + g.addDependency(i.toString(), dep.toString()); + } + } + } + var start = new Date().getTime(); + g.overallOrder(); + var end = new Date().getTime(); + expect(start - end).toBeLessThan(1000); + }); +}); + +describe("DepGraphCycleError", function () { + var DepGraphCycleError = dep_graph.DepGraphCycleError; + + it("should have a message", function () { + var err = new DepGraphCycleError(["a", "b", "c", "a"]); + expect(err.message).toEqual("Dependency Cycle Found: a -> b -> c -> a"); + }); + + it("should be an instanceof DepGraphCycleError", function () { + var err = new DepGraphCycleError(["a", "b", "c", "a"]); + expect(err instanceof DepGraphCycleError).toBeTrue(); + expect(err instanceof Error).toBeTrue(); + }); + + it("should have a cyclePath", function () { + var cyclePath = ["a", "b", "c", "a"]; + var err = new DepGraphCycleError(cyclePath); + expect(err.cyclePath).toEqual(cyclePath); + }); +}); diff --git a/node_modules/dir-glob/index.js b/node_modules/dir-glob/index.js new file mode 100644 index 0000000..c21cdf3 --- /dev/null +++ b/node_modules/dir-glob/index.js @@ -0,0 +1,75 @@ +'use strict'; +const path = require('path'); +const pathType = require('path-type'); + +const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; + +const getPath = (filepath, cwd) => { + const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; + return path.isAbsolute(pth) ? pth : path.join(cwd, pth); +}; + +const addExtensions = (file, extensions) => { + if (path.extname(file)) { + return `**/${file}`; + } + + return `**/${file}.${getExtensions(extensions)}`; +}; + +const getGlob = (directory, options) => { + if (options.files && !Array.isArray(options.files)) { + throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``); + } + + if (options.extensions && !Array.isArray(options.extensions)) { + throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``); + } + + if (options.files && options.extensions) { + return options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions))); + } + + if (options.files) { + return options.files.map(x => path.posix.join(directory, `**/${x}`)); + } + + if (options.extensions) { + return [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)]; + } + + return [path.posix.join(directory, '**')]; +}; + +module.exports = async (input, options) => { + options = { + cwd: process.cwd(), + ...options + }; + + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + } + + const globs = await Promise.all([].concat(input).map(async x => { + const isDirectory = await pathType.isDirectory(getPath(x, options.cwd)); + return isDirectory ? getGlob(x, options) : x; + })); + + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; + +module.exports.sync = (input, options) => { + options = { + cwd: process.cwd(), + ...options + }; + + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + } + + const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x); + + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; diff --git a/node_modules/dir-glob/license b/node_modules/dir-glob/license new file mode 100644 index 0000000..db6bc32 --- /dev/null +++ b/node_modules/dir-glob/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Kevin Mårtensson (github.com/kevva) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/dir-glob/package.json b/node_modules/dir-glob/package.json new file mode 100644 index 0000000..b0a397e --- /dev/null +++ b/node_modules/dir-glob/package.json @@ -0,0 +1,38 @@ +{ + "name": "dir-glob", + "version": "3.0.1", + "description": "Convert directories to glob compatible strings", + "license": "MIT", + "repository": "kevva/dir-glob", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "convert", + "directory", + "extensions", + "files", + "glob" + ], + "dependencies": { + "path-type": "^4.0.0" + }, + "devDependencies": { + "ava": "^2.1.0", + "del": "^4.1.1", + "make-dir": "^3.0.0", + "rimraf": "^2.5.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/dir-glob/readme.md b/node_modules/dir-glob/readme.md new file mode 100644 index 0000000..cb7313f --- /dev/null +++ b/node_modules/dir-glob/readme.md @@ -0,0 +1,76 @@ +# dir-glob [![Build Status](https://travis-ci.org/kevva/dir-glob.svg?branch=master)](https://travis-ci.org/kevva/dir-glob) + +> Convert directories to glob compatible strings + + +## Install + +``` +$ npm install dir-glob +``` + + +## Usage + +```js +const dirGlob = require('dir-glob'); + +(async () => { + console.log(await dirGlob(['index.js', 'test.js', 'fixtures'])); + //=> ['index.js', 'test.js', 'fixtures/**'] + + console.log(await dirGlob(['index.js', 'inner_folder'], {cwd: 'fixtures'})); + //=> ['index.js', 'inner_folder/**'] + + console.log(await dirGlob(['lib/**', 'fixtures'], { + files: ['test', 'unicorn'] + extensions: ['js'] + })); + //=> ['lib/**', 'fixtures/**/test.js', 'fixtures/**/unicorn.js'] + + console.log(await dirGlob(['lib/**', 'fixtures'], { + files: ['test', 'unicorn', '*.jsx'], + extensions: ['js', 'png'] + })); + //=> ['lib/**', 'fixtures/**/test.{js,png}', 'fixtures/**/unicorn.{js,png}', 'fixtures/**/*.jsx'] +})(); +``` + + +## API + +### dirGlob(input, options?) + +Returns a `Promise` with globs. + +### dirGlob.sync(input, options?) + +Returns a `string[]` with globs. + +#### input + +Type: `string | string[]` + +Paths. + +#### options + +Type: `object` + +##### extensions + +Type: `string[]` + +Append extensions to the end of your globs. + +##### files + +Type: `string[]` + +Only glob for certain files. + +##### cwd + +Type: `string[]` + +Test in specific directory. diff --git a/node_modules/electron-to-chromium/CHANGELOG.md b/node_modules/electron-to-chromium/CHANGELOG.md new file mode 100644 index 0000000..1669c34 --- /dev/null +++ b/node_modules/electron-to-chromium/CHANGELOG.md @@ -0,0 +1,14 @@ +v1.3.0 + * Additionally include chromium to electron mappings + +v1.2.0 + * versions and full-versions are now separately importable. + +v1.1.0 + * Both electronToChromium and electronToBrowserList now can accept strings as well as numbers. + +v1.0.1 + Update documentation + +v1.0.0 + Inititial release diff --git a/node_modules/electron-to-chromium/LICENSE b/node_modules/electron-to-chromium/LICENSE new file mode 100644 index 0000000..6c7b614 --- /dev/null +++ b/node_modules/electron-to-chromium/LICENSE @@ -0,0 +1,5 @@ +Copyright 2018 Kilian Valkhof + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/electron-to-chromium/README.md b/node_modules/electron-to-chromium/README.md new file mode 100644 index 0000000..a96ddf1 --- /dev/null +++ b/node_modules/electron-to-chromium/README.md @@ -0,0 +1,186 @@ +### Made by [@kilianvalkhof](https://twitter.com/kilianvalkhof) + +#### Other projects: + +- 💻 [Polypane](https://polypane.app) - Develop responsive websites and apps twice as fast on multiple screens at once +- 🖌️ [Superposition](https://superposition.design) - Kickstart your design system by extracting design tokens from your website +- 🗒️ [FromScratch](https://fromscratch.rocks) - A smart but simple autosaving scratchpad + +--- + +# Electron-to-Chromium [![npm](https://img.shields.io/npm/v/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![travis](https://img.shields.io/travis/Kilian/electron-to-chromium/master.svg)](https://travis-ci.org/Kilian/electron-to-chromium) [![npm-downloads](https://img.shields.io/npm/dm/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![codecov](https://codecov.io/gh/Kilian/electron-to-chromium/branch/master/graph/badge.svg)](https://codecov.io/gh/Kilian/electron-to-chromium)[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_shield) + +This repository provides a mapping of Electron versions to the Chromium version that it uses. + +This package is used in [Browserslist](https://github.com/ai/browserslist), so you can use e.g. `electron >= 1.4` in [Autoprefixer](https://github.com/postcss/autoprefixer), [Stylelint](https://github.com/stylelint/stylelint), [babel-preset-env](https://github.com/babel/babel-preset-env) and [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat). + +**Supported by:** + + + + + + +## Install +Install using `npm install electron-to-chromium`. + +## Usage +To include Electron-to-Chromium, require it: + +```js +var e2c = require('electron-to-chromium'); +``` + +### Properties +The Electron-to-Chromium object has 4 properties to use: + +#### `versions` +An object of key-value pairs with a _major_ Electron version as the key, and the corresponding major Chromium version as the value. + +```js +var versions = e2c.versions; +console.log(versions['1.4']); +// returns "53" +``` + +#### `fullVersions` +An object of key-value pairs with a Electron version as the key, and the corresponding full Chromium version as the value. + +```js +var versions = e2c.fullVersions; +console.log(versions['1.4.11']); +// returns "53.0.2785.143" +``` + +#### `chromiumVersions` +An object of key-value pairs with a _major_ Chromium version as the key, and the corresponding major Electron version as the value. + +```js +var versions = e2c.chromiumVersions; +console.log(versions['54']); +// returns "1.4" +``` + +#### `fullChromiumVersions` +An object of key-value pairs with a Chromium version as the key, and an array of the corresponding major Electron versions as the value. + +```js +var versions = e2c.fullChromiumVersions; +console.log(versions['54.0.2840.101']); +// returns ["1.5.1", "1.5.0"] +``` +### Functions + +#### `electronToChromium(query)` +Arguments: +* Query: string or number, required. A major or full Electron version. + +A function that returns the corresponding Chromium version for a given Electron function. Returns a string. + +If you provide it with a major Electron version, it will return a major Chromium version: + +```js +var chromeVersion = e2c.electronToChromium('1.4'); +// chromeVersion is "53" +``` + +If you provide it with a full Electron version, it will return the full Chromium version. + +```js +var chromeVersion = e2c.electronToChromium('1.4.11'); +// chromeVersion is "53.0.2785.143" +``` + +If a query does not match a Chromium version, it will return `undefined`. + +```js +var chromeVersion = e2c.electronToChromium('9000'); +// chromeVersion is undefined +``` + +#### `chromiumToElectron(query)` +Arguments: +* Query: string or number, required. A major or full Chromium version. + +Returns a string with the corresponding Electron version for a given Chromium query. + +If you provide it with a major Chromium version, it will return a major Electron version: + +```js +var electronVersion = e2c.chromiumToElectron('54'); +// electronVersion is "1.4" +``` + +If you provide it with a full Chrome version, it will return an array of full Electron versions. + +```js +var electronVersions = e2c.chromiumToElectron('56.0.2924.87'); +// electronVersions is ["1.6.3", "1.6.2", "1.6.1", "1.6.0"] +``` + +If a query does not match an Electron version, it will return `undefined`. + +```js +var electronVersion = e2c.chromiumToElectron('10'); +// electronVersion is undefined +``` + +#### `electronToBrowserList(query)` **DEPRECATED** +Arguments: +* Query: string or number, required. A major Electron version. + +_**Deprecated**: Browserlist already includes electron-to-chromium._ + +A function that returns a [Browserslist](https://github.com/ai/browserslist) query that matches the given major Electron version. Returns a string. + +If you provide it with a major Electron version, it will return a Browserlist query string that matches the Chromium capabilities: + +```js +var query = e2c.electronToBrowserList('1.4'); +// query is "Chrome >= 53" +``` + +If a query does not match a Chromium version, it will return `undefined`. + +```js +var query = e2c.electronToBrowserList('9000'); +// query is undefined +``` + +### Importing just versions, fullVersions, chromiumVersions and fullChromiumVersions +All lists can be imported on their own, if file size is a concern. + +#### `versions` + +```js +var versions = require('electron-to-chromium/versions'); +``` + +#### `fullVersions` + +```js +var fullVersions = require('electron-to-chromium/full-versions'); +``` + +#### `chromiumVersions` + +```js +var chromiumVersions = require('electron-to-chromium/chromium-versions'); +``` + +#### `fullChromiumVersions` + +```js +var fullChromiumVersions = require('electron-to-chromium/full-chromium-versions'); +``` + +## Updating +This package will be updated with each new Electron release. + +To update the list, run `npm run build.js`. Requires internet access as it downloads from the canonical list of Electron versions. + +To verify correct behaviour, run `npm test`. + + +## License +[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_large) diff --git a/node_modules/electron-to-chromium/chromium-versions.js b/node_modules/electron-to-chromium/chromium-versions.js new file mode 100644 index 0000000..e735e2e --- /dev/null +++ b/node_modules/electron-to-chromium/chromium-versions.js @@ -0,0 +1,56 @@ +module.exports = { + "39": "0.20", + "40": "0.21", + "41": "0.21", + "42": "0.25", + "43": "0.27", + "44": "0.30", + "45": "0.31", + "47": "0.36", + "49": "0.37", + "50": "1.1", + "51": "1.2", + "52": "1.3", + "53": "1.4", + "54": "1.4", + "56": "1.6", + "58": "1.7", + "59": "1.8", + "61": "2.0", + "66": "3.0", + "69": "4.0", + "72": "5.0", + "73": "5.0", + "76": "6.0", + "78": "7.0", + "79": "8.0", + "80": "8.0", + "82": "9.0", + "83": "9.0", + "84": "10.0", + "85": "10.0", + "86": "11.0", + "87": "11.0", + "89": "12.0", + "90": "13.0", + "91": "13.0", + "92": "14.0", + "93": "14.0", + "94": "15.0", + "95": "16.0", + "96": "16.0", + "98": "17.0", + "99": "18.0", + "100": "18.0", + "102": "19.0", + "103": "20.0", + "104": "20.0", + "105": "21.0", + "106": "21.0", + "107": "22.0", + "108": "22.0", + "110": "23.0", + "111": "24.0", + "112": "24.0", + "114": "25.0" +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/chromium-versions.json b/node_modules/electron-to-chromium/chromium-versions.json new file mode 100644 index 0000000..76b2b02 --- /dev/null +++ b/node_modules/electron-to-chromium/chromium-versions.json @@ -0,0 +1 @@ +{"39":"0.20","40":"0.21","41":"0.21","42":"0.25","43":"0.27","44":"0.30","45":"0.31","47":"0.36","49":"0.37","50":"1.1","51":"1.2","52":"1.3","53":"1.4","54":"1.4","56":"1.6","58":"1.7","59":"1.8","61":"2.0","66":"3.0","69":"4.0","72":"5.0","73":"5.0","76":"6.0","78":"7.0","79":"8.0","80":"8.0","82":"9.0","83":"9.0","84":"10.0","85":"10.0","86":"11.0","87":"11.0","89":"12.0","90":"13.0","91":"13.0","92":"14.0","93":"14.0","94":"15.0","95":"16.0","96":"16.0","98":"17.0","99":"18.0","100":"18.0","102":"19.0","103":"20.0","104":"20.0","105":"21.0","106":"21.0","107":"22.0","108":"22.0","110":"23.0","111":"24.0","112":"24.0","114":"25.0"} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-chromium-versions.js b/node_modules/electron-to-chromium/full-chromium-versions.js new file mode 100644 index 0000000..d92d2da --- /dev/null +++ b/node_modules/electron-to-chromium/full-chromium-versions.js @@ -0,0 +1,2589 @@ +module.exports = { + "39.0.2171.65": [ + "0.20.0", + "0.20.1", + "0.20.2", + "0.20.3", + "0.20.4", + "0.20.5", + "0.20.6", + "0.20.7", + "0.20.8" + ], + "40.0.2214.91": [ + "0.21.0", + "0.21.1", + "0.21.2" + ], + "41.0.2272.76": [ + "0.21.3", + "0.22.1", + "0.22.2", + "0.22.3", + "0.23.0", + "0.24.0" + ], + "42.0.2311.107": [ + "0.25.0", + "0.25.1", + "0.25.2", + "0.25.3", + "0.26.0", + "0.26.1", + "0.27.0", + "0.27.1" + ], + "43.0.2357.65": [ + "0.27.2", + "0.27.3", + "0.28.0", + "0.28.1", + "0.28.2", + "0.28.3", + "0.29.1", + "0.29.2" + ], + "44.0.2403.125": [ + "0.30.4", + "0.31.0" + ], + "45.0.2454.85": [ + "0.31.2", + "0.32.2", + "0.32.3", + "0.33.0", + "0.33.1", + "0.33.2", + "0.33.3", + "0.33.4", + "0.33.6", + "0.33.7", + "0.33.8", + "0.33.9", + "0.34.0", + "0.34.1", + "0.34.2", + "0.34.3", + "0.34.4", + "0.35.1", + "0.35.2", + "0.35.3", + "0.35.4", + "0.35.5" + ], + "47.0.2526.73": [ + "0.36.0", + "0.36.2", + "0.36.3", + "0.36.4" + ], + "47.0.2526.110": [ + "0.36.5", + "0.36.6", + "0.36.7", + "0.36.8", + "0.36.9", + "0.36.10", + "0.36.11", + "0.36.12" + ], + "49.0.2623.75": [ + "0.37.0", + "0.37.1", + "0.37.3", + "0.37.4", + "0.37.5", + "0.37.6", + "0.37.7", + "0.37.8", + "1.0.0", + "1.0.1", + "1.0.2" + ], + "50.0.2661.102": [ + "1.1.0", + "1.1.1", + "1.1.2", + "1.1.3" + ], + "51.0.2704.63": [ + "1.2.0", + "1.2.1" + ], + "51.0.2704.84": [ + "1.2.2", + "1.2.3" + ], + "51.0.2704.103": [ + "1.2.4", + "1.2.5" + ], + "51.0.2704.106": [ + "1.2.6", + "1.2.7", + "1.2.8" + ], + "52.0.2743.82": [ + "1.3.0", + "1.3.1", + "1.3.2", + "1.3.3", + "1.3.4", + "1.3.5", + "1.3.6", + "1.3.7", + "1.3.9", + "1.3.10", + "1.3.13", + "1.3.14", + "1.3.15" + ], + "53.0.2785.113": [ + "1.4.0", + "1.4.1", + "1.4.2", + "1.4.3", + "1.4.4", + "1.4.5" + ], + "53.0.2785.143": [ + "1.4.6", + "1.4.7", + "1.4.8", + "1.4.10", + "1.4.11", + "1.4.13", + "1.4.14", + "1.4.15", + "1.4.16" + ], + "54.0.2840.51": [ + "1.4.12" + ], + "54.0.2840.101": [ + "1.5.0", + "1.5.1" + ], + "56.0.2924.87": [ + "1.6.0", + "1.6.1", + "1.6.2", + "1.6.3", + "1.6.4", + "1.6.5", + "1.6.6", + "1.6.7", + "1.6.8", + "1.6.9", + "1.6.10", + "1.6.11", + "1.6.12", + "1.6.13", + "1.6.14", + "1.6.15", + "1.6.16", + "1.6.17", + "1.6.18" + ], + "58.0.3029.110": [ + "1.7.0", + "1.7.1", + "1.7.2", + "1.7.3", + "1.7.4", + "1.7.5", + "1.7.6", + "1.7.7", + "1.7.8", + "1.7.9", + "1.7.10", + "1.7.11", + "1.7.12", + "1.7.13", + "1.7.14", + "1.7.15", + "1.7.16" + ], + "59.0.3071.115": [ + "1.8.0", + "1.8.1", + "1.8.2-beta.1", + "1.8.2-beta.2", + "1.8.2-beta.3", + "1.8.2-beta.4", + "1.8.2-beta.5", + "1.8.2", + "1.8.3", + "1.8.4", + "1.8.5", + "1.8.6", + "1.8.7", + "1.8.8" + ], + "61.0.3163.100": [ + "2.0.0-beta.1", + "2.0.0-beta.2", + "2.0.0-beta.3", + "2.0.0-beta.4", + "2.0.0-beta.5", + "2.0.0-beta.6", + "2.0.0-beta.7", + "2.0.0-beta.8", + "2.0.0", + "2.0.1", + "2.0.2", + "2.0.3", + "2.0.4", + "2.0.5", + "2.0.6", + "2.0.7", + "2.0.8-nightly.20180819", + "2.0.8-nightly.20180820", + "2.0.8", + "2.0.9", + "2.0.10", + "2.0.11", + "2.0.12", + "2.0.13", + "2.0.14", + "2.0.15", + "2.0.16", + "2.0.17", + "2.0.18", + "2.1.0-unsupported.20180809" + ], + "66.0.3359.181": [ + "3.0.0-beta.1", + "3.0.0-beta.2", + "3.0.0-beta.3", + "3.0.0-beta.4", + "3.0.0-beta.5", + "3.0.0-beta.6", + "3.0.0-beta.7", + "3.0.0-beta.8", + "3.0.0-beta.9", + "3.0.0-beta.10", + "3.0.0-beta.11", + "3.0.0-beta.12", + "3.0.0-beta.13", + "3.0.0-nightly.20180818", + "3.0.0-nightly.20180821", + "3.0.0-nightly.20180823", + "3.0.0-nightly.20180904", + "3.0.0", + "3.0.1", + "3.0.2", + "3.0.3", + "3.0.4", + "3.0.5", + "3.0.6", + "3.0.7", + "3.0.8", + "3.0.9", + "3.0.10", + "3.0.11", + "3.0.12", + "3.0.13", + "3.0.14", + "3.0.15", + "3.0.16", + "3.1.0-beta.1", + "3.1.0-beta.2", + "3.1.0-beta.3", + "3.1.0-beta.4", + "3.1.0-beta.5", + "3.1.0", + "3.1.1", + "3.1.2", + "3.1.3", + "3.1.4", + "3.1.5", + "3.1.6", + "3.1.7", + "3.1.8", + "3.1.9", + "3.1.10", + "3.1.11", + "3.1.12", + "3.1.13", + "4.0.0-nightly.20180817", + "4.0.0-nightly.20180819", + "4.0.0-nightly.20180821" + ], + "69.0.3497.106": [ + "4.0.0-beta.1", + "4.0.0-beta.2", + "4.0.0-beta.3", + "4.0.0-beta.4", + "4.0.0-beta.5", + "4.0.0-beta.6", + "4.0.0-beta.7", + "4.0.0-beta.8", + "4.0.0-beta.9", + "4.0.0-beta.10", + "4.0.0-beta.11", + "4.0.0-nightly.20181010", + "4.0.0", + "4.0.1", + "4.0.2", + "4.0.3", + "4.0.4", + "4.0.5", + "4.0.6" + ], + "67.0.3396.99": [ + "4.0.0-nightly.20180929" + ], + "68.0.3440.128": [ + "4.0.0-nightly.20181006" + ], + "69.0.3497.128": [ + "4.0.7", + "4.0.8", + "4.1.0", + "4.1.1", + "4.1.2", + "4.1.3", + "4.1.4", + "4.1.5", + "4.2.0", + "4.2.1", + "4.2.2", + "4.2.3", + "4.2.4", + "4.2.5", + "4.2.6", + "4.2.7", + "4.2.8", + "4.2.9", + "4.2.10", + "4.2.11", + "4.2.12" + ], + "72.0.3626.52": [ + "5.0.0-beta.1", + "5.0.0-beta.2", + "6.0.0-nightly.20190123" + ], + "73.0.3683.27": [ + "5.0.0-beta.3" + ], + "73.0.3683.54": [ + "5.0.0-beta.4" + ], + "73.0.3683.61": [ + "5.0.0-beta.5" + ], + "73.0.3683.84": [ + "5.0.0-beta.6" + ], + "73.0.3683.94": [ + "5.0.0-beta.7" + ], + "73.0.3683.104": [ + "5.0.0-beta.8" + ], + "73.0.3683.117": [ + "5.0.0-beta.9" + ], + "70.0.3538.110": [ + "5.0.0-nightly.20190107" + ], + "71.0.3578.98": [ + "5.0.0-nightly.20190121", + "5.0.0-nightly.20190122" + ], + "73.0.3683.119": [ + "5.0.0" + ], + "73.0.3683.121": [ + "5.0.1", + "5.0.2", + "5.0.3", + "5.0.4", + "5.0.5", + "5.0.6", + "5.0.7", + "5.0.8", + "5.0.9", + "5.0.10", + "5.0.11", + "5.0.12", + "5.0.13" + ], + "76.0.3774.1": [ + "6.0.0-beta.1" + ], + "76.0.3783.1": [ + "6.0.0-beta.2", + "6.0.0-beta.3", + "6.0.0-beta.4" + ], + "76.0.3805.4": [ + "6.0.0-beta.5" + ], + "76.0.3809.3": [ + "6.0.0-beta.6" + ], + "76.0.3809.22": [ + "6.0.0-beta.7" + ], + "76.0.3809.26": [ + "6.0.0-beta.8", + "6.0.0-beta.9" + ], + "76.0.3809.37": [ + "6.0.0-beta.10" + ], + "76.0.3809.42": [ + "6.0.0-beta.11" + ], + "76.0.3809.54": [ + "6.0.0-beta.12" + ], + "76.0.3809.60": [ + "6.0.0-beta.13" + ], + "76.0.3809.68": [ + "6.0.0-beta.14" + ], + "76.0.3809.74": [ + "6.0.0-beta.15" + ], + "72.0.3626.107": [ + "6.0.0-nightly.20190212" + ], + "72.0.3626.110": [ + "6.0.0-nightly.20190213" + ], + "74.0.3724.8": [ + "6.0.0-nightly.20190311" + ], + "76.0.3809.88": [ + "6.0.0" + ], + "76.0.3809.102": [ + "6.0.1" + ], + "76.0.3809.110": [ + "6.0.2" + ], + "76.0.3809.126": [ + "6.0.3" + ], + "76.0.3809.131": [ + "6.0.4" + ], + "76.0.3809.136": [ + "6.0.5" + ], + "76.0.3809.138": [ + "6.0.6" + ], + "76.0.3809.139": [ + "6.0.7" + ], + "76.0.3809.146": [ + "6.0.8", + "6.0.9", + "6.0.10", + "6.0.11", + "6.0.12", + "6.1.0", + "6.1.1", + "6.1.2", + "6.1.3", + "6.1.4", + "6.1.5", + "6.1.6", + "6.1.7", + "6.1.8", + "6.1.9", + "6.1.10", + "6.1.11", + "6.1.12" + ], + "78.0.3866.0": [ + "7.0.0-beta.1", + "7.0.0-beta.2", + "7.0.0-beta.3", + "7.0.0-nightly.20190727", + "7.0.0-nightly.20190728", + "7.0.0-nightly.20190729", + "7.0.0-nightly.20190730", + "7.0.0-nightly.20190731", + "8.0.0-nightly.20190801", + "8.0.0-nightly.20190802" + ], + "78.0.3896.6": [ + "7.0.0-beta.4" + ], + "78.0.3905.1": [ + "7.0.0-beta.5", + "7.0.0-beta.6", + "7.0.0-beta.7", + "7.0.0" + ], + "76.0.3784.0": [ + "7.0.0-nightly.20190521" + ], + "76.0.3806.0": [ + "7.0.0-nightly.20190529", + "7.0.0-nightly.20190530", + "7.0.0-nightly.20190531", + "7.0.0-nightly.20190602", + "7.0.0-nightly.20190603" + ], + "77.0.3814.0": [ + "7.0.0-nightly.20190604" + ], + "77.0.3815.0": [ + "7.0.0-nightly.20190605", + "7.0.0-nightly.20190606", + "7.0.0-nightly.20190607", + "7.0.0-nightly.20190608", + "7.0.0-nightly.20190609", + "7.0.0-nightly.20190611", + "7.0.0-nightly.20190612", + "7.0.0-nightly.20190613", + "7.0.0-nightly.20190615", + "7.0.0-nightly.20190616", + "7.0.0-nightly.20190618", + "7.0.0-nightly.20190619", + "7.0.0-nightly.20190622", + "7.0.0-nightly.20190623", + "7.0.0-nightly.20190624", + "7.0.0-nightly.20190627", + "7.0.0-nightly.20190629", + "7.0.0-nightly.20190630", + "7.0.0-nightly.20190701", + "7.0.0-nightly.20190702" + ], + "77.0.3843.0": [ + "7.0.0-nightly.20190704", + "7.0.0-nightly.20190705" + ], + "77.0.3848.0": [ + "7.0.0-nightly.20190719", + "7.0.0-nightly.20190720", + "7.0.0-nightly.20190721" + ], + "77.0.3864.0": [ + "7.0.0-nightly.20190726" + ], + "78.0.3904.92": [ + "7.0.1" + ], + "78.0.3904.94": [ + "7.1.0" + ], + "78.0.3904.99": [ + "7.1.1" + ], + "78.0.3904.113": [ + "7.1.2" + ], + "78.0.3904.126": [ + "7.1.3" + ], + "78.0.3904.130": [ + "7.1.4", + "7.1.5", + "7.1.6", + "7.1.7", + "7.1.8", + "7.1.9", + "7.1.10", + "7.1.11", + "7.1.12", + "7.1.13", + "7.1.14", + "7.2.0", + "7.2.1", + "7.2.2", + "7.2.3", + "7.2.4", + "7.3.0", + "7.3.1", + "7.3.2", + "7.3.3" + ], + "79.0.3931.0": [ + "8.0.0-beta.1", + "8.0.0-beta.2", + "8.0.0-nightly.20191019", + "8.0.0-nightly.20191020", + "8.0.0-nightly.20191021", + "8.0.0-nightly.20191023" + ], + "80.0.3955.0": [ + "8.0.0-beta.3", + "8.0.0-beta.4" + ], + "80.0.3987.14": [ + "8.0.0-beta.5" + ], + "80.0.3987.51": [ + "8.0.0-beta.6" + ], + "80.0.3987.59": [ + "8.0.0-beta.7" + ], + "80.0.3987.75": [ + "8.0.0-beta.8", + "8.0.0-beta.9" + ], + "78.0.3871.0": [ + "8.0.0-nightly.20190803", + "8.0.0-nightly.20190806", + "8.0.0-nightly.20190807", + "8.0.0-nightly.20190808", + "8.0.0-nightly.20190809", + "8.0.0-nightly.20190810", + "8.0.0-nightly.20190811", + "8.0.0-nightly.20190812", + "8.0.0-nightly.20190813", + "8.0.0-nightly.20190814", + "8.0.0-nightly.20190815" + ], + "78.0.3881.0": [ + "8.0.0-nightly.20190816", + "8.0.0-nightly.20190817", + "8.0.0-nightly.20190818", + "8.0.0-nightly.20190819", + "8.0.0-nightly.20190820" + ], + "78.0.3892.0": [ + "8.0.0-nightly.20190824", + "8.0.0-nightly.20190825", + "8.0.0-nightly.20190827", + "8.0.0-nightly.20190828", + "8.0.0-nightly.20190830", + "8.0.0-nightly.20190901", + "8.0.0-nightly.20190902", + "8.0.0-nightly.20190907", + "8.0.0-nightly.20190909", + "8.0.0-nightly.20190910", + "8.0.0-nightly.20190911", + "8.0.0-nightly.20190912", + "8.0.0-nightly.20190913", + "8.0.0-nightly.20190914", + "8.0.0-nightly.20190915", + "8.0.0-nightly.20190917" + ], + "79.0.3915.0": [ + "8.0.0-nightly.20190919", + "8.0.0-nightly.20190920" + ], + "79.0.3919.0": [ + "8.0.0-nightly.20190922", + "8.0.0-nightly.20190923", + "8.0.0-nightly.20190924", + "8.0.0-nightly.20190926", + "8.0.0-nightly.20190928", + "8.0.0-nightly.20190929", + "8.0.0-nightly.20190930", + "8.0.0-nightly.20191001", + "8.0.0-nightly.20191004", + "8.0.0-nightly.20191005", + "8.0.0-nightly.20191006", + "8.0.0-nightly.20191009", + "8.0.0-nightly.20191011", + "8.0.0-nightly.20191012", + "8.0.0-nightly.20191017" + ], + "80.0.3952.0": [ + "8.0.0-nightly.20191101", + "8.0.0-nightly.20191103", + "8.0.0-nightly.20191105" + ], + "80.0.3987.86": [ + "8.0.0", + "8.0.1", + "8.0.2" + ], + "80.0.3987.134": [ + "8.0.3" + ], + "80.0.3987.137": [ + "8.1.0" + ], + "80.0.3987.141": [ + "8.1.1" + ], + "80.0.3987.158": [ + "8.2.0" + ], + "80.0.3987.163": [ + "8.2.1", + "8.2.2", + "8.2.3", + "8.5.3", + "8.5.4", + "8.5.5" + ], + "80.0.3987.165": [ + "8.2.4", + "8.2.5", + "8.3.0", + "8.3.1", + "8.3.2", + "8.3.3", + "8.3.4", + "8.4.0", + "8.4.1", + "8.5.0", + "8.5.1", + "8.5.2" + ], + "82.0.4048.0": [ + "9.0.0-beta.1", + "9.0.0-beta.2", + "9.0.0-beta.3", + "9.0.0-beta.4", + "9.0.0-beta.5" + ], + "82.0.4058.2": [ + "9.0.0-beta.6", + "9.0.0-beta.7", + "9.0.0-beta.9" + ], + "82.0.4085.10": [ + "9.0.0-beta.10" + ], + "82.0.4085.14": [ + "9.0.0-beta.11", + "9.0.0-beta.12", + "9.0.0-beta.13" + ], + "82.0.4085.27": [ + "9.0.0-beta.14" + ], + "83.0.4102.3": [ + "9.0.0-beta.15", + "9.0.0-beta.16" + ], + "83.0.4103.14": [ + "9.0.0-beta.17" + ], + "83.0.4103.16": [ + "9.0.0-beta.18" + ], + "83.0.4103.24": [ + "9.0.0-beta.19" + ], + "83.0.4103.26": [ + "9.0.0-beta.20", + "9.0.0-beta.21" + ], + "83.0.4103.34": [ + "9.0.0-beta.22" + ], + "83.0.4103.44": [ + "9.0.0-beta.23" + ], + "83.0.4103.45": [ + "9.0.0-beta.24" + ], + "80.0.3954.0": [ + "9.0.0-nightly.20191121", + "9.0.0-nightly.20191122", + "9.0.0-nightly.20191123", + "9.0.0-nightly.20191124", + "9.0.0-nightly.20191126", + "9.0.0-nightly.20191128", + "9.0.0-nightly.20191129", + "9.0.0-nightly.20191130", + "9.0.0-nightly.20191201", + "9.0.0-nightly.20191202", + "9.0.0-nightly.20191203", + "9.0.0-nightly.20191204", + "9.0.0-nightly.20191205", + "9.0.0-nightly.20191210" + ], + "81.0.3994.0": [ + "9.0.0-nightly.20191220", + "9.0.0-nightly.20191221", + "9.0.0-nightly.20191222", + "9.0.0-nightly.20191223", + "9.0.0-nightly.20191224", + "9.0.0-nightly.20191225", + "9.0.0-nightly.20191226", + "9.0.0-nightly.20191228", + "9.0.0-nightly.20191229", + "9.0.0-nightly.20191230", + "9.0.0-nightly.20191231", + "9.0.0-nightly.20200101", + "9.0.0-nightly.20200103", + "9.0.0-nightly.20200104", + "9.0.0-nightly.20200105", + "9.0.0-nightly.20200106", + "9.0.0-nightly.20200108", + "9.0.0-nightly.20200109", + "9.0.0-nightly.20200110", + "9.0.0-nightly.20200111", + "9.0.0-nightly.20200113", + "9.0.0-nightly.20200115", + "9.0.0-nightly.20200116", + "9.0.0-nightly.20200117" + ], + "81.0.4030.0": [ + "9.0.0-nightly.20200119", + "9.0.0-nightly.20200121" + ], + "83.0.4103.64": [ + "9.0.0" + ], + "83.0.4103.94": [ + "9.0.1", + "9.0.2" + ], + "83.0.4103.100": [ + "9.0.3" + ], + "83.0.4103.104": [ + "9.0.4" + ], + "83.0.4103.119": [ + "9.0.5" + ], + "83.0.4103.122": [ + "9.1.0", + "9.1.1", + "9.1.2", + "9.2.0", + "9.2.1", + "9.3.0", + "9.3.1", + "9.3.2", + "9.3.3", + "9.3.4", + "9.3.5", + "9.4.0", + "9.4.1", + "9.4.2", + "9.4.3", + "9.4.4" + ], + "84.0.4129.0": [ + "10.0.0-beta.1", + "10.0.0-beta.2", + "10.0.0-nightly.20200501", + "10.0.0-nightly.20200504", + "10.0.0-nightly.20200505", + "10.0.0-nightly.20200506", + "10.0.0-nightly.20200507", + "10.0.0-nightly.20200508", + "10.0.0-nightly.20200511", + "10.0.0-nightly.20200512", + "10.0.0-nightly.20200513", + "10.0.0-nightly.20200514", + "10.0.0-nightly.20200515", + "10.0.0-nightly.20200518", + "10.0.0-nightly.20200519", + "10.0.0-nightly.20200520", + "10.0.0-nightly.20200521", + "11.0.0-nightly.20200525", + "11.0.0-nightly.20200526" + ], + "85.0.4161.2": [ + "10.0.0-beta.3", + "10.0.0-beta.4" + ], + "85.0.4181.1": [ + "10.0.0-beta.8", + "10.0.0-beta.9" + ], + "85.0.4183.19": [ + "10.0.0-beta.10" + ], + "85.0.4183.20": [ + "10.0.0-beta.11" + ], + "85.0.4183.26": [ + "10.0.0-beta.12" + ], + "85.0.4183.39": [ + "10.0.0-beta.13", + "10.0.0-beta.14", + "10.0.0-beta.15", + "10.0.0-beta.17", + "10.0.0-beta.19", + "10.0.0-beta.20", + "10.0.0-beta.21" + ], + "85.0.4183.70": [ + "10.0.0-beta.23" + ], + "85.0.4183.78": [ + "10.0.0-beta.24" + ], + "85.0.4183.80": [ + "10.0.0-beta.25" + ], + "82.0.4050.0": [ + "10.0.0-nightly.20200209", + "10.0.0-nightly.20200210", + "10.0.0-nightly.20200211", + "10.0.0-nightly.20200216", + "10.0.0-nightly.20200217", + "10.0.0-nightly.20200218", + "10.0.0-nightly.20200221", + "10.0.0-nightly.20200222", + "10.0.0-nightly.20200223", + "10.0.0-nightly.20200226", + "10.0.0-nightly.20200303" + ], + "82.0.4076.0": [ + "10.0.0-nightly.20200304", + "10.0.0-nightly.20200305", + "10.0.0-nightly.20200306", + "10.0.0-nightly.20200309", + "10.0.0-nightly.20200310" + ], + "82.0.4083.0": [ + "10.0.0-nightly.20200311" + ], + "83.0.4086.0": [ + "10.0.0-nightly.20200316" + ], + "83.0.4087.0": [ + "10.0.0-nightly.20200317", + "10.0.0-nightly.20200318", + "10.0.0-nightly.20200320", + "10.0.0-nightly.20200323", + "10.0.0-nightly.20200324", + "10.0.0-nightly.20200325", + "10.0.0-nightly.20200326", + "10.0.0-nightly.20200327", + "10.0.0-nightly.20200330", + "10.0.0-nightly.20200331", + "10.0.0-nightly.20200401", + "10.0.0-nightly.20200402", + "10.0.0-nightly.20200403", + "10.0.0-nightly.20200406" + ], + "83.0.4095.0": [ + "10.0.0-nightly.20200408", + "10.0.0-nightly.20200410", + "10.0.0-nightly.20200413" + ], + "84.0.4114.0": [ + "10.0.0-nightly.20200414" + ], + "84.0.4115.0": [ + "10.0.0-nightly.20200415", + "10.0.0-nightly.20200416", + "10.0.0-nightly.20200417" + ], + "84.0.4121.0": [ + "10.0.0-nightly.20200422", + "10.0.0-nightly.20200423" + ], + "84.0.4125.0": [ + "10.0.0-nightly.20200427", + "10.0.0-nightly.20200428", + "10.0.0-nightly.20200429", + "10.0.0-nightly.20200430" + ], + "85.0.4183.84": [ + "10.0.0" + ], + "85.0.4183.86": [ + "10.0.1" + ], + "85.0.4183.87": [ + "10.1.0" + ], + "85.0.4183.93": [ + "10.1.1" + ], + "85.0.4183.98": [ + "10.1.2" + ], + "85.0.4183.121": [ + "10.1.3", + "10.1.4", + "10.1.5", + "10.1.6", + "10.1.7", + "10.2.0", + "10.3.0", + "10.3.1", + "10.3.2", + "10.4.0", + "10.4.1", + "10.4.2", + "10.4.3", + "10.4.4", + "10.4.5", + "10.4.6", + "10.4.7" + ], + "86.0.4234.0": [ + "11.0.0-beta.1", + "11.0.0-beta.3", + "11.0.0-beta.4", + "11.0.0-beta.5", + "11.0.0-beta.6", + "11.0.0-beta.7", + "11.0.0-nightly.20200822", + "11.0.0-nightly.20200824", + "11.0.0-nightly.20200825", + "11.0.0-nightly.20200826", + "12.0.0-nightly.20200827", + "12.0.0-nightly.20200831", + "12.0.0-nightly.20200902", + "12.0.0-nightly.20200903", + "12.0.0-nightly.20200907", + "12.0.0-nightly.20200910", + "12.0.0-nightly.20200911", + "12.0.0-nightly.20200914" + ], + "87.0.4251.1": [ + "11.0.0-beta.8", + "11.0.0-beta.9", + "11.0.0-beta.11" + ], + "87.0.4280.11": [ + "11.0.0-beta.12", + "11.0.0-beta.13" + ], + "87.0.4280.27": [ + "11.0.0-beta.16", + "11.0.0-beta.17", + "11.0.0-beta.18", + "11.0.0-beta.19" + ], + "87.0.4280.40": [ + "11.0.0-beta.20" + ], + "87.0.4280.47": [ + "11.0.0-beta.22", + "11.0.0-beta.23" + ], + "85.0.4156.0": [ + "11.0.0-nightly.20200529" + ], + "85.0.4162.0": [ + "11.0.0-nightly.20200602", + "11.0.0-nightly.20200603", + "11.0.0-nightly.20200604", + "11.0.0-nightly.20200609", + "11.0.0-nightly.20200610", + "11.0.0-nightly.20200611", + "11.0.0-nightly.20200615", + "11.0.0-nightly.20200616", + "11.0.0-nightly.20200617", + "11.0.0-nightly.20200618", + "11.0.0-nightly.20200619" + ], + "85.0.4179.0": [ + "11.0.0-nightly.20200701", + "11.0.0-nightly.20200702", + "11.0.0-nightly.20200703", + "11.0.0-nightly.20200706", + "11.0.0-nightly.20200707", + "11.0.0-nightly.20200708", + "11.0.0-nightly.20200709" + ], + "86.0.4203.0": [ + "11.0.0-nightly.20200716", + "11.0.0-nightly.20200717", + "11.0.0-nightly.20200720", + "11.0.0-nightly.20200721" + ], + "86.0.4209.0": [ + "11.0.0-nightly.20200723", + "11.0.0-nightly.20200724", + "11.0.0-nightly.20200729", + "11.0.0-nightly.20200730", + "11.0.0-nightly.20200731", + "11.0.0-nightly.20200803", + "11.0.0-nightly.20200804", + "11.0.0-nightly.20200805", + "11.0.0-nightly.20200811", + "11.0.0-nightly.20200812" + ], + "87.0.4280.60": [ + "11.0.0", + "11.0.1" + ], + "87.0.4280.67": [ + "11.0.2", + "11.0.3", + "11.0.4" + ], + "87.0.4280.88": [ + "11.0.5", + "11.1.0", + "11.1.1" + ], + "87.0.4280.141": [ + "11.2.0", + "11.2.1", + "11.2.2", + "11.2.3", + "11.3.0", + "11.4.0", + "11.4.1", + "11.4.2", + "11.4.3", + "11.4.4", + "11.4.5", + "11.4.6", + "11.4.7", + "11.4.8", + "11.4.9", + "11.4.10", + "11.4.11", + "11.4.12", + "11.5.0" + ], + "89.0.4328.0": [ + "12.0.0-beta.1", + "12.0.0-beta.3", + "12.0.0-beta.4", + "12.0.0-beta.5", + "12.0.0-beta.6", + "12.0.0-beta.7", + "12.0.0-beta.8", + "12.0.0-beta.9", + "12.0.0-beta.10", + "12.0.0-beta.11", + "12.0.0-beta.12", + "12.0.0-beta.14", + "13.0.0-nightly.20201119", + "13.0.0-nightly.20201123", + "13.0.0-nightly.20201124", + "13.0.0-nightly.20201126", + "13.0.0-nightly.20201127", + "13.0.0-nightly.20201130", + "13.0.0-nightly.20201201", + "13.0.0-nightly.20201202", + "13.0.0-nightly.20201203", + "13.0.0-nightly.20201204", + "13.0.0-nightly.20201207", + "13.0.0-nightly.20201208", + "13.0.0-nightly.20201209", + "13.0.0-nightly.20201210", + "13.0.0-nightly.20201211", + "13.0.0-nightly.20201214" + ], + "89.0.4348.1": [ + "12.0.0-beta.16", + "12.0.0-beta.18", + "12.0.0-beta.19", + "12.0.0-beta.20" + ], + "89.0.4388.2": [ + "12.0.0-beta.21", + "12.0.0-beta.22", + "12.0.0-beta.23", + "12.0.0-beta.24", + "12.0.0-beta.25", + "12.0.0-beta.26" + ], + "89.0.4389.23": [ + "12.0.0-beta.27", + "12.0.0-beta.28", + "12.0.0-beta.29" + ], + "89.0.4389.58": [ + "12.0.0-beta.30", + "12.0.0-beta.31" + ], + "87.0.4268.0": [ + "12.0.0-nightly.20201002", + "12.0.0-nightly.20201007", + "12.0.0-nightly.20201009", + "12.0.0-nightly.20201012", + "12.0.0-nightly.20201013", + "12.0.0-nightly.20201014", + "12.0.0-nightly.20201015" + ], + "88.0.4292.0": [ + "12.0.0-nightly.20201023", + "12.0.0-nightly.20201026" + ], + "88.0.4306.0": [ + "12.0.0-nightly.20201030", + "12.0.0-nightly.20201102", + "12.0.0-nightly.20201103", + "12.0.0-nightly.20201104", + "12.0.0-nightly.20201105", + "12.0.0-nightly.20201106", + "12.0.0-nightly.20201111", + "12.0.0-nightly.20201112" + ], + "88.0.4324.0": [ + "12.0.0-nightly.20201116" + ], + "89.0.4389.69": [ + "12.0.0" + ], + "89.0.4389.82": [ + "12.0.1" + ], + "89.0.4389.90": [ + "12.0.2" + ], + "89.0.4389.114": [ + "12.0.3", + "12.0.4" + ], + "89.0.4389.128": [ + "12.0.5", + "12.0.6", + "12.0.7", + "12.0.8", + "12.0.9", + "12.0.10", + "12.0.11", + "12.0.12", + "12.0.13", + "12.0.14", + "12.0.15", + "12.0.16", + "12.0.17", + "12.0.18", + "12.1.0", + "12.1.1", + "12.1.2", + "12.2.0", + "12.2.1", + "12.2.2", + "12.2.3" + ], + "90.0.4402.0": [ + "13.0.0-beta.2", + "13.0.0-beta.3", + "13.0.0-nightly.20210210", + "13.0.0-nightly.20210211", + "13.0.0-nightly.20210212", + "13.0.0-nightly.20210216", + "13.0.0-nightly.20210217", + "13.0.0-nightly.20210218", + "13.0.0-nightly.20210219", + "13.0.0-nightly.20210222", + "13.0.0-nightly.20210225", + "13.0.0-nightly.20210226", + "13.0.0-nightly.20210301", + "13.0.0-nightly.20210302", + "13.0.0-nightly.20210303", + "14.0.0-nightly.20210304" + ], + "90.0.4415.0": [ + "13.0.0-beta.4", + "13.0.0-beta.5", + "13.0.0-beta.6", + "13.0.0-beta.7", + "13.0.0-beta.8", + "13.0.0-beta.9", + "13.0.0-beta.10", + "13.0.0-beta.11", + "13.0.0-beta.12", + "13.0.0-beta.13", + "14.0.0-nightly.20210305", + "14.0.0-nightly.20210308", + "14.0.0-nightly.20210309", + "14.0.0-nightly.20210311", + "14.0.0-nightly.20210315", + "14.0.0-nightly.20210316", + "14.0.0-nightly.20210317", + "14.0.0-nightly.20210318", + "14.0.0-nightly.20210319", + "14.0.0-nightly.20210323", + "14.0.0-nightly.20210324", + "14.0.0-nightly.20210325", + "14.0.0-nightly.20210326", + "14.0.0-nightly.20210329", + "14.0.0-nightly.20210330" + ], + "91.0.4448.0": [ + "13.0.0-beta.14", + "13.0.0-beta.16", + "13.0.0-beta.17", + "13.0.0-beta.18", + "13.0.0-beta.20", + "14.0.0-nightly.20210331", + "14.0.0-nightly.20210401", + "14.0.0-nightly.20210402", + "14.0.0-nightly.20210406", + "14.0.0-nightly.20210407", + "14.0.0-nightly.20210408", + "14.0.0-nightly.20210409", + "14.0.0-nightly.20210413" + ], + "91.0.4472.33": [ + "13.0.0-beta.21", + "13.0.0-beta.22", + "13.0.0-beta.23" + ], + "91.0.4472.38": [ + "13.0.0-beta.24", + "13.0.0-beta.25", + "13.0.0-beta.26", + "13.0.0-beta.27", + "13.0.0-beta.28" + ], + "89.0.4349.0": [ + "13.0.0-nightly.20201215", + "13.0.0-nightly.20201216", + "13.0.0-nightly.20201221", + "13.0.0-nightly.20201222" + ], + "89.0.4359.0": [ + "13.0.0-nightly.20201223", + "13.0.0-nightly.20210104", + "13.0.0-nightly.20210108", + "13.0.0-nightly.20210111" + ], + "89.0.4386.0": [ + "13.0.0-nightly.20210113", + "13.0.0-nightly.20210114", + "13.0.0-nightly.20210118", + "13.0.0-nightly.20210122", + "13.0.0-nightly.20210125" + ], + "89.0.4389.0": [ + "13.0.0-nightly.20210127", + "13.0.0-nightly.20210128", + "13.0.0-nightly.20210129", + "13.0.0-nightly.20210201", + "13.0.0-nightly.20210202", + "13.0.0-nightly.20210203", + "13.0.0-nightly.20210205", + "13.0.0-nightly.20210208", + "13.0.0-nightly.20210209" + ], + "91.0.4472.69": [ + "13.0.0", + "13.0.1" + ], + "91.0.4472.77": [ + "13.1.0", + "13.1.1", + "13.1.2" + ], + "91.0.4472.106": [ + "13.1.3", + "13.1.4" + ], + "91.0.4472.124": [ + "13.1.5", + "13.1.6", + "13.1.7" + ], + "91.0.4472.164": [ + "13.1.8", + "13.1.9", + "13.2.0", + "13.2.1", + "13.2.2", + "13.2.3", + "13.3.0", + "13.4.0", + "13.5.0", + "13.5.1", + "13.5.2", + "13.6.0", + "13.6.1", + "13.6.2", + "13.6.3", + "13.6.6", + "13.6.7", + "13.6.8", + "13.6.9" + ], + "92.0.4511.0": [ + "14.0.0-beta.1", + "14.0.0-beta.2", + "14.0.0-beta.3", + "14.0.0-nightly.20210520", + "14.0.0-nightly.20210523", + "14.0.0-nightly.20210524", + "15.0.0-nightly.20210527", + "15.0.0-nightly.20210528", + "15.0.0-nightly.20210531", + "15.0.0-nightly.20210601", + "15.0.0-nightly.20210602" + ], + "93.0.4536.0": [ + "14.0.0-beta.5", + "14.0.0-beta.6", + "14.0.0-beta.7", + "14.0.0-beta.8", + "15.0.0-nightly.20210609", + "15.0.0-nightly.20210610", + "15.0.0-nightly.20210611", + "15.0.0-nightly.20210614", + "15.0.0-nightly.20210615", + "15.0.0-nightly.20210616" + ], + "93.0.4539.0": [ + "14.0.0-beta.9", + "14.0.0-beta.10", + "15.0.0-nightly.20210617", + "15.0.0-nightly.20210618", + "15.0.0-nightly.20210621", + "15.0.0-nightly.20210622" + ], + "93.0.4557.4": [ + "14.0.0-beta.11", + "14.0.0-beta.12" + ], + "93.0.4566.0": [ + "14.0.0-beta.13", + "14.0.0-beta.14", + "14.0.0-beta.15", + "14.0.0-beta.16", + "14.0.0-beta.17", + "15.0.0-alpha.1", + "15.0.0-alpha.2", + "15.0.0-nightly.20210706", + "15.0.0-nightly.20210707", + "15.0.0-nightly.20210708", + "15.0.0-nightly.20210709", + "15.0.0-nightly.20210712", + "15.0.0-nightly.20210713", + "15.0.0-nightly.20210714", + "15.0.0-nightly.20210715", + "15.0.0-nightly.20210716", + "15.0.0-nightly.20210719", + "15.0.0-nightly.20210720", + "15.0.0-nightly.20210721", + "16.0.0-nightly.20210722", + "16.0.0-nightly.20210723", + "16.0.0-nightly.20210726" + ], + "93.0.4577.15": [ + "14.0.0-beta.18", + "14.0.0-beta.19", + "14.0.0-beta.20", + "14.0.0-beta.21" + ], + "93.0.4577.25": [ + "14.0.0-beta.22", + "14.0.0-beta.23" + ], + "93.0.4577.51": [ + "14.0.0-beta.24", + "14.0.0-beta.25" + ], + "92.0.4475.0": [ + "14.0.0-nightly.20210426", + "14.0.0-nightly.20210427" + ], + "92.0.4488.0": [ + "14.0.0-nightly.20210430", + "14.0.0-nightly.20210503" + ], + "92.0.4496.0": [ + "14.0.0-nightly.20210505" + ], + "92.0.4498.0": [ + "14.0.0-nightly.20210506" + ], + "92.0.4499.0": [ + "14.0.0-nightly.20210507", + "14.0.0-nightly.20210510", + "14.0.0-nightly.20210511", + "14.0.0-nightly.20210512", + "14.0.0-nightly.20210513" + ], + "92.0.4505.0": [ + "14.0.0-nightly.20210514", + "14.0.0-nightly.20210517", + "14.0.0-nightly.20210518", + "14.0.0-nightly.20210519" + ], + "93.0.4577.58": [ + "14.0.0" + ], + "93.0.4577.63": [ + "14.0.1" + ], + "93.0.4577.82": [ + "14.0.2", + "14.1.0", + "14.1.1", + "14.2.0", + "14.2.1", + "14.2.2", + "14.2.3", + "14.2.4", + "14.2.5", + "14.2.6", + "14.2.7", + "14.2.8", + "14.2.9" + ], + "94.0.4584.0": [ + "15.0.0-alpha.3", + "15.0.0-alpha.4", + "15.0.0-alpha.5", + "15.0.0-alpha.6", + "16.0.0-nightly.20210727", + "16.0.0-nightly.20210728", + "16.0.0-nightly.20210729", + "16.0.0-nightly.20210730", + "16.0.0-nightly.20210802", + "16.0.0-nightly.20210803", + "16.0.0-nightly.20210804", + "16.0.0-nightly.20210805", + "16.0.0-nightly.20210806", + "16.0.0-nightly.20210809", + "16.0.0-nightly.20210810", + "16.0.0-nightly.20210811" + ], + "94.0.4590.2": [ + "15.0.0-alpha.7", + "15.0.0-alpha.8", + "15.0.0-alpha.9", + "16.0.0-nightly.20210812", + "16.0.0-nightly.20210813", + "16.0.0-nightly.20210816", + "16.0.0-nightly.20210817", + "16.0.0-nightly.20210818", + "16.0.0-nightly.20210819", + "16.0.0-nightly.20210820", + "16.0.0-nightly.20210823" + ], + "94.0.4606.12": [ + "15.0.0-alpha.10" + ], + "94.0.4606.20": [ + "15.0.0-beta.1", + "15.0.0-beta.2" + ], + "94.0.4606.31": [ + "15.0.0-beta.3", + "15.0.0-beta.4", + "15.0.0-beta.5", + "15.0.0-beta.6", + "15.0.0-beta.7" + ], + "93.0.4530.0": [ + "15.0.0-nightly.20210603", + "15.0.0-nightly.20210604" + ], + "93.0.4535.0": [ + "15.0.0-nightly.20210608" + ], + "93.0.4550.0": [ + "15.0.0-nightly.20210623", + "15.0.0-nightly.20210624" + ], + "93.0.4552.0": [ + "15.0.0-nightly.20210625", + "15.0.0-nightly.20210628", + "15.0.0-nightly.20210629" + ], + "93.0.4558.0": [ + "15.0.0-nightly.20210630", + "15.0.0-nightly.20210701", + "15.0.0-nightly.20210702", + "15.0.0-nightly.20210705" + ], + "94.0.4606.51": [ + "15.0.0" + ], + "94.0.4606.61": [ + "15.1.0", + "15.1.1" + ], + "94.0.4606.71": [ + "15.1.2" + ], + "94.0.4606.81": [ + "15.2.0", + "15.3.0", + "15.3.1", + "15.3.2", + "15.3.3", + "15.3.4", + "15.3.5", + "15.3.6", + "15.3.7", + "15.4.0", + "15.4.1", + "15.4.2", + "15.5.0", + "15.5.1", + "15.5.2", + "15.5.3", + "15.5.4", + "15.5.5", + "15.5.6", + "15.5.7" + ], + "95.0.4629.0": [ + "16.0.0-alpha.1", + "16.0.0-alpha.2", + "16.0.0-alpha.3", + "16.0.0-alpha.4", + "16.0.0-alpha.5", + "16.0.0-alpha.6", + "16.0.0-alpha.7", + "16.0.0-nightly.20210902", + "16.0.0-nightly.20210903", + "16.0.0-nightly.20210906", + "16.0.0-nightly.20210907", + "16.0.0-nightly.20210908", + "16.0.0-nightly.20210909", + "16.0.0-nightly.20210910", + "16.0.0-nightly.20210913", + "16.0.0-nightly.20210914", + "16.0.0-nightly.20210915", + "16.0.0-nightly.20210916", + "16.0.0-nightly.20210917", + "16.0.0-nightly.20210920", + "16.0.0-nightly.20210921", + "16.0.0-nightly.20210922", + "17.0.0-nightly.20210923", + "17.0.0-nightly.20210924", + "17.0.0-nightly.20210927", + "17.0.0-nightly.20210928", + "17.0.0-nightly.20210929", + "17.0.0-nightly.20210930", + "17.0.0-nightly.20211001", + "17.0.0-nightly.20211004", + "17.0.0-nightly.20211005" + ], + "96.0.4647.0": [ + "16.0.0-alpha.8", + "16.0.0-alpha.9", + "16.0.0-beta.1", + "16.0.0-beta.2", + "16.0.0-beta.3", + "17.0.0-nightly.20211006", + "17.0.0-nightly.20211007", + "17.0.0-nightly.20211008", + "17.0.0-nightly.20211011", + "17.0.0-nightly.20211012", + "17.0.0-nightly.20211013", + "17.0.0-nightly.20211014", + "17.0.0-nightly.20211015", + "17.0.0-nightly.20211018", + "17.0.0-nightly.20211019", + "17.0.0-nightly.20211020", + "17.0.0-nightly.20211021" + ], + "96.0.4664.18": [ + "16.0.0-beta.4", + "16.0.0-beta.5" + ], + "96.0.4664.27": [ + "16.0.0-beta.6", + "16.0.0-beta.7" + ], + "96.0.4664.35": [ + "16.0.0-beta.8", + "16.0.0-beta.9" + ], + "95.0.4612.5": [ + "16.0.0-nightly.20210824", + "16.0.0-nightly.20210825", + "16.0.0-nightly.20210826", + "16.0.0-nightly.20210827", + "16.0.0-nightly.20210830", + "16.0.0-nightly.20210831", + "16.0.0-nightly.20210901" + ], + "96.0.4664.45": [ + "16.0.0", + "16.0.1" + ], + "96.0.4664.55": [ + "16.0.2", + "16.0.3", + "16.0.4", + "16.0.5" + ], + "96.0.4664.110": [ + "16.0.6", + "16.0.7", + "16.0.8" + ], + "96.0.4664.174": [ + "16.0.9", + "16.0.10", + "16.1.0", + "16.1.1", + "16.2.0", + "16.2.1", + "16.2.2", + "16.2.3", + "16.2.4", + "16.2.5", + "16.2.6", + "16.2.7", + "16.2.8" + ], + "96.0.4664.4": [ + "17.0.0-alpha.1", + "17.0.0-alpha.2", + "17.0.0-alpha.3", + "17.0.0-nightly.20211022", + "17.0.0-nightly.20211025", + "17.0.0-nightly.20211026", + "17.0.0-nightly.20211027", + "17.0.0-nightly.20211028", + "17.0.0-nightly.20211029", + "17.0.0-nightly.20211101", + "17.0.0-nightly.20211102", + "17.0.0-nightly.20211103", + "17.0.0-nightly.20211104", + "17.0.0-nightly.20211105", + "17.0.0-nightly.20211108", + "17.0.0-nightly.20211109", + "17.0.0-nightly.20211110", + "17.0.0-nightly.20211111", + "17.0.0-nightly.20211112", + "17.0.0-nightly.20211115", + "17.0.0-nightly.20211116", + "17.0.0-nightly.20211117", + "18.0.0-nightly.20211118", + "18.0.0-nightly.20211119", + "18.0.0-nightly.20211122", + "18.0.0-nightly.20211123" + ], + "98.0.4706.0": [ + "17.0.0-alpha.4", + "17.0.0-alpha.5", + "17.0.0-alpha.6", + "17.0.0-beta.1", + "17.0.0-beta.2", + "18.0.0-nightly.20211124", + "18.0.0-nightly.20211125", + "18.0.0-nightly.20211126", + "18.0.0-nightly.20211129", + "18.0.0-nightly.20211130", + "18.0.0-nightly.20211201", + "18.0.0-nightly.20211202", + "18.0.0-nightly.20211203", + "18.0.0-nightly.20211206", + "18.0.0-nightly.20211207", + "18.0.0-nightly.20211208", + "18.0.0-nightly.20211209", + "18.0.0-nightly.20211210", + "18.0.0-nightly.20211213", + "18.0.0-nightly.20211214", + "18.0.0-nightly.20211215", + "18.0.0-nightly.20211216", + "18.0.0-nightly.20211217", + "18.0.0-nightly.20211220", + "18.0.0-nightly.20211221", + "18.0.0-nightly.20211222", + "18.0.0-nightly.20211223", + "18.0.0-nightly.20211228", + "18.0.0-nightly.20211229", + "18.0.0-nightly.20211231", + "18.0.0-nightly.20220103", + "18.0.0-nightly.20220104", + "18.0.0-nightly.20220105", + "18.0.0-nightly.20220106", + "18.0.0-nightly.20220107", + "18.0.0-nightly.20220110" + ], + "98.0.4758.9": [ + "17.0.0-beta.3" + ], + "98.0.4758.11": [ + "17.0.0-beta.4", + "17.0.0-beta.5", + "17.0.0-beta.6", + "17.0.0-beta.7", + "17.0.0-beta.8", + "17.0.0-beta.9" + ], + "98.0.4758.74": [ + "17.0.0" + ], + "98.0.4758.82": [ + "17.0.1" + ], + "98.0.4758.102": [ + "17.1.0" + ], + "98.0.4758.109": [ + "17.1.1", + "17.1.2", + "17.2.0" + ], + "98.0.4758.141": [ + "17.3.0", + "17.3.1", + "17.4.0", + "17.4.1", + "17.4.2", + "17.4.3", + "17.4.4", + "17.4.5", + "17.4.6", + "17.4.7", + "17.4.8", + "17.4.9", + "17.4.10", + "17.4.11" + ], + "99.0.4767.0": [ + "18.0.0-alpha.1", + "18.0.0-alpha.2", + "18.0.0-alpha.3", + "18.0.0-alpha.4", + "18.0.0-alpha.5", + "18.0.0-nightly.20220111", + "18.0.0-nightly.20220112", + "18.0.0-nightly.20220113", + "18.0.0-nightly.20220114", + "18.0.0-nightly.20220117", + "18.0.0-nightly.20220118", + "18.0.0-nightly.20220119", + "18.0.0-nightly.20220121", + "18.0.0-nightly.20220124", + "18.0.0-nightly.20220125", + "18.0.0-nightly.20220127", + "18.0.0-nightly.20220128", + "18.0.0-nightly.20220131", + "18.0.0-nightly.20220201", + "19.0.0-nightly.20220202", + "19.0.0-nightly.20220203", + "19.0.0-nightly.20220204", + "19.0.0-nightly.20220207", + "19.0.0-nightly.20220208", + "19.0.0-nightly.20220209" + ], + "100.0.4894.0": [ + "18.0.0-beta.1", + "18.0.0-beta.2", + "18.0.0-beta.3", + "18.0.0-beta.4", + "18.0.0-beta.5", + "18.0.0-beta.6", + "19.0.0-nightly.20220308", + "19.0.0-nightly.20220309", + "19.0.0-nightly.20220310", + "19.0.0-nightly.20220311", + "19.0.0-nightly.20220314", + "19.0.0-nightly.20220315", + "19.0.0-nightly.20220316", + "19.0.0-nightly.20220317", + "19.0.0-nightly.20220318", + "19.0.0-nightly.20220321", + "19.0.0-nightly.20220322", + "19.0.0-nightly.20220323", + "19.0.0-nightly.20220324" + ], + "100.0.4896.56": [ + "18.0.0" + ], + "100.0.4896.60": [ + "18.0.1", + "18.0.2" + ], + "100.0.4896.75": [ + "18.0.3", + "18.0.4" + ], + "100.0.4896.127": [ + "18.1.0" + ], + "100.0.4896.143": [ + "18.2.0", + "18.2.1", + "18.2.2", + "18.2.3" + ], + "100.0.4896.160": [ + "18.2.4", + "18.3.0", + "18.3.1", + "18.3.2", + "18.3.3", + "18.3.4", + "18.3.5", + "18.3.6", + "18.3.7", + "18.3.8", + "18.3.9", + "18.3.11", + "18.3.12", + "18.3.13", + "18.3.14", + "18.3.15" + ], + "102.0.4962.3": [ + "19.0.0-alpha.1", + "19.0.0-nightly.20220328", + "19.0.0-nightly.20220329", + "20.0.0-nightly.20220330" + ], + "102.0.4971.0": [ + "19.0.0-alpha.2", + "19.0.0-alpha.3", + "20.0.0-nightly.20220411" + ], + "102.0.4989.0": [ + "19.0.0-alpha.4", + "19.0.0-alpha.5", + "20.0.0-nightly.20220414", + "20.0.0-nightly.20220415", + "20.0.0-nightly.20220418", + "20.0.0-nightly.20220419", + "20.0.0-nightly.20220420", + "20.0.0-nightly.20220421" + ], + "102.0.4999.0": [ + "19.0.0-beta.1", + "19.0.0-beta.2", + "19.0.0-beta.3", + "20.0.0-nightly.20220425", + "20.0.0-nightly.20220426", + "20.0.0-nightly.20220427", + "20.0.0-nightly.20220428", + "20.0.0-nightly.20220429", + "20.0.0-nightly.20220502", + "20.0.0-nightly.20220503", + "20.0.0-nightly.20220504", + "20.0.0-nightly.20220505", + "20.0.0-nightly.20220506", + "20.0.0-nightly.20220509", + "20.0.0-nightly.20220511", + "20.0.0-nightly.20220512", + "20.0.0-nightly.20220513", + "20.0.0-nightly.20220516", + "20.0.0-nightly.20220517" + ], + "102.0.5005.27": [ + "19.0.0-beta.4" + ], + "102.0.5005.40": [ + "19.0.0-beta.5", + "19.0.0-beta.6", + "19.0.0-beta.7" + ], + "102.0.5005.49": [ + "19.0.0-beta.8" + ], + "102.0.4961.0": [ + "19.0.0-nightly.20220325" + ], + "102.0.5005.61": [ + "19.0.0", + "19.0.1" + ], + "102.0.5005.63": [ + "19.0.2", + "19.0.3", + "19.0.4" + ], + "102.0.5005.115": [ + "19.0.5", + "19.0.6" + ], + "102.0.5005.134": [ + "19.0.7" + ], + "102.0.5005.148": [ + "19.0.8" + ], + "102.0.5005.167": [ + "19.0.9", + "19.0.10", + "19.0.11", + "19.0.12", + "19.0.13", + "19.0.14", + "19.0.15", + "19.0.16", + "19.0.17", + "19.1.0", + "19.1.1", + "19.1.2", + "19.1.3", + "19.1.4", + "19.1.5", + "19.1.6", + "19.1.7", + "19.1.8", + "19.1.9" + ], + "103.0.5044.0": [ + "20.0.0-alpha.1", + "20.0.0-nightly.20220518", + "20.0.0-nightly.20220519", + "20.0.0-nightly.20220520", + "20.0.0-nightly.20220523", + "20.0.0-nightly.20220524", + "21.0.0-nightly.20220526", + "21.0.0-nightly.20220527", + "21.0.0-nightly.20220530", + "21.0.0-nightly.20220531" + ], + "104.0.5073.0": [ + "20.0.0-alpha.2", + "20.0.0-alpha.3", + "20.0.0-alpha.4", + "20.0.0-alpha.5", + "20.0.0-alpha.6", + "20.0.0-alpha.7", + "20.0.0-beta.1", + "20.0.0-beta.2", + "20.0.0-beta.3", + "20.0.0-beta.4", + "20.0.0-beta.5", + "20.0.0-beta.6", + "20.0.0-beta.7", + "20.0.0-beta.8", + "21.0.0-nightly.20220602", + "21.0.0-nightly.20220603", + "21.0.0-nightly.20220606", + "21.0.0-nightly.20220607", + "21.0.0-nightly.20220608", + "21.0.0-nightly.20220609", + "21.0.0-nightly.20220610", + "21.0.0-nightly.20220613", + "21.0.0-nightly.20220614", + "21.0.0-nightly.20220615", + "21.0.0-nightly.20220616", + "21.0.0-nightly.20220617", + "21.0.0-nightly.20220620", + "21.0.0-nightly.20220621", + "21.0.0-nightly.20220622", + "21.0.0-nightly.20220623", + "21.0.0-nightly.20220624", + "21.0.0-nightly.20220627" + ], + "104.0.5112.39": [ + "20.0.0-beta.9" + ], + "104.0.5112.48": [ + "20.0.0-beta.10", + "20.0.0-beta.11", + "20.0.0-beta.12" + ], + "104.0.5112.57": [ + "20.0.0-beta.13" + ], + "104.0.5112.65": [ + "20.0.0" + ], + "104.0.5112.81": [ + "20.0.1", + "20.0.2", + "20.0.3" + ], + "104.0.5112.102": [ + "20.1.0", + "20.1.1" + ], + "104.0.5112.114": [ + "20.1.2", + "20.1.3", + "20.1.4" + ], + "104.0.5112.124": [ + "20.2.0", + "20.3.0", + "20.3.1", + "20.3.2", + "20.3.3", + "20.3.4", + "20.3.5", + "20.3.6", + "20.3.7", + "20.3.8", + "20.3.9", + "20.3.10", + "20.3.11", + "20.3.12" + ], + "105.0.5187.0": [ + "21.0.0-alpha.1", + "21.0.0-alpha.2", + "21.0.0-alpha.3", + "21.0.0-alpha.4", + "21.0.0-alpha.5", + "21.0.0-nightly.20220720", + "21.0.0-nightly.20220721", + "21.0.0-nightly.20220722", + "21.0.0-nightly.20220725", + "21.0.0-nightly.20220726", + "21.0.0-nightly.20220727", + "21.0.0-nightly.20220728", + "21.0.0-nightly.20220801", + "21.0.0-nightly.20220802", + "22.0.0-nightly.20220808", + "22.0.0-nightly.20220809", + "22.0.0-nightly.20220810", + "22.0.0-nightly.20220811", + "22.0.0-nightly.20220812", + "22.0.0-nightly.20220815", + "22.0.0-nightly.20220816", + "22.0.0-nightly.20220817" + ], + "106.0.5216.0": [ + "21.0.0-alpha.6", + "21.0.0-beta.1", + "21.0.0-beta.2", + "21.0.0-beta.3", + "21.0.0-beta.4", + "21.0.0-beta.5", + "22.0.0-nightly.20220822", + "22.0.0-nightly.20220823", + "22.0.0-nightly.20220824", + "22.0.0-nightly.20220825", + "22.0.0-nightly.20220829", + "22.0.0-nightly.20220830", + "22.0.0-nightly.20220831", + "22.0.0-nightly.20220901", + "22.0.0-nightly.20220902", + "22.0.0-nightly.20220905" + ], + "106.0.5249.40": [ + "21.0.0-beta.6", + "21.0.0-beta.7", + "21.0.0-beta.8" + ], + "105.0.5129.0": [ + "21.0.0-nightly.20220628", + "21.0.0-nightly.20220629", + "21.0.0-nightly.20220630", + "21.0.0-nightly.20220701", + "21.0.0-nightly.20220704", + "21.0.0-nightly.20220705", + "21.0.0-nightly.20220706", + "21.0.0-nightly.20220707", + "21.0.0-nightly.20220708", + "21.0.0-nightly.20220711", + "21.0.0-nightly.20220712", + "21.0.0-nightly.20220713" + ], + "105.0.5173.0": [ + "21.0.0-nightly.20220715", + "21.0.0-nightly.20220718", + "21.0.0-nightly.20220719" + ], + "106.0.5249.51": [ + "21.0.0" + ], + "106.0.5249.61": [ + "21.0.1" + ], + "106.0.5249.91": [ + "21.1.0" + ], + "106.0.5249.103": [ + "21.1.1" + ], + "106.0.5249.119": [ + "21.2.0" + ], + "106.0.5249.165": [ + "21.2.1" + ], + "106.0.5249.168": [ + "21.2.2", + "21.2.3" + ], + "106.0.5249.181": [ + "21.3.0", + "21.3.1" + ], + "106.0.5249.199": [ + "21.3.3", + "21.3.4", + "21.3.5", + "21.4.0", + "21.4.1", + "21.4.2", + "21.4.3", + "21.4.4" + ], + "107.0.5286.0": [ + "22.0.0-alpha.1", + "22.0.0-nightly.20220909", + "22.0.0-nightly.20220912", + "22.0.0-nightly.20220913", + "22.0.0-nightly.20220914", + "22.0.0-nightly.20220915", + "22.0.0-nightly.20220916", + "22.0.0-nightly.20220919", + "22.0.0-nightly.20220920", + "22.0.0-nightly.20220921", + "22.0.0-nightly.20220922", + "22.0.0-nightly.20220923", + "22.0.0-nightly.20220926", + "22.0.0-nightly.20220927", + "22.0.0-nightly.20220928", + "23.0.0-nightly.20220929", + "23.0.0-nightly.20220930", + "23.0.0-nightly.20221003" + ], + "108.0.5329.0": [ + "22.0.0-alpha.3", + "22.0.0-alpha.4", + "22.0.0-alpha.5", + "22.0.0-alpha.6", + "23.0.0-nightly.20221004", + "23.0.0-nightly.20221005", + "23.0.0-nightly.20221006", + "23.0.0-nightly.20221007", + "23.0.0-nightly.20221010", + "23.0.0-nightly.20221011", + "23.0.0-nightly.20221012", + "23.0.0-nightly.20221013", + "23.0.0-nightly.20221014", + "23.0.0-nightly.20221017" + ], + "108.0.5355.0": [ + "22.0.0-alpha.7", + "23.0.0-nightly.20221018", + "23.0.0-nightly.20221019", + "23.0.0-nightly.20221020", + "23.0.0-nightly.20221021", + "23.0.0-nightly.20221024", + "23.0.0-nightly.20221026" + ], + "108.0.5359.10": [ + "22.0.0-alpha.8", + "22.0.0-beta.1", + "22.0.0-beta.2", + "22.0.0-beta.3" + ], + "108.0.5359.29": [ + "22.0.0-beta.4" + ], + "108.0.5359.40": [ + "22.0.0-beta.5", + "22.0.0-beta.6" + ], + "108.0.5359.48": [ + "22.0.0-beta.7", + "22.0.0-beta.8" + ], + "107.0.5274.0": [ + "22.0.0-nightly.20220908" + ], + "108.0.5359.62": [ + "22.0.0" + ], + "108.0.5359.125": [ + "22.0.1" + ], + "108.0.5359.179": [ + "22.0.2", + "22.0.3", + "22.1.0" + ], + "108.0.5359.215": [ + "22.2.0", + "22.2.1", + "22.3.0", + "22.3.1", + "22.3.2", + "22.3.3", + "22.3.4", + "22.3.5", + "22.3.6", + "22.3.7", + "22.3.8", + "22.3.9", + "22.3.10", + "22.3.11" + ], + "110.0.5415.0": [ + "23.0.0-alpha.1", + "23.0.0-nightly.20221118", + "23.0.0-nightly.20221121", + "23.0.0-nightly.20221122", + "23.0.0-nightly.20221123", + "23.0.0-nightly.20221124", + "23.0.0-nightly.20221125", + "23.0.0-nightly.20221128", + "23.0.0-nightly.20221129", + "23.0.0-nightly.20221130", + "24.0.0-nightly.20221201", + "24.0.0-nightly.20221202", + "24.0.0-nightly.20221205" + ], + "110.0.5451.0": [ + "23.0.0-alpha.2", + "23.0.0-alpha.3", + "24.0.0-nightly.20221206", + "24.0.0-nightly.20221207", + "24.0.0-nightly.20221208", + "24.0.0-nightly.20221213", + "24.0.0-nightly.20221214", + "24.0.0-nightly.20221215", + "24.0.0-nightly.20221216" + ], + "110.0.5478.5": [ + "23.0.0-beta.1", + "23.0.0-beta.2", + "23.0.0-beta.3" + ], + "110.0.5481.30": [ + "23.0.0-beta.4" + ], + "110.0.5481.38": [ + "23.0.0-beta.5" + ], + "110.0.5481.52": [ + "23.0.0-beta.6", + "23.0.0-beta.8" + ], + "109.0.5382.0": [ + "23.0.0-nightly.20221027", + "23.0.0-nightly.20221028", + "23.0.0-nightly.20221031", + "23.0.0-nightly.20221101", + "23.0.0-nightly.20221102", + "23.0.0-nightly.20221103", + "23.0.0-nightly.20221104", + "23.0.0-nightly.20221107", + "23.0.0-nightly.20221108", + "23.0.0-nightly.20221109", + "23.0.0-nightly.20221110", + "23.0.0-nightly.20221111", + "23.0.0-nightly.20221114", + "23.0.0-nightly.20221115", + "23.0.0-nightly.20221116", + "23.0.0-nightly.20221117" + ], + "110.0.5481.77": [ + "23.0.0" + ], + "110.0.5481.100": [ + "23.1.0" + ], + "110.0.5481.104": [ + "23.1.1" + ], + "110.0.5481.177": [ + "23.1.2" + ], + "110.0.5481.179": [ + "23.1.3" + ], + "110.0.5481.192": [ + "23.1.4", + "23.2.0" + ], + "110.0.5481.208": [ + "23.2.1", + "23.2.2", + "23.2.3", + "23.2.4", + "23.3.0", + "23.3.1", + "23.3.2", + "23.3.3", + "23.3.4" + ], + "111.0.5560.0": [ + "24.0.0-alpha.1", + "24.0.0-alpha.2", + "24.0.0-alpha.3", + "24.0.0-alpha.4", + "24.0.0-alpha.5", + "24.0.0-alpha.6", + "24.0.0-alpha.7", + "24.0.0-nightly.20230203", + "24.0.0-nightly.20230206", + "24.0.0-nightly.20230207", + "24.0.0-nightly.20230208", + "24.0.0-nightly.20230209", + "25.0.0-nightly.20230210", + "25.0.0-nightly.20230214", + "25.0.0-nightly.20230215", + "25.0.0-nightly.20230216", + "25.0.0-nightly.20230217", + "25.0.0-nightly.20230220", + "25.0.0-nightly.20230221", + "25.0.0-nightly.20230222", + "25.0.0-nightly.20230223", + "25.0.0-nightly.20230224", + "25.0.0-nightly.20230227", + "25.0.0-nightly.20230228", + "25.0.0-nightly.20230301", + "25.0.0-nightly.20230302", + "25.0.0-nightly.20230303", + "25.0.0-nightly.20230306", + "25.0.0-nightly.20230307", + "25.0.0-nightly.20230308", + "25.0.0-nightly.20230309", + "25.0.0-nightly.20230310" + ], + "111.0.5563.50": [ + "24.0.0-beta.1", + "24.0.0-beta.2" + ], + "112.0.5615.20": [ + "24.0.0-beta.3", + "24.0.0-beta.4" + ], + "112.0.5615.29": [ + "24.0.0-beta.5" + ], + "112.0.5615.39": [ + "24.0.0-beta.6", + "24.0.0-beta.7" + ], + "111.0.5518.0": [ + "24.0.0-nightly.20230109", + "24.0.0-nightly.20230110", + "24.0.0-nightly.20230111", + "24.0.0-nightly.20230112", + "24.0.0-nightly.20230113", + "24.0.0-nightly.20230116", + "24.0.0-nightly.20230117", + "24.0.0-nightly.20230118", + "24.0.0-nightly.20230119", + "24.0.0-nightly.20230120", + "24.0.0-nightly.20230123", + "24.0.0-nightly.20230124", + "24.0.0-nightly.20230125", + "24.0.0-nightly.20230126", + "24.0.0-nightly.20230127", + "24.0.0-nightly.20230131", + "24.0.0-nightly.20230201", + "24.0.0-nightly.20230202" + ], + "112.0.5615.49": [ + "24.0.0" + ], + "112.0.5615.50": [ + "24.1.0", + "24.1.1" + ], + "112.0.5615.87": [ + "24.1.2" + ], + "112.0.5615.165": [ + "24.1.3", + "24.2.0", + "24.3.0" + ], + "112.0.5615.183": [ + "24.3.1" + ], + "112.0.5615.204": [ + "24.4.0", + "24.4.1" + ], + "114.0.5694.0": [ + "25.0.0-alpha.1", + "25.0.0-alpha.2", + "25.0.0-nightly.20230405", + "26.0.0-nightly.20230406", + "26.0.0-nightly.20230407", + "26.0.0-nightly.20230410", + "26.0.0-nightly.20230411" + ], + "114.0.5710.0": [ + "25.0.0-alpha.3", + "25.0.0-alpha.4", + "26.0.0-nightly.20230413", + "26.0.0-nightly.20230414", + "26.0.0-nightly.20230417" + ], + "114.0.5719.0": [ + "25.0.0-alpha.5", + "25.0.0-alpha.6", + "25.0.0-beta.1", + "25.0.0-beta.2", + "25.0.0-beta.3", + "26.0.0-nightly.20230421", + "26.0.0-nightly.20230424", + "26.0.0-nightly.20230425", + "26.0.0-nightly.20230426", + "26.0.0-nightly.20230427", + "26.0.0-nightly.20230428", + "26.0.0-nightly.20230501", + "26.0.0-nightly.20230502", + "26.0.0-nightly.20230503", + "26.0.0-nightly.20230504", + "26.0.0-nightly.20230505", + "26.0.0-nightly.20230508", + "26.0.0-nightly.20230509", + "26.0.0-nightly.20230510" + ], + "114.0.5735.16": [ + "25.0.0-beta.4", + "25.0.0-beta.5", + "25.0.0-beta.6", + "25.0.0-beta.7" + ], + "114.0.5735.35": [ + "25.0.0-beta.8" + ], + "114.0.5735.45": [ + "25.0.0-beta.9", + "25.0.0" + ], + "113.0.5636.0": [ + "25.0.0-nightly.20230314" + ], + "113.0.5651.0": [ + "25.0.0-nightly.20230315" + ], + "113.0.5653.0": [ + "25.0.0-nightly.20230317" + ], + "113.0.5660.0": [ + "25.0.0-nightly.20230320" + ], + "113.0.5664.0": [ + "25.0.0-nightly.20230321" + ], + "113.0.5666.0": [ + "25.0.0-nightly.20230322" + ], + "113.0.5668.0": [ + "25.0.0-nightly.20230323" + ], + "113.0.5670.0": [ + "25.0.0-nightly.20230324", + "25.0.0-nightly.20230327", + "25.0.0-nightly.20230328", + "25.0.0-nightly.20230329", + "25.0.0-nightly.20230330" + ], + "114.0.5684.0": [ + "25.0.0-nightly.20230331", + "25.0.0-nightly.20230403" + ], + "114.0.5692.0": [ + "25.0.0-nightly.20230404" + ], + "114.0.5708.0": [ + "26.0.0-nightly.20230412" + ], + "114.0.5715.0": [ + "26.0.0-nightly.20230418" + ], + "115.0.5760.0": [ + "26.0.0-nightly.20230511", + "26.0.0-nightly.20230512", + "26.0.0-nightly.20230515", + "26.0.0-nightly.20230516", + "26.0.0-nightly.20230517", + "26.0.0-nightly.20230518", + "26.0.0-nightly.20230519", + "26.0.0-nightly.20230522", + "26.0.0-nightly.20230523" + ], + "115.0.5786.0": [ + "26.0.0-nightly.20230524" + ], + "115.0.5790.0": [ + "26.0.0-nightly.20230525" + ], + "116.0.5791.0": [ + "26.0.0-nightly.20230526", + "26.0.0-nightly.20230529" + ] +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-chromium-versions.json b/node_modules/electron-to-chromium/full-chromium-versions.json new file mode 100644 index 0000000..d8e2fad --- /dev/null +++ b/node_modules/electron-to-chromium/full-chromium-versions.json @@ -0,0 +1 @@ +{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2","6.0.0-nightly.20190123"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190912","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190922","8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190928","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191103","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.11","9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191126","9.0.0-nightly.20191128","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191205","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201002","12.0.0-nightly.20201007","12.0.0-nightly.20201009","12.0.0-nightly.20201012","12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.10","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.25","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7","17.4.8","17.4.9","17.4.10","17.4.11"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4","18.3.5","18.3.6","18.3.7","18.3.8","18.3.9","18.3.11","18.3.12","18.3.13","18.3.14","18.3.15"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"102.0.5005.115":["19.0.5","19.0.6"],"102.0.5005.134":["19.0.7"],"102.0.5005.148":["19.0.8"],"102.0.5005.167":["19.0.9","19.0.10","19.0.11","19.0.12","19.0.13","19.0.14","19.0.15","19.0.16","19.0.17","19.1.0","19.1.1","19.1.2","19.1.3","19.1.4","19.1.5","19.1.6","19.1.7","19.1.8","19.1.9"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","20.0.0-alpha.7","20.0.0-beta.1","20.0.0-beta.2","20.0.0-beta.3","20.0.0-beta.4","20.0.0-beta.5","20.0.0-beta.6","20.0.0-beta.7","20.0.0-beta.8","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617","21.0.0-nightly.20220620","21.0.0-nightly.20220621","21.0.0-nightly.20220622","21.0.0-nightly.20220623","21.0.0-nightly.20220624","21.0.0-nightly.20220627"],"104.0.5112.39":["20.0.0-beta.9"],"104.0.5112.48":["20.0.0-beta.10","20.0.0-beta.11","20.0.0-beta.12"],"104.0.5112.57":["20.0.0-beta.13"],"104.0.5112.65":["20.0.0"],"104.0.5112.81":["20.0.1","20.0.2","20.0.3"],"104.0.5112.102":["20.1.0","20.1.1"],"104.0.5112.114":["20.1.2","20.1.3","20.1.4"],"104.0.5112.124":["20.2.0","20.3.0","20.3.1","20.3.2","20.3.3","20.3.4","20.3.5","20.3.6","20.3.7","20.3.8","20.3.9","20.3.10","20.3.11","20.3.12"],"105.0.5187.0":["21.0.0-alpha.1","21.0.0-alpha.2","21.0.0-alpha.3","21.0.0-alpha.4","21.0.0-alpha.5","21.0.0-nightly.20220720","21.0.0-nightly.20220721","21.0.0-nightly.20220722","21.0.0-nightly.20220725","21.0.0-nightly.20220726","21.0.0-nightly.20220727","21.0.0-nightly.20220728","21.0.0-nightly.20220801","21.0.0-nightly.20220802","22.0.0-nightly.20220808","22.0.0-nightly.20220809","22.0.0-nightly.20220810","22.0.0-nightly.20220811","22.0.0-nightly.20220812","22.0.0-nightly.20220815","22.0.0-nightly.20220816","22.0.0-nightly.20220817"],"106.0.5216.0":["21.0.0-alpha.6","21.0.0-beta.1","21.0.0-beta.2","21.0.0-beta.3","21.0.0-beta.4","21.0.0-beta.5","22.0.0-nightly.20220822","22.0.0-nightly.20220823","22.0.0-nightly.20220824","22.0.0-nightly.20220825","22.0.0-nightly.20220829","22.0.0-nightly.20220830","22.0.0-nightly.20220831","22.0.0-nightly.20220901","22.0.0-nightly.20220902","22.0.0-nightly.20220905"],"106.0.5249.40":["21.0.0-beta.6","21.0.0-beta.7","21.0.0-beta.8"],"105.0.5129.0":["21.0.0-nightly.20220628","21.0.0-nightly.20220629","21.0.0-nightly.20220630","21.0.0-nightly.20220701","21.0.0-nightly.20220704","21.0.0-nightly.20220705","21.0.0-nightly.20220706","21.0.0-nightly.20220707","21.0.0-nightly.20220708","21.0.0-nightly.20220711","21.0.0-nightly.20220712","21.0.0-nightly.20220713"],"105.0.5173.0":["21.0.0-nightly.20220715","21.0.0-nightly.20220718","21.0.0-nightly.20220719"],"106.0.5249.51":["21.0.0"],"106.0.5249.61":["21.0.1"],"106.0.5249.91":["21.1.0"],"106.0.5249.103":["21.1.1"],"106.0.5249.119":["21.2.0"],"106.0.5249.165":["21.2.1"],"106.0.5249.168":["21.2.2","21.2.3"],"106.0.5249.181":["21.3.0","21.3.1"],"106.0.5249.199":["21.3.3","21.3.4","21.3.5","21.4.0","21.4.1","21.4.2","21.4.3","21.4.4"],"107.0.5286.0":["22.0.0-alpha.1","22.0.0-nightly.20220909","22.0.0-nightly.20220912","22.0.0-nightly.20220913","22.0.0-nightly.20220914","22.0.0-nightly.20220915","22.0.0-nightly.20220916","22.0.0-nightly.20220919","22.0.0-nightly.20220920","22.0.0-nightly.20220921","22.0.0-nightly.20220922","22.0.0-nightly.20220923","22.0.0-nightly.20220926","22.0.0-nightly.20220927","22.0.0-nightly.20220928","23.0.0-nightly.20220929","23.0.0-nightly.20220930","23.0.0-nightly.20221003"],"108.0.5329.0":["22.0.0-alpha.3","22.0.0-alpha.4","22.0.0-alpha.5","22.0.0-alpha.6","23.0.0-nightly.20221004","23.0.0-nightly.20221005","23.0.0-nightly.20221006","23.0.0-nightly.20221007","23.0.0-nightly.20221010","23.0.0-nightly.20221011","23.0.0-nightly.20221012","23.0.0-nightly.20221013","23.0.0-nightly.20221014","23.0.0-nightly.20221017"],"108.0.5355.0":["22.0.0-alpha.7","23.0.0-nightly.20221018","23.0.0-nightly.20221019","23.0.0-nightly.20221020","23.0.0-nightly.20221021","23.0.0-nightly.20221024","23.0.0-nightly.20221026"],"108.0.5359.10":["22.0.0-alpha.8","22.0.0-beta.1","22.0.0-beta.2","22.0.0-beta.3"],"108.0.5359.29":["22.0.0-beta.4"],"108.0.5359.40":["22.0.0-beta.5","22.0.0-beta.6"],"108.0.5359.48":["22.0.0-beta.7","22.0.0-beta.8"],"107.0.5274.0":["22.0.0-nightly.20220908"],"108.0.5359.62":["22.0.0"],"108.0.5359.125":["22.0.1"],"108.0.5359.179":["22.0.2","22.0.3","22.1.0"],"108.0.5359.215":["22.2.0","22.2.1","22.3.0","22.3.1","22.3.2","22.3.3","22.3.4","22.3.5","22.3.6","22.3.7","22.3.8","22.3.9","22.3.10","22.3.11"],"110.0.5415.0":["23.0.0-alpha.1","23.0.0-nightly.20221118","23.0.0-nightly.20221121","23.0.0-nightly.20221122","23.0.0-nightly.20221123","23.0.0-nightly.20221124","23.0.0-nightly.20221125","23.0.0-nightly.20221128","23.0.0-nightly.20221129","23.0.0-nightly.20221130","24.0.0-nightly.20221201","24.0.0-nightly.20221202","24.0.0-nightly.20221205"],"110.0.5451.0":["23.0.0-alpha.2","23.0.0-alpha.3","24.0.0-nightly.20221206","24.0.0-nightly.20221207","24.0.0-nightly.20221208","24.0.0-nightly.20221213","24.0.0-nightly.20221214","24.0.0-nightly.20221215","24.0.0-nightly.20221216"],"110.0.5478.5":["23.0.0-beta.1","23.0.0-beta.2","23.0.0-beta.3"],"110.0.5481.30":["23.0.0-beta.4"],"110.0.5481.38":["23.0.0-beta.5"],"110.0.5481.52":["23.0.0-beta.6","23.0.0-beta.8"],"109.0.5382.0":["23.0.0-nightly.20221027","23.0.0-nightly.20221028","23.0.0-nightly.20221031","23.0.0-nightly.20221101","23.0.0-nightly.20221102","23.0.0-nightly.20221103","23.0.0-nightly.20221104","23.0.0-nightly.20221107","23.0.0-nightly.20221108","23.0.0-nightly.20221109","23.0.0-nightly.20221110","23.0.0-nightly.20221111","23.0.0-nightly.20221114","23.0.0-nightly.20221115","23.0.0-nightly.20221116","23.0.0-nightly.20221117"],"110.0.5481.77":["23.0.0"],"110.0.5481.100":["23.1.0"],"110.0.5481.104":["23.1.1"],"110.0.5481.177":["23.1.2"],"110.0.5481.179":["23.1.3"],"110.0.5481.192":["23.1.4","23.2.0"],"110.0.5481.208":["23.2.1","23.2.2","23.2.3","23.2.4","23.3.0","23.3.1","23.3.2","23.3.3","23.3.4"],"111.0.5560.0":["24.0.0-alpha.1","24.0.0-alpha.2","24.0.0-alpha.3","24.0.0-alpha.4","24.0.0-alpha.5","24.0.0-alpha.6","24.0.0-alpha.7","24.0.0-nightly.20230203","24.0.0-nightly.20230206","24.0.0-nightly.20230207","24.0.0-nightly.20230208","24.0.0-nightly.20230209","25.0.0-nightly.20230210","25.0.0-nightly.20230214","25.0.0-nightly.20230215","25.0.0-nightly.20230216","25.0.0-nightly.20230217","25.0.0-nightly.20230220","25.0.0-nightly.20230221","25.0.0-nightly.20230222","25.0.0-nightly.20230223","25.0.0-nightly.20230224","25.0.0-nightly.20230227","25.0.0-nightly.20230228","25.0.0-nightly.20230301","25.0.0-nightly.20230302","25.0.0-nightly.20230303","25.0.0-nightly.20230306","25.0.0-nightly.20230307","25.0.0-nightly.20230308","25.0.0-nightly.20230309","25.0.0-nightly.20230310"],"111.0.5563.50":["24.0.0-beta.1","24.0.0-beta.2"],"112.0.5615.20":["24.0.0-beta.3","24.0.0-beta.4"],"112.0.5615.29":["24.0.0-beta.5"],"112.0.5615.39":["24.0.0-beta.6","24.0.0-beta.7"],"111.0.5518.0":["24.0.0-nightly.20230109","24.0.0-nightly.20230110","24.0.0-nightly.20230111","24.0.0-nightly.20230112","24.0.0-nightly.20230113","24.0.0-nightly.20230116","24.0.0-nightly.20230117","24.0.0-nightly.20230118","24.0.0-nightly.20230119","24.0.0-nightly.20230120","24.0.0-nightly.20230123","24.0.0-nightly.20230124","24.0.0-nightly.20230125","24.0.0-nightly.20230126","24.0.0-nightly.20230127","24.0.0-nightly.20230131","24.0.0-nightly.20230201","24.0.0-nightly.20230202"],"112.0.5615.49":["24.0.0"],"112.0.5615.50":["24.1.0","24.1.1"],"112.0.5615.87":["24.1.2"],"112.0.5615.165":["24.1.3","24.2.0","24.3.0"],"112.0.5615.183":["24.3.1"],"112.0.5615.204":["24.4.0","24.4.1"],"114.0.5694.0":["25.0.0-alpha.1","25.0.0-alpha.2","25.0.0-nightly.20230405","26.0.0-nightly.20230406","26.0.0-nightly.20230407","26.0.0-nightly.20230410","26.0.0-nightly.20230411"],"114.0.5710.0":["25.0.0-alpha.3","25.0.0-alpha.4","26.0.0-nightly.20230413","26.0.0-nightly.20230414","26.0.0-nightly.20230417"],"114.0.5719.0":["25.0.0-alpha.5","25.0.0-alpha.6","25.0.0-beta.1","25.0.0-beta.2","25.0.0-beta.3","26.0.0-nightly.20230421","26.0.0-nightly.20230424","26.0.0-nightly.20230425","26.0.0-nightly.20230426","26.0.0-nightly.20230427","26.0.0-nightly.20230428","26.0.0-nightly.20230501","26.0.0-nightly.20230502","26.0.0-nightly.20230503","26.0.0-nightly.20230504","26.0.0-nightly.20230505","26.0.0-nightly.20230508","26.0.0-nightly.20230509","26.0.0-nightly.20230510"],"114.0.5735.16":["25.0.0-beta.4","25.0.0-beta.5","25.0.0-beta.6","25.0.0-beta.7"],"114.0.5735.35":["25.0.0-beta.8"],"114.0.5735.45":["25.0.0-beta.9","25.0.0"],"113.0.5636.0":["25.0.0-nightly.20230314"],"113.0.5651.0":["25.0.0-nightly.20230315"],"113.0.5653.0":["25.0.0-nightly.20230317"],"113.0.5660.0":["25.0.0-nightly.20230320"],"113.0.5664.0":["25.0.0-nightly.20230321"],"113.0.5666.0":["25.0.0-nightly.20230322"],"113.0.5668.0":["25.0.0-nightly.20230323"],"113.0.5670.0":["25.0.0-nightly.20230324","25.0.0-nightly.20230327","25.0.0-nightly.20230328","25.0.0-nightly.20230329","25.0.0-nightly.20230330"],"114.0.5684.0":["25.0.0-nightly.20230331","25.0.0-nightly.20230403"],"114.0.5692.0":["25.0.0-nightly.20230404"],"114.0.5708.0":["26.0.0-nightly.20230412"],"114.0.5715.0":["26.0.0-nightly.20230418"],"115.0.5760.0":["26.0.0-nightly.20230511","26.0.0-nightly.20230512","26.0.0-nightly.20230515","26.0.0-nightly.20230516","26.0.0-nightly.20230517","26.0.0-nightly.20230518","26.0.0-nightly.20230519","26.0.0-nightly.20230522","26.0.0-nightly.20230523"],"115.0.5786.0":["26.0.0-nightly.20230524"],"115.0.5790.0":["26.0.0-nightly.20230525"],"116.0.5791.0":["26.0.0-nightly.20230526","26.0.0-nightly.20230529"]} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-versions.js b/node_modules/electron-to-chromium/full-versions.js new file mode 100644 index 0000000..453e89d --- /dev/null +++ b/node_modules/electron-to-chromium/full-versions.js @@ -0,0 +1,1895 @@ +module.exports = { + "0.20.0": "39.0.2171.65", + "0.20.1": "39.0.2171.65", + "0.20.2": "39.0.2171.65", + "0.20.3": "39.0.2171.65", + "0.20.4": "39.0.2171.65", + "0.20.5": "39.0.2171.65", + "0.20.6": "39.0.2171.65", + "0.20.7": "39.0.2171.65", + "0.20.8": "39.0.2171.65", + "0.21.0": "40.0.2214.91", + "0.21.1": "40.0.2214.91", + "0.21.2": "40.0.2214.91", + "0.21.3": "41.0.2272.76", + "0.22.1": "41.0.2272.76", + "0.22.2": "41.0.2272.76", + "0.22.3": "41.0.2272.76", + "0.23.0": "41.0.2272.76", + "0.24.0": "41.0.2272.76", + "0.25.0": "42.0.2311.107", + "0.25.1": "42.0.2311.107", + "0.25.2": "42.0.2311.107", + "0.25.3": "42.0.2311.107", + "0.26.0": "42.0.2311.107", + "0.26.1": "42.0.2311.107", + "0.27.0": "42.0.2311.107", + "0.27.1": "42.0.2311.107", + "0.27.2": "43.0.2357.65", + "0.27.3": "43.0.2357.65", + "0.28.0": "43.0.2357.65", + "0.28.1": "43.0.2357.65", + "0.28.2": "43.0.2357.65", + "0.28.3": "43.0.2357.65", + "0.29.1": "43.0.2357.65", + "0.29.2": "43.0.2357.65", + "0.30.4": "44.0.2403.125", + "0.31.0": "44.0.2403.125", + "0.31.2": "45.0.2454.85", + "0.32.2": "45.0.2454.85", + "0.32.3": "45.0.2454.85", + "0.33.0": "45.0.2454.85", + "0.33.1": "45.0.2454.85", + "0.33.2": "45.0.2454.85", + "0.33.3": "45.0.2454.85", + "0.33.4": "45.0.2454.85", + "0.33.6": "45.0.2454.85", + "0.33.7": "45.0.2454.85", + "0.33.8": "45.0.2454.85", + "0.33.9": "45.0.2454.85", + "0.34.0": "45.0.2454.85", + "0.34.1": "45.0.2454.85", + "0.34.2": "45.0.2454.85", + "0.34.3": "45.0.2454.85", + "0.34.4": "45.0.2454.85", + "0.35.1": "45.0.2454.85", + "0.35.2": "45.0.2454.85", + "0.35.3": "45.0.2454.85", + "0.35.4": "45.0.2454.85", + "0.35.5": "45.0.2454.85", + "0.36.0": "47.0.2526.73", + "0.36.2": "47.0.2526.73", + "0.36.3": "47.0.2526.73", + "0.36.4": "47.0.2526.73", + "0.36.5": "47.0.2526.110", + "0.36.6": "47.0.2526.110", + "0.36.7": "47.0.2526.110", + "0.36.8": "47.0.2526.110", + "0.36.9": "47.0.2526.110", + "0.36.10": "47.0.2526.110", + "0.36.11": "47.0.2526.110", + "0.36.12": "47.0.2526.110", + "0.37.0": "49.0.2623.75", + "0.37.1": "49.0.2623.75", + "0.37.3": "49.0.2623.75", + "0.37.4": "49.0.2623.75", + "0.37.5": "49.0.2623.75", + "0.37.6": "49.0.2623.75", + "0.37.7": "49.0.2623.75", + "0.37.8": "49.0.2623.75", + "1.0.0": "49.0.2623.75", + "1.0.1": "49.0.2623.75", + "1.0.2": "49.0.2623.75", + "1.1.0": "50.0.2661.102", + "1.1.1": "50.0.2661.102", + "1.1.2": "50.0.2661.102", + "1.1.3": "50.0.2661.102", + "1.2.0": "51.0.2704.63", + "1.2.1": "51.0.2704.63", + "1.2.2": "51.0.2704.84", + "1.2.3": "51.0.2704.84", + "1.2.4": "51.0.2704.103", + "1.2.5": "51.0.2704.103", + "1.2.6": "51.0.2704.106", + "1.2.7": "51.0.2704.106", + "1.2.8": "51.0.2704.106", + "1.3.0": "52.0.2743.82", + "1.3.1": "52.0.2743.82", + "1.3.2": "52.0.2743.82", + "1.3.3": "52.0.2743.82", + "1.3.4": "52.0.2743.82", + "1.3.5": "52.0.2743.82", + "1.3.6": "52.0.2743.82", + "1.3.7": "52.0.2743.82", + "1.3.9": "52.0.2743.82", + "1.3.10": "52.0.2743.82", + "1.3.13": "52.0.2743.82", + "1.3.14": "52.0.2743.82", + "1.3.15": "52.0.2743.82", + "1.4.0": "53.0.2785.113", + "1.4.1": "53.0.2785.113", + "1.4.2": "53.0.2785.113", + "1.4.3": "53.0.2785.113", + "1.4.4": "53.0.2785.113", + "1.4.5": "53.0.2785.113", + "1.4.6": "53.0.2785.143", + "1.4.7": "53.0.2785.143", + "1.4.8": "53.0.2785.143", + "1.4.10": "53.0.2785.143", + "1.4.11": "53.0.2785.143", + "1.4.12": "54.0.2840.51", + "1.4.13": "53.0.2785.143", + "1.4.14": "53.0.2785.143", + "1.4.15": "53.0.2785.143", + "1.4.16": "53.0.2785.143", + "1.5.0": "54.0.2840.101", + "1.5.1": "54.0.2840.101", + "1.6.0": "56.0.2924.87", + "1.6.1": "56.0.2924.87", + "1.6.2": "56.0.2924.87", + "1.6.3": "56.0.2924.87", + "1.6.4": "56.0.2924.87", + "1.6.5": "56.0.2924.87", + "1.6.6": "56.0.2924.87", + "1.6.7": "56.0.2924.87", + "1.6.8": "56.0.2924.87", + "1.6.9": "56.0.2924.87", + "1.6.10": "56.0.2924.87", + "1.6.11": "56.0.2924.87", + "1.6.12": "56.0.2924.87", + "1.6.13": "56.0.2924.87", + "1.6.14": "56.0.2924.87", + "1.6.15": "56.0.2924.87", + "1.6.16": "56.0.2924.87", + "1.6.17": "56.0.2924.87", + "1.6.18": "56.0.2924.87", + "1.7.0": "58.0.3029.110", + "1.7.1": "58.0.3029.110", + "1.7.2": "58.0.3029.110", + "1.7.3": "58.0.3029.110", + "1.7.4": "58.0.3029.110", + "1.7.5": "58.0.3029.110", + "1.7.6": "58.0.3029.110", + "1.7.7": "58.0.3029.110", + "1.7.8": "58.0.3029.110", + "1.7.9": "58.0.3029.110", + "1.7.10": "58.0.3029.110", + "1.7.11": "58.0.3029.110", + "1.7.12": "58.0.3029.110", + "1.7.13": "58.0.3029.110", + "1.7.14": "58.0.3029.110", + "1.7.15": "58.0.3029.110", + "1.7.16": "58.0.3029.110", + "1.8.0": "59.0.3071.115", + "1.8.1": "59.0.3071.115", + "1.8.2-beta.1": "59.0.3071.115", + "1.8.2-beta.2": "59.0.3071.115", + "1.8.2-beta.3": "59.0.3071.115", + "1.8.2-beta.4": "59.0.3071.115", + "1.8.2-beta.5": "59.0.3071.115", + "1.8.2": "59.0.3071.115", + "1.8.3": "59.0.3071.115", + "1.8.4": "59.0.3071.115", + "1.8.5": "59.0.3071.115", + "1.8.6": "59.0.3071.115", + "1.8.7": "59.0.3071.115", + "1.8.8": "59.0.3071.115", + "2.0.0-beta.1": "61.0.3163.100", + "2.0.0-beta.2": "61.0.3163.100", + "2.0.0-beta.3": "61.0.3163.100", + "2.0.0-beta.4": "61.0.3163.100", + "2.0.0-beta.5": "61.0.3163.100", + "2.0.0-beta.6": "61.0.3163.100", + "2.0.0-beta.7": "61.0.3163.100", + "2.0.0-beta.8": "61.0.3163.100", + "2.0.0": "61.0.3163.100", + "2.0.1": "61.0.3163.100", + "2.0.2": "61.0.3163.100", + "2.0.3": "61.0.3163.100", + "2.0.4": "61.0.3163.100", + "2.0.5": "61.0.3163.100", + "2.0.6": "61.0.3163.100", + "2.0.7": "61.0.3163.100", + "2.0.8-nightly.20180819": "61.0.3163.100", + "2.0.8-nightly.20180820": "61.0.3163.100", + "2.0.8": "61.0.3163.100", + "2.0.9": "61.0.3163.100", + "2.0.10": "61.0.3163.100", + "2.0.11": "61.0.3163.100", + "2.0.12": "61.0.3163.100", + "2.0.13": "61.0.3163.100", + "2.0.14": "61.0.3163.100", + "2.0.15": "61.0.3163.100", + "2.0.16": "61.0.3163.100", + "2.0.17": "61.0.3163.100", + "2.0.18": "61.0.3163.100", + "2.1.0-unsupported.20180809": "61.0.3163.100", + "3.0.0-beta.1": "66.0.3359.181", + "3.0.0-beta.2": "66.0.3359.181", + "3.0.0-beta.3": "66.0.3359.181", + "3.0.0-beta.4": "66.0.3359.181", + "3.0.0-beta.5": "66.0.3359.181", + "3.0.0-beta.6": "66.0.3359.181", + "3.0.0-beta.7": "66.0.3359.181", + "3.0.0-beta.8": "66.0.3359.181", + "3.0.0-beta.9": "66.0.3359.181", + "3.0.0-beta.10": "66.0.3359.181", + "3.0.0-beta.11": "66.0.3359.181", + "3.0.0-beta.12": "66.0.3359.181", + "3.0.0-beta.13": "66.0.3359.181", + "3.0.0-nightly.20180818": "66.0.3359.181", + "3.0.0-nightly.20180821": "66.0.3359.181", + "3.0.0-nightly.20180823": "66.0.3359.181", + "3.0.0-nightly.20180904": "66.0.3359.181", + "3.0.0": "66.0.3359.181", + "3.0.1": "66.0.3359.181", + "3.0.2": "66.0.3359.181", + "3.0.3": "66.0.3359.181", + "3.0.4": "66.0.3359.181", + "3.0.5": "66.0.3359.181", + "3.0.6": "66.0.3359.181", + "3.0.7": "66.0.3359.181", + "3.0.8": "66.0.3359.181", + "3.0.9": "66.0.3359.181", + "3.0.10": "66.0.3359.181", + "3.0.11": "66.0.3359.181", + "3.0.12": "66.0.3359.181", + "3.0.13": "66.0.3359.181", + "3.0.14": "66.0.3359.181", + "3.0.15": "66.0.3359.181", + "3.0.16": "66.0.3359.181", + "3.1.0-beta.1": "66.0.3359.181", + "3.1.0-beta.2": "66.0.3359.181", + "3.1.0-beta.3": "66.0.3359.181", + "3.1.0-beta.4": "66.0.3359.181", + "3.1.0-beta.5": "66.0.3359.181", + "3.1.0": "66.0.3359.181", + "3.1.1": "66.0.3359.181", + "3.1.2": "66.0.3359.181", + "3.1.3": "66.0.3359.181", + "3.1.4": "66.0.3359.181", + "3.1.5": "66.0.3359.181", + "3.1.6": "66.0.3359.181", + "3.1.7": "66.0.3359.181", + "3.1.8": "66.0.3359.181", + "3.1.9": "66.0.3359.181", + "3.1.10": "66.0.3359.181", + "3.1.11": "66.0.3359.181", + "3.1.12": "66.0.3359.181", + "3.1.13": "66.0.3359.181", + "4.0.0-beta.1": "69.0.3497.106", + "4.0.0-beta.2": "69.0.3497.106", + "4.0.0-beta.3": "69.0.3497.106", + "4.0.0-beta.4": "69.0.3497.106", + "4.0.0-beta.5": "69.0.3497.106", + "4.0.0-beta.6": "69.0.3497.106", + "4.0.0-beta.7": "69.0.3497.106", + "4.0.0-beta.8": "69.0.3497.106", + "4.0.0-beta.9": "69.0.3497.106", + "4.0.0-beta.10": "69.0.3497.106", + "4.0.0-beta.11": "69.0.3497.106", + "4.0.0-nightly.20180817": "66.0.3359.181", + "4.0.0-nightly.20180819": "66.0.3359.181", + "4.0.0-nightly.20180821": "66.0.3359.181", + "4.0.0-nightly.20180929": "67.0.3396.99", + "4.0.0-nightly.20181006": "68.0.3440.128", + "4.0.0-nightly.20181010": "69.0.3497.106", + "4.0.0": "69.0.3497.106", + "4.0.1": "69.0.3497.106", + "4.0.2": "69.0.3497.106", + "4.0.3": "69.0.3497.106", + "4.0.4": "69.0.3497.106", + "4.0.5": "69.0.3497.106", + "4.0.6": "69.0.3497.106", + "4.0.7": "69.0.3497.128", + "4.0.8": "69.0.3497.128", + "4.1.0": "69.0.3497.128", + "4.1.1": "69.0.3497.128", + "4.1.2": "69.0.3497.128", + "4.1.3": "69.0.3497.128", + "4.1.4": "69.0.3497.128", + "4.1.5": "69.0.3497.128", + "4.2.0": "69.0.3497.128", + "4.2.1": "69.0.3497.128", + "4.2.2": "69.0.3497.128", + "4.2.3": "69.0.3497.128", + "4.2.4": "69.0.3497.128", + "4.2.5": "69.0.3497.128", + "4.2.6": "69.0.3497.128", + "4.2.7": "69.0.3497.128", + "4.2.8": "69.0.3497.128", + "4.2.9": "69.0.3497.128", + "4.2.10": "69.0.3497.128", + "4.2.11": "69.0.3497.128", + "4.2.12": "69.0.3497.128", + "5.0.0-beta.1": "72.0.3626.52", + "5.0.0-beta.2": "72.0.3626.52", + "5.0.0-beta.3": "73.0.3683.27", + "5.0.0-beta.4": "73.0.3683.54", + "5.0.0-beta.5": "73.0.3683.61", + "5.0.0-beta.6": "73.0.3683.84", + "5.0.0-beta.7": "73.0.3683.94", + "5.0.0-beta.8": "73.0.3683.104", + "5.0.0-beta.9": "73.0.3683.117", + "5.0.0-nightly.20190107": "70.0.3538.110", + "5.0.0-nightly.20190121": "71.0.3578.98", + "5.0.0-nightly.20190122": "71.0.3578.98", + "5.0.0": "73.0.3683.119", + "5.0.1": "73.0.3683.121", + "5.0.2": "73.0.3683.121", + "5.0.3": "73.0.3683.121", + "5.0.4": "73.0.3683.121", + "5.0.5": "73.0.3683.121", + "5.0.6": "73.0.3683.121", + "5.0.7": "73.0.3683.121", + "5.0.8": "73.0.3683.121", + "5.0.9": "73.0.3683.121", + "5.0.10": "73.0.3683.121", + "5.0.11": "73.0.3683.121", + "5.0.12": "73.0.3683.121", + "5.0.13": "73.0.3683.121", + "6.0.0-beta.1": "76.0.3774.1", + "6.0.0-beta.2": "76.0.3783.1", + "6.0.0-beta.3": "76.0.3783.1", + "6.0.0-beta.4": "76.0.3783.1", + "6.0.0-beta.5": "76.0.3805.4", + "6.0.0-beta.6": "76.0.3809.3", + "6.0.0-beta.7": "76.0.3809.22", + "6.0.0-beta.8": "76.0.3809.26", + "6.0.0-beta.9": "76.0.3809.26", + "6.0.0-beta.10": "76.0.3809.37", + "6.0.0-beta.11": "76.0.3809.42", + "6.0.0-beta.12": "76.0.3809.54", + "6.0.0-beta.13": "76.0.3809.60", + "6.0.0-beta.14": "76.0.3809.68", + "6.0.0-beta.15": "76.0.3809.74", + "6.0.0-nightly.20190123": "72.0.3626.52", + "6.0.0-nightly.20190212": "72.0.3626.107", + "6.0.0-nightly.20190213": "72.0.3626.110", + "6.0.0-nightly.20190311": "74.0.3724.8", + "6.0.0": "76.0.3809.88", + "6.0.1": "76.0.3809.102", + "6.0.2": "76.0.3809.110", + "6.0.3": "76.0.3809.126", + "6.0.4": "76.0.3809.131", + "6.0.5": "76.0.3809.136", + "6.0.6": "76.0.3809.138", + "6.0.7": "76.0.3809.139", + "6.0.8": "76.0.3809.146", + "6.0.9": "76.0.3809.146", + "6.0.10": "76.0.3809.146", + "6.0.11": "76.0.3809.146", + "6.0.12": "76.0.3809.146", + "6.1.0": "76.0.3809.146", + "6.1.1": "76.0.3809.146", + "6.1.2": "76.0.3809.146", + "6.1.3": "76.0.3809.146", + "6.1.4": "76.0.3809.146", + "6.1.5": "76.0.3809.146", + "6.1.6": "76.0.3809.146", + "6.1.7": "76.0.3809.146", + "6.1.8": "76.0.3809.146", + "6.1.9": "76.0.3809.146", + "6.1.10": "76.0.3809.146", + "6.1.11": "76.0.3809.146", + "6.1.12": "76.0.3809.146", + "7.0.0-beta.1": "78.0.3866.0", + "7.0.0-beta.2": "78.0.3866.0", + "7.0.0-beta.3": "78.0.3866.0", + "7.0.0-beta.4": "78.0.3896.6", + "7.0.0-beta.5": "78.0.3905.1", + "7.0.0-beta.6": "78.0.3905.1", + "7.0.0-beta.7": "78.0.3905.1", + "7.0.0-nightly.20190521": "76.0.3784.0", + "7.0.0-nightly.20190529": "76.0.3806.0", + "7.0.0-nightly.20190530": "76.0.3806.0", + "7.0.0-nightly.20190531": "76.0.3806.0", + "7.0.0-nightly.20190602": "76.0.3806.0", + "7.0.0-nightly.20190603": "76.0.3806.0", + "7.0.0-nightly.20190604": "77.0.3814.0", + "7.0.0-nightly.20190605": "77.0.3815.0", + "7.0.0-nightly.20190606": "77.0.3815.0", + "7.0.0-nightly.20190607": "77.0.3815.0", + "7.0.0-nightly.20190608": "77.0.3815.0", + "7.0.0-nightly.20190609": "77.0.3815.0", + "7.0.0-nightly.20190611": "77.0.3815.0", + "7.0.0-nightly.20190612": "77.0.3815.0", + "7.0.0-nightly.20190613": "77.0.3815.0", + "7.0.0-nightly.20190615": "77.0.3815.0", + "7.0.0-nightly.20190616": "77.0.3815.0", + "7.0.0-nightly.20190618": "77.0.3815.0", + "7.0.0-nightly.20190619": "77.0.3815.0", + "7.0.0-nightly.20190622": "77.0.3815.0", + "7.0.0-nightly.20190623": "77.0.3815.0", + "7.0.0-nightly.20190624": "77.0.3815.0", + "7.0.0-nightly.20190627": "77.0.3815.0", + "7.0.0-nightly.20190629": "77.0.3815.0", + "7.0.0-nightly.20190630": "77.0.3815.0", + "7.0.0-nightly.20190701": "77.0.3815.0", + "7.0.0-nightly.20190702": "77.0.3815.0", + "7.0.0-nightly.20190704": "77.0.3843.0", + "7.0.0-nightly.20190705": "77.0.3843.0", + "7.0.0-nightly.20190719": "77.0.3848.0", + "7.0.0-nightly.20190720": "77.0.3848.0", + "7.0.0-nightly.20190721": "77.0.3848.0", + "7.0.0-nightly.20190726": "77.0.3864.0", + "7.0.0-nightly.20190727": "78.0.3866.0", + "7.0.0-nightly.20190728": "78.0.3866.0", + "7.0.0-nightly.20190729": "78.0.3866.0", + "7.0.0-nightly.20190730": "78.0.3866.0", + "7.0.0-nightly.20190731": "78.0.3866.0", + "7.0.0": "78.0.3905.1", + "7.0.1": "78.0.3904.92", + "7.1.0": "78.0.3904.94", + "7.1.1": "78.0.3904.99", + "7.1.2": "78.0.3904.113", + "7.1.3": "78.0.3904.126", + "7.1.4": "78.0.3904.130", + "7.1.5": "78.0.3904.130", + "7.1.6": "78.0.3904.130", + "7.1.7": "78.0.3904.130", + "7.1.8": "78.0.3904.130", + "7.1.9": "78.0.3904.130", + "7.1.10": "78.0.3904.130", + "7.1.11": "78.0.3904.130", + "7.1.12": "78.0.3904.130", + "7.1.13": "78.0.3904.130", + "7.1.14": "78.0.3904.130", + "7.2.0": "78.0.3904.130", + "7.2.1": "78.0.3904.130", + "7.2.2": "78.0.3904.130", + "7.2.3": "78.0.3904.130", + "7.2.4": "78.0.3904.130", + "7.3.0": "78.0.3904.130", + "7.3.1": "78.0.3904.130", + "7.3.2": "78.0.3904.130", + "7.3.3": "78.0.3904.130", + "8.0.0-beta.1": "79.0.3931.0", + "8.0.0-beta.2": "79.0.3931.0", + "8.0.0-beta.3": "80.0.3955.0", + "8.0.0-beta.4": "80.0.3955.0", + "8.0.0-beta.5": "80.0.3987.14", + "8.0.0-beta.6": "80.0.3987.51", + "8.0.0-beta.7": "80.0.3987.59", + "8.0.0-beta.8": "80.0.3987.75", + "8.0.0-beta.9": "80.0.3987.75", + "8.0.0-nightly.20190801": "78.0.3866.0", + "8.0.0-nightly.20190802": "78.0.3866.0", + "8.0.0-nightly.20190803": "78.0.3871.0", + "8.0.0-nightly.20190806": "78.0.3871.0", + "8.0.0-nightly.20190807": "78.0.3871.0", + "8.0.0-nightly.20190808": "78.0.3871.0", + "8.0.0-nightly.20190809": "78.0.3871.0", + "8.0.0-nightly.20190810": "78.0.3871.0", + "8.0.0-nightly.20190811": "78.0.3871.0", + "8.0.0-nightly.20190812": "78.0.3871.0", + "8.0.0-nightly.20190813": "78.0.3871.0", + "8.0.0-nightly.20190814": "78.0.3871.0", + "8.0.0-nightly.20190815": "78.0.3871.0", + "8.0.0-nightly.20190816": "78.0.3881.0", + "8.0.0-nightly.20190817": "78.0.3881.0", + "8.0.0-nightly.20190818": "78.0.3881.0", + "8.0.0-nightly.20190819": "78.0.3881.0", + "8.0.0-nightly.20190820": "78.0.3881.0", + "8.0.0-nightly.20190824": "78.0.3892.0", + "8.0.0-nightly.20190825": "78.0.3892.0", + "8.0.0-nightly.20190827": "78.0.3892.0", + "8.0.0-nightly.20190828": "78.0.3892.0", + "8.0.0-nightly.20190830": "78.0.3892.0", + "8.0.0-nightly.20190901": "78.0.3892.0", + "8.0.0-nightly.20190902": "78.0.3892.0", + "8.0.0-nightly.20190907": "78.0.3892.0", + "8.0.0-nightly.20190909": "78.0.3892.0", + "8.0.0-nightly.20190910": "78.0.3892.0", + "8.0.0-nightly.20190911": "78.0.3892.0", + "8.0.0-nightly.20190912": "78.0.3892.0", + "8.0.0-nightly.20190913": "78.0.3892.0", + "8.0.0-nightly.20190914": "78.0.3892.0", + "8.0.0-nightly.20190915": "78.0.3892.0", + "8.0.0-nightly.20190917": "78.0.3892.0", + "8.0.0-nightly.20190919": "79.0.3915.0", + "8.0.0-nightly.20190920": "79.0.3915.0", + "8.0.0-nightly.20190922": "79.0.3919.0", + "8.0.0-nightly.20190923": "79.0.3919.0", + "8.0.0-nightly.20190924": "79.0.3919.0", + "8.0.0-nightly.20190926": "79.0.3919.0", + "8.0.0-nightly.20190928": "79.0.3919.0", + "8.0.0-nightly.20190929": "79.0.3919.0", + "8.0.0-nightly.20190930": "79.0.3919.0", + "8.0.0-nightly.20191001": "79.0.3919.0", + "8.0.0-nightly.20191004": "79.0.3919.0", + "8.0.0-nightly.20191005": "79.0.3919.0", + "8.0.0-nightly.20191006": "79.0.3919.0", + "8.0.0-nightly.20191009": "79.0.3919.0", + "8.0.0-nightly.20191011": "79.0.3919.0", + "8.0.0-nightly.20191012": "79.0.3919.0", + "8.0.0-nightly.20191017": "79.0.3919.0", + "8.0.0-nightly.20191019": "79.0.3931.0", + "8.0.0-nightly.20191020": "79.0.3931.0", + "8.0.0-nightly.20191021": "79.0.3931.0", + "8.0.0-nightly.20191023": "79.0.3931.0", + "8.0.0-nightly.20191101": "80.0.3952.0", + "8.0.0-nightly.20191103": "80.0.3952.0", + "8.0.0-nightly.20191105": "80.0.3952.0", + "8.0.0": "80.0.3987.86", + "8.0.1": "80.0.3987.86", + "8.0.2": "80.0.3987.86", + "8.0.3": "80.0.3987.134", + "8.1.0": "80.0.3987.137", + "8.1.1": "80.0.3987.141", + "8.2.0": "80.0.3987.158", + "8.2.1": "80.0.3987.163", + "8.2.2": "80.0.3987.163", + "8.2.3": "80.0.3987.163", + "8.2.4": "80.0.3987.165", + "8.2.5": "80.0.3987.165", + "8.3.0": "80.0.3987.165", + "8.3.1": "80.0.3987.165", + "8.3.2": "80.0.3987.165", + "8.3.3": "80.0.3987.165", + "8.3.4": "80.0.3987.165", + "8.4.0": "80.0.3987.165", + "8.4.1": "80.0.3987.165", + "8.5.0": "80.0.3987.165", + "8.5.1": "80.0.3987.165", + "8.5.2": "80.0.3987.165", + "8.5.3": "80.0.3987.163", + "8.5.4": "80.0.3987.163", + "8.5.5": "80.0.3987.163", + "9.0.0-beta.1": "82.0.4048.0", + "9.0.0-beta.2": "82.0.4048.0", + "9.0.0-beta.3": "82.0.4048.0", + "9.0.0-beta.4": "82.0.4048.0", + "9.0.0-beta.5": "82.0.4048.0", + "9.0.0-beta.6": "82.0.4058.2", + "9.0.0-beta.7": "82.0.4058.2", + "9.0.0-beta.9": "82.0.4058.2", + "9.0.0-beta.10": "82.0.4085.10", + "9.0.0-beta.11": "82.0.4085.14", + "9.0.0-beta.12": "82.0.4085.14", + "9.0.0-beta.13": "82.0.4085.14", + "9.0.0-beta.14": "82.0.4085.27", + "9.0.0-beta.15": "83.0.4102.3", + "9.0.0-beta.16": "83.0.4102.3", + "9.0.0-beta.17": "83.0.4103.14", + "9.0.0-beta.18": "83.0.4103.16", + "9.0.0-beta.19": "83.0.4103.24", + "9.0.0-beta.20": "83.0.4103.26", + "9.0.0-beta.21": "83.0.4103.26", + "9.0.0-beta.22": "83.0.4103.34", + "9.0.0-beta.23": "83.0.4103.44", + "9.0.0-beta.24": "83.0.4103.45", + "9.0.0-nightly.20191121": "80.0.3954.0", + "9.0.0-nightly.20191122": "80.0.3954.0", + "9.0.0-nightly.20191123": "80.0.3954.0", + "9.0.0-nightly.20191124": "80.0.3954.0", + "9.0.0-nightly.20191126": "80.0.3954.0", + "9.0.0-nightly.20191128": "80.0.3954.0", + "9.0.0-nightly.20191129": "80.0.3954.0", + "9.0.0-nightly.20191130": "80.0.3954.0", + "9.0.0-nightly.20191201": "80.0.3954.0", + "9.0.0-nightly.20191202": "80.0.3954.0", + "9.0.0-nightly.20191203": "80.0.3954.0", + "9.0.0-nightly.20191204": "80.0.3954.0", + "9.0.0-nightly.20191205": "80.0.3954.0", + "9.0.0-nightly.20191210": "80.0.3954.0", + "9.0.0-nightly.20191220": "81.0.3994.0", + "9.0.0-nightly.20191221": "81.0.3994.0", + "9.0.0-nightly.20191222": "81.0.3994.0", + "9.0.0-nightly.20191223": "81.0.3994.0", + "9.0.0-nightly.20191224": "81.0.3994.0", + "9.0.0-nightly.20191225": "81.0.3994.0", + "9.0.0-nightly.20191226": "81.0.3994.0", + "9.0.0-nightly.20191228": "81.0.3994.0", + "9.0.0-nightly.20191229": "81.0.3994.0", + "9.0.0-nightly.20191230": "81.0.3994.0", + "9.0.0-nightly.20191231": "81.0.3994.0", + "9.0.0-nightly.20200101": "81.0.3994.0", + "9.0.0-nightly.20200103": "81.0.3994.0", + "9.0.0-nightly.20200104": "81.0.3994.0", + "9.0.0-nightly.20200105": "81.0.3994.0", + "9.0.0-nightly.20200106": "81.0.3994.0", + "9.0.0-nightly.20200108": "81.0.3994.0", + "9.0.0-nightly.20200109": "81.0.3994.0", + "9.0.0-nightly.20200110": "81.0.3994.0", + "9.0.0-nightly.20200111": "81.0.3994.0", + "9.0.0-nightly.20200113": "81.0.3994.0", + "9.0.0-nightly.20200115": "81.0.3994.0", + "9.0.0-nightly.20200116": "81.0.3994.0", + "9.0.0-nightly.20200117": "81.0.3994.0", + "9.0.0-nightly.20200119": "81.0.4030.0", + "9.0.0-nightly.20200121": "81.0.4030.0", + "9.0.0": "83.0.4103.64", + "9.0.1": "83.0.4103.94", + "9.0.2": "83.0.4103.94", + "9.0.3": "83.0.4103.100", + "9.0.4": "83.0.4103.104", + "9.0.5": "83.0.4103.119", + "9.1.0": "83.0.4103.122", + "9.1.1": "83.0.4103.122", + "9.1.2": "83.0.4103.122", + "9.2.0": "83.0.4103.122", + "9.2.1": "83.0.4103.122", + "9.3.0": "83.0.4103.122", + "9.3.1": "83.0.4103.122", + "9.3.2": "83.0.4103.122", + "9.3.3": "83.0.4103.122", + "9.3.4": "83.0.4103.122", + "9.3.5": "83.0.4103.122", + "9.4.0": "83.0.4103.122", + "9.4.1": "83.0.4103.122", + "9.4.2": "83.0.4103.122", + "9.4.3": "83.0.4103.122", + "9.4.4": "83.0.4103.122", + "10.0.0-beta.1": "84.0.4129.0", + "10.0.0-beta.2": "84.0.4129.0", + "10.0.0-beta.3": "85.0.4161.2", + "10.0.0-beta.4": "85.0.4161.2", + "10.0.0-beta.8": "85.0.4181.1", + "10.0.0-beta.9": "85.0.4181.1", + "10.0.0-beta.10": "85.0.4183.19", + "10.0.0-beta.11": "85.0.4183.20", + "10.0.0-beta.12": "85.0.4183.26", + "10.0.0-beta.13": "85.0.4183.39", + "10.0.0-beta.14": "85.0.4183.39", + "10.0.0-beta.15": "85.0.4183.39", + "10.0.0-beta.17": "85.0.4183.39", + "10.0.0-beta.19": "85.0.4183.39", + "10.0.0-beta.20": "85.0.4183.39", + "10.0.0-beta.21": "85.0.4183.39", + "10.0.0-beta.23": "85.0.4183.70", + "10.0.0-beta.24": "85.0.4183.78", + "10.0.0-beta.25": "85.0.4183.80", + "10.0.0-nightly.20200209": "82.0.4050.0", + "10.0.0-nightly.20200210": "82.0.4050.0", + "10.0.0-nightly.20200211": "82.0.4050.0", + "10.0.0-nightly.20200216": "82.0.4050.0", + "10.0.0-nightly.20200217": "82.0.4050.0", + "10.0.0-nightly.20200218": "82.0.4050.0", + "10.0.0-nightly.20200221": "82.0.4050.0", + "10.0.0-nightly.20200222": "82.0.4050.0", + "10.0.0-nightly.20200223": "82.0.4050.0", + "10.0.0-nightly.20200226": "82.0.4050.0", + "10.0.0-nightly.20200303": "82.0.4050.0", + "10.0.0-nightly.20200304": "82.0.4076.0", + "10.0.0-nightly.20200305": "82.0.4076.0", + "10.0.0-nightly.20200306": "82.0.4076.0", + "10.0.0-nightly.20200309": "82.0.4076.0", + "10.0.0-nightly.20200310": "82.0.4076.0", + "10.0.0-nightly.20200311": "82.0.4083.0", + "10.0.0-nightly.20200316": "83.0.4086.0", + "10.0.0-nightly.20200317": "83.0.4087.0", + "10.0.0-nightly.20200318": "83.0.4087.0", + "10.0.0-nightly.20200320": "83.0.4087.0", + "10.0.0-nightly.20200323": "83.0.4087.0", + "10.0.0-nightly.20200324": "83.0.4087.0", + "10.0.0-nightly.20200325": "83.0.4087.0", + "10.0.0-nightly.20200326": "83.0.4087.0", + "10.0.0-nightly.20200327": "83.0.4087.0", + "10.0.0-nightly.20200330": "83.0.4087.0", + "10.0.0-nightly.20200331": "83.0.4087.0", + "10.0.0-nightly.20200401": "83.0.4087.0", + "10.0.0-nightly.20200402": "83.0.4087.0", + "10.0.0-nightly.20200403": "83.0.4087.0", + "10.0.0-nightly.20200406": "83.0.4087.0", + "10.0.0-nightly.20200408": "83.0.4095.0", + "10.0.0-nightly.20200410": "83.0.4095.0", + "10.0.0-nightly.20200413": "83.0.4095.0", + "10.0.0-nightly.20200414": "84.0.4114.0", + "10.0.0-nightly.20200415": "84.0.4115.0", + "10.0.0-nightly.20200416": "84.0.4115.0", + "10.0.0-nightly.20200417": "84.0.4115.0", + "10.0.0-nightly.20200422": "84.0.4121.0", + "10.0.0-nightly.20200423": "84.0.4121.0", + "10.0.0-nightly.20200427": "84.0.4125.0", + "10.0.0-nightly.20200428": "84.0.4125.0", + "10.0.0-nightly.20200429": "84.0.4125.0", + "10.0.0-nightly.20200430": "84.0.4125.0", + "10.0.0-nightly.20200501": "84.0.4129.0", + "10.0.0-nightly.20200504": "84.0.4129.0", + "10.0.0-nightly.20200505": "84.0.4129.0", + "10.0.0-nightly.20200506": "84.0.4129.0", + "10.0.0-nightly.20200507": "84.0.4129.0", + "10.0.0-nightly.20200508": "84.0.4129.0", + "10.0.0-nightly.20200511": "84.0.4129.0", + "10.0.0-nightly.20200512": "84.0.4129.0", + "10.0.0-nightly.20200513": "84.0.4129.0", + "10.0.0-nightly.20200514": "84.0.4129.0", + "10.0.0-nightly.20200515": "84.0.4129.0", + "10.0.0-nightly.20200518": "84.0.4129.0", + "10.0.0-nightly.20200519": "84.0.4129.0", + "10.0.0-nightly.20200520": "84.0.4129.0", + "10.0.0-nightly.20200521": "84.0.4129.0", + "10.0.0": "85.0.4183.84", + "10.0.1": "85.0.4183.86", + "10.1.0": "85.0.4183.87", + "10.1.1": "85.0.4183.93", + "10.1.2": "85.0.4183.98", + "10.1.3": "85.0.4183.121", + "10.1.4": "85.0.4183.121", + "10.1.5": "85.0.4183.121", + "10.1.6": "85.0.4183.121", + "10.1.7": "85.0.4183.121", + "10.2.0": "85.0.4183.121", + "10.3.0": "85.0.4183.121", + "10.3.1": "85.0.4183.121", + "10.3.2": "85.0.4183.121", + "10.4.0": "85.0.4183.121", + "10.4.1": "85.0.4183.121", + "10.4.2": "85.0.4183.121", + "10.4.3": "85.0.4183.121", + "10.4.4": "85.0.4183.121", + "10.4.5": "85.0.4183.121", + "10.4.6": "85.0.4183.121", + "10.4.7": "85.0.4183.121", + "11.0.0-beta.1": "86.0.4234.0", + "11.0.0-beta.3": "86.0.4234.0", + "11.0.0-beta.4": "86.0.4234.0", + "11.0.0-beta.5": "86.0.4234.0", + "11.0.0-beta.6": "86.0.4234.0", + "11.0.0-beta.7": "86.0.4234.0", + "11.0.0-beta.8": "87.0.4251.1", + "11.0.0-beta.9": "87.0.4251.1", + "11.0.0-beta.11": "87.0.4251.1", + "11.0.0-beta.12": "87.0.4280.11", + "11.0.0-beta.13": "87.0.4280.11", + "11.0.0-beta.16": "87.0.4280.27", + "11.0.0-beta.17": "87.0.4280.27", + "11.0.0-beta.18": "87.0.4280.27", + "11.0.0-beta.19": "87.0.4280.27", + "11.0.0-beta.20": "87.0.4280.40", + "11.0.0-beta.22": "87.0.4280.47", + "11.0.0-beta.23": "87.0.4280.47", + "11.0.0-nightly.20200525": "84.0.4129.0", + "11.0.0-nightly.20200526": "84.0.4129.0", + "11.0.0-nightly.20200529": "85.0.4156.0", + "11.0.0-nightly.20200602": "85.0.4162.0", + "11.0.0-nightly.20200603": "85.0.4162.0", + "11.0.0-nightly.20200604": "85.0.4162.0", + "11.0.0-nightly.20200609": "85.0.4162.0", + "11.0.0-nightly.20200610": "85.0.4162.0", + "11.0.0-nightly.20200611": "85.0.4162.0", + "11.0.0-nightly.20200615": "85.0.4162.0", + "11.0.0-nightly.20200616": "85.0.4162.0", + "11.0.0-nightly.20200617": "85.0.4162.0", + "11.0.0-nightly.20200618": "85.0.4162.0", + "11.0.0-nightly.20200619": "85.0.4162.0", + "11.0.0-nightly.20200701": "85.0.4179.0", + "11.0.0-nightly.20200702": "85.0.4179.0", + "11.0.0-nightly.20200703": "85.0.4179.0", + "11.0.0-nightly.20200706": "85.0.4179.0", + "11.0.0-nightly.20200707": "85.0.4179.0", + "11.0.0-nightly.20200708": "85.0.4179.0", + "11.0.0-nightly.20200709": "85.0.4179.0", + "11.0.0-nightly.20200716": "86.0.4203.0", + "11.0.0-nightly.20200717": "86.0.4203.0", + "11.0.0-nightly.20200720": "86.0.4203.0", + "11.0.0-nightly.20200721": "86.0.4203.0", + "11.0.0-nightly.20200723": "86.0.4209.0", + "11.0.0-nightly.20200724": "86.0.4209.0", + "11.0.0-nightly.20200729": "86.0.4209.0", + "11.0.0-nightly.20200730": "86.0.4209.0", + "11.0.0-nightly.20200731": "86.0.4209.0", + "11.0.0-nightly.20200803": "86.0.4209.0", + "11.0.0-nightly.20200804": "86.0.4209.0", + "11.0.0-nightly.20200805": "86.0.4209.0", + "11.0.0-nightly.20200811": "86.0.4209.0", + "11.0.0-nightly.20200812": "86.0.4209.0", + "11.0.0-nightly.20200822": "86.0.4234.0", + "11.0.0-nightly.20200824": "86.0.4234.0", + "11.0.0-nightly.20200825": "86.0.4234.0", + "11.0.0-nightly.20200826": "86.0.4234.0", + "11.0.0": "87.0.4280.60", + "11.0.1": "87.0.4280.60", + "11.0.2": "87.0.4280.67", + "11.0.3": "87.0.4280.67", + "11.0.4": "87.0.4280.67", + "11.0.5": "87.0.4280.88", + "11.1.0": "87.0.4280.88", + "11.1.1": "87.0.4280.88", + "11.2.0": "87.0.4280.141", + "11.2.1": "87.0.4280.141", + "11.2.2": "87.0.4280.141", + "11.2.3": "87.0.4280.141", + "11.3.0": "87.0.4280.141", + "11.4.0": "87.0.4280.141", + "11.4.1": "87.0.4280.141", + "11.4.2": "87.0.4280.141", + "11.4.3": "87.0.4280.141", + "11.4.4": "87.0.4280.141", + "11.4.5": "87.0.4280.141", + "11.4.6": "87.0.4280.141", + "11.4.7": "87.0.4280.141", + "11.4.8": "87.0.4280.141", + "11.4.9": "87.0.4280.141", + "11.4.10": "87.0.4280.141", + "11.4.11": "87.0.4280.141", + "11.4.12": "87.0.4280.141", + "11.5.0": "87.0.4280.141", + "12.0.0-beta.1": "89.0.4328.0", + "12.0.0-beta.3": "89.0.4328.0", + "12.0.0-beta.4": "89.0.4328.0", + "12.0.0-beta.5": "89.0.4328.0", + "12.0.0-beta.6": "89.0.4328.0", + "12.0.0-beta.7": "89.0.4328.0", + "12.0.0-beta.8": "89.0.4328.0", + "12.0.0-beta.9": "89.0.4328.0", + "12.0.0-beta.10": "89.0.4328.0", + "12.0.0-beta.11": "89.0.4328.0", + "12.0.0-beta.12": "89.0.4328.0", + "12.0.0-beta.14": "89.0.4328.0", + "12.0.0-beta.16": "89.0.4348.1", + "12.0.0-beta.18": "89.0.4348.1", + "12.0.0-beta.19": "89.0.4348.1", + "12.0.0-beta.20": "89.0.4348.1", + "12.0.0-beta.21": "89.0.4388.2", + "12.0.0-beta.22": "89.0.4388.2", + "12.0.0-beta.23": "89.0.4388.2", + "12.0.0-beta.24": "89.0.4388.2", + "12.0.0-beta.25": "89.0.4388.2", + "12.0.0-beta.26": "89.0.4388.2", + "12.0.0-beta.27": "89.0.4389.23", + "12.0.0-beta.28": "89.0.4389.23", + "12.0.0-beta.29": "89.0.4389.23", + "12.0.0-beta.30": "89.0.4389.58", + "12.0.0-beta.31": "89.0.4389.58", + "12.0.0-nightly.20200827": "86.0.4234.0", + "12.0.0-nightly.20200831": "86.0.4234.0", + "12.0.0-nightly.20200902": "86.0.4234.0", + "12.0.0-nightly.20200903": "86.0.4234.0", + "12.0.0-nightly.20200907": "86.0.4234.0", + "12.0.0-nightly.20200910": "86.0.4234.0", + "12.0.0-nightly.20200911": "86.0.4234.0", + "12.0.0-nightly.20200914": "86.0.4234.0", + "12.0.0-nightly.20201002": "87.0.4268.0", + "12.0.0-nightly.20201007": "87.0.4268.0", + "12.0.0-nightly.20201009": "87.0.4268.0", + "12.0.0-nightly.20201012": "87.0.4268.0", + "12.0.0-nightly.20201013": "87.0.4268.0", + "12.0.0-nightly.20201014": "87.0.4268.0", + "12.0.0-nightly.20201015": "87.0.4268.0", + "12.0.0-nightly.20201023": "88.0.4292.0", + "12.0.0-nightly.20201026": "88.0.4292.0", + "12.0.0-nightly.20201030": "88.0.4306.0", + "12.0.0-nightly.20201102": "88.0.4306.0", + "12.0.0-nightly.20201103": "88.0.4306.0", + "12.0.0-nightly.20201104": "88.0.4306.0", + "12.0.0-nightly.20201105": "88.0.4306.0", + "12.0.0-nightly.20201106": "88.0.4306.0", + "12.0.0-nightly.20201111": "88.0.4306.0", + "12.0.0-nightly.20201112": "88.0.4306.0", + "12.0.0-nightly.20201116": "88.0.4324.0", + "12.0.0": "89.0.4389.69", + "12.0.1": "89.0.4389.82", + "12.0.2": "89.0.4389.90", + "12.0.3": "89.0.4389.114", + "12.0.4": "89.0.4389.114", + "12.0.5": "89.0.4389.128", + "12.0.6": "89.0.4389.128", + "12.0.7": "89.0.4389.128", + "12.0.8": "89.0.4389.128", + "12.0.9": "89.0.4389.128", + "12.0.10": "89.0.4389.128", + "12.0.11": "89.0.4389.128", + "12.0.12": "89.0.4389.128", + "12.0.13": "89.0.4389.128", + "12.0.14": "89.0.4389.128", + "12.0.15": "89.0.4389.128", + "12.0.16": "89.0.4389.128", + "12.0.17": "89.0.4389.128", + "12.0.18": "89.0.4389.128", + "12.1.0": "89.0.4389.128", + "12.1.1": "89.0.4389.128", + "12.1.2": "89.0.4389.128", + "12.2.0": "89.0.4389.128", + "12.2.1": "89.0.4389.128", + "12.2.2": "89.0.4389.128", + "12.2.3": "89.0.4389.128", + "13.0.0-beta.2": "90.0.4402.0", + "13.0.0-beta.3": "90.0.4402.0", + "13.0.0-beta.4": "90.0.4415.0", + "13.0.0-beta.5": "90.0.4415.0", + "13.0.0-beta.6": "90.0.4415.0", + "13.0.0-beta.7": "90.0.4415.0", + "13.0.0-beta.8": "90.0.4415.0", + "13.0.0-beta.9": "90.0.4415.0", + "13.0.0-beta.10": "90.0.4415.0", + "13.0.0-beta.11": "90.0.4415.0", + "13.0.0-beta.12": "90.0.4415.0", + "13.0.0-beta.13": "90.0.4415.0", + "13.0.0-beta.14": "91.0.4448.0", + "13.0.0-beta.16": "91.0.4448.0", + "13.0.0-beta.17": "91.0.4448.0", + "13.0.0-beta.18": "91.0.4448.0", + "13.0.0-beta.20": "91.0.4448.0", + "13.0.0-beta.21": "91.0.4472.33", + "13.0.0-beta.22": "91.0.4472.33", + "13.0.0-beta.23": "91.0.4472.33", + "13.0.0-beta.24": "91.0.4472.38", + "13.0.0-beta.25": "91.0.4472.38", + "13.0.0-beta.26": "91.0.4472.38", + "13.0.0-beta.27": "91.0.4472.38", + "13.0.0-beta.28": "91.0.4472.38", + "13.0.0-nightly.20201119": "89.0.4328.0", + "13.0.0-nightly.20201123": "89.0.4328.0", + "13.0.0-nightly.20201124": "89.0.4328.0", + "13.0.0-nightly.20201126": "89.0.4328.0", + "13.0.0-nightly.20201127": "89.0.4328.0", + "13.0.0-nightly.20201130": "89.0.4328.0", + "13.0.0-nightly.20201201": "89.0.4328.0", + "13.0.0-nightly.20201202": "89.0.4328.0", + "13.0.0-nightly.20201203": "89.0.4328.0", + "13.0.0-nightly.20201204": "89.0.4328.0", + "13.0.0-nightly.20201207": "89.0.4328.0", + "13.0.0-nightly.20201208": "89.0.4328.0", + "13.0.0-nightly.20201209": "89.0.4328.0", + "13.0.0-nightly.20201210": "89.0.4328.0", + "13.0.0-nightly.20201211": "89.0.4328.0", + "13.0.0-nightly.20201214": "89.0.4328.0", + "13.0.0-nightly.20201215": "89.0.4349.0", + "13.0.0-nightly.20201216": "89.0.4349.0", + "13.0.0-nightly.20201221": "89.0.4349.0", + "13.0.0-nightly.20201222": "89.0.4349.0", + "13.0.0-nightly.20201223": "89.0.4359.0", + "13.0.0-nightly.20210104": "89.0.4359.0", + "13.0.0-nightly.20210108": "89.0.4359.0", + "13.0.0-nightly.20210111": "89.0.4359.0", + "13.0.0-nightly.20210113": "89.0.4386.0", + "13.0.0-nightly.20210114": "89.0.4386.0", + "13.0.0-nightly.20210118": "89.0.4386.0", + "13.0.0-nightly.20210122": "89.0.4386.0", + "13.0.0-nightly.20210125": "89.0.4386.0", + "13.0.0-nightly.20210127": "89.0.4389.0", + "13.0.0-nightly.20210128": "89.0.4389.0", + "13.0.0-nightly.20210129": "89.0.4389.0", + "13.0.0-nightly.20210201": "89.0.4389.0", + "13.0.0-nightly.20210202": "89.0.4389.0", + "13.0.0-nightly.20210203": "89.0.4389.0", + "13.0.0-nightly.20210205": "89.0.4389.0", + "13.0.0-nightly.20210208": "89.0.4389.0", + "13.0.0-nightly.20210209": "89.0.4389.0", + "13.0.0-nightly.20210210": "90.0.4402.0", + "13.0.0-nightly.20210211": "90.0.4402.0", + "13.0.0-nightly.20210212": "90.0.4402.0", + "13.0.0-nightly.20210216": "90.0.4402.0", + "13.0.0-nightly.20210217": "90.0.4402.0", + "13.0.0-nightly.20210218": "90.0.4402.0", + "13.0.0-nightly.20210219": "90.0.4402.0", + "13.0.0-nightly.20210222": "90.0.4402.0", + "13.0.0-nightly.20210225": "90.0.4402.0", + "13.0.0-nightly.20210226": "90.0.4402.0", + "13.0.0-nightly.20210301": "90.0.4402.0", + "13.0.0-nightly.20210302": "90.0.4402.0", + "13.0.0-nightly.20210303": "90.0.4402.0", + "13.0.0": "91.0.4472.69", + "13.0.1": "91.0.4472.69", + "13.1.0": "91.0.4472.77", + "13.1.1": "91.0.4472.77", + "13.1.2": "91.0.4472.77", + "13.1.3": "91.0.4472.106", + "13.1.4": "91.0.4472.106", + "13.1.5": "91.0.4472.124", + "13.1.6": "91.0.4472.124", + "13.1.7": "91.0.4472.124", + "13.1.8": "91.0.4472.164", + "13.1.9": "91.0.4472.164", + "13.2.0": "91.0.4472.164", + "13.2.1": "91.0.4472.164", + "13.2.2": "91.0.4472.164", + "13.2.3": "91.0.4472.164", + "13.3.0": "91.0.4472.164", + "13.4.0": "91.0.4472.164", + "13.5.0": "91.0.4472.164", + "13.5.1": "91.0.4472.164", + "13.5.2": "91.0.4472.164", + "13.6.0": "91.0.4472.164", + "13.6.1": "91.0.4472.164", + "13.6.2": "91.0.4472.164", + "13.6.3": "91.0.4472.164", + "13.6.6": "91.0.4472.164", + "13.6.7": "91.0.4472.164", + "13.6.8": "91.0.4472.164", + "13.6.9": "91.0.4472.164", + "14.0.0-beta.1": "92.0.4511.0", + "14.0.0-beta.2": "92.0.4511.0", + "14.0.0-beta.3": "92.0.4511.0", + "14.0.0-beta.5": "93.0.4536.0", + "14.0.0-beta.6": "93.0.4536.0", + "14.0.0-beta.7": "93.0.4536.0", + "14.0.0-beta.8": "93.0.4536.0", + "14.0.0-beta.9": "93.0.4539.0", + "14.0.0-beta.10": "93.0.4539.0", + "14.0.0-beta.11": "93.0.4557.4", + "14.0.0-beta.12": "93.0.4557.4", + "14.0.0-beta.13": "93.0.4566.0", + "14.0.0-beta.14": "93.0.4566.0", + "14.0.0-beta.15": "93.0.4566.0", + "14.0.0-beta.16": "93.0.4566.0", + "14.0.0-beta.17": "93.0.4566.0", + "14.0.0-beta.18": "93.0.4577.15", + "14.0.0-beta.19": "93.0.4577.15", + "14.0.0-beta.20": "93.0.4577.15", + "14.0.0-beta.21": "93.0.4577.15", + "14.0.0-beta.22": "93.0.4577.25", + "14.0.0-beta.23": "93.0.4577.25", + "14.0.0-beta.24": "93.0.4577.51", + "14.0.0-beta.25": "93.0.4577.51", + "14.0.0-nightly.20210304": "90.0.4402.0", + "14.0.0-nightly.20210305": "90.0.4415.0", + "14.0.0-nightly.20210308": "90.0.4415.0", + "14.0.0-nightly.20210309": "90.0.4415.0", + "14.0.0-nightly.20210311": "90.0.4415.0", + "14.0.0-nightly.20210315": "90.0.4415.0", + "14.0.0-nightly.20210316": "90.0.4415.0", + "14.0.0-nightly.20210317": "90.0.4415.0", + "14.0.0-nightly.20210318": "90.0.4415.0", + "14.0.0-nightly.20210319": "90.0.4415.0", + "14.0.0-nightly.20210323": "90.0.4415.0", + "14.0.0-nightly.20210324": "90.0.4415.0", + "14.0.0-nightly.20210325": "90.0.4415.0", + "14.0.0-nightly.20210326": "90.0.4415.0", + "14.0.0-nightly.20210329": "90.0.4415.0", + "14.0.0-nightly.20210330": "90.0.4415.0", + "14.0.0-nightly.20210331": "91.0.4448.0", + "14.0.0-nightly.20210401": "91.0.4448.0", + "14.0.0-nightly.20210402": "91.0.4448.0", + "14.0.0-nightly.20210406": "91.0.4448.0", + "14.0.0-nightly.20210407": "91.0.4448.0", + "14.0.0-nightly.20210408": "91.0.4448.0", + "14.0.0-nightly.20210409": "91.0.4448.0", + "14.0.0-nightly.20210413": "91.0.4448.0", + "14.0.0-nightly.20210426": "92.0.4475.0", + "14.0.0-nightly.20210427": "92.0.4475.0", + "14.0.0-nightly.20210430": "92.0.4488.0", + "14.0.0-nightly.20210503": "92.0.4488.0", + "14.0.0-nightly.20210505": "92.0.4496.0", + "14.0.0-nightly.20210506": "92.0.4498.0", + "14.0.0-nightly.20210507": "92.0.4499.0", + "14.0.0-nightly.20210510": "92.0.4499.0", + "14.0.0-nightly.20210511": "92.0.4499.0", + "14.0.0-nightly.20210512": "92.0.4499.0", + "14.0.0-nightly.20210513": "92.0.4499.0", + "14.0.0-nightly.20210514": "92.0.4505.0", + "14.0.0-nightly.20210517": "92.0.4505.0", + "14.0.0-nightly.20210518": "92.0.4505.0", + "14.0.0-nightly.20210519": "92.0.4505.0", + "14.0.0-nightly.20210520": "92.0.4511.0", + "14.0.0-nightly.20210523": "92.0.4511.0", + "14.0.0-nightly.20210524": "92.0.4511.0", + "14.0.0": "93.0.4577.58", + "14.0.1": "93.0.4577.63", + "14.0.2": "93.0.4577.82", + "14.1.0": "93.0.4577.82", + "14.1.1": "93.0.4577.82", + "14.2.0": "93.0.4577.82", + "14.2.1": "93.0.4577.82", + "14.2.2": "93.0.4577.82", + "14.2.3": "93.0.4577.82", + "14.2.4": "93.0.4577.82", + "14.2.5": "93.0.4577.82", + "14.2.6": "93.0.4577.82", + "14.2.7": "93.0.4577.82", + "14.2.8": "93.0.4577.82", + "14.2.9": "93.0.4577.82", + "15.0.0-alpha.1": "93.0.4566.0", + "15.0.0-alpha.2": "93.0.4566.0", + "15.0.0-alpha.3": "94.0.4584.0", + "15.0.0-alpha.4": "94.0.4584.0", + "15.0.0-alpha.5": "94.0.4584.0", + "15.0.0-alpha.6": "94.0.4584.0", + "15.0.0-alpha.7": "94.0.4590.2", + "15.0.0-alpha.8": "94.0.4590.2", + "15.0.0-alpha.9": "94.0.4590.2", + "15.0.0-alpha.10": "94.0.4606.12", + "15.0.0-beta.1": "94.0.4606.20", + "15.0.0-beta.2": "94.0.4606.20", + "15.0.0-beta.3": "94.0.4606.31", + "15.0.0-beta.4": "94.0.4606.31", + "15.0.0-beta.5": "94.0.4606.31", + "15.0.0-beta.6": "94.0.4606.31", + "15.0.0-beta.7": "94.0.4606.31", + "15.0.0-nightly.20210527": "92.0.4511.0", + "15.0.0-nightly.20210528": "92.0.4511.0", + "15.0.0-nightly.20210531": "92.0.4511.0", + "15.0.0-nightly.20210601": "92.0.4511.0", + "15.0.0-nightly.20210602": "92.0.4511.0", + "15.0.0-nightly.20210603": "93.0.4530.0", + "15.0.0-nightly.20210604": "93.0.4530.0", + "15.0.0-nightly.20210608": "93.0.4535.0", + "15.0.0-nightly.20210609": "93.0.4536.0", + "15.0.0-nightly.20210610": "93.0.4536.0", + "15.0.0-nightly.20210611": "93.0.4536.0", + "15.0.0-nightly.20210614": "93.0.4536.0", + "15.0.0-nightly.20210615": "93.0.4536.0", + "15.0.0-nightly.20210616": "93.0.4536.0", + "15.0.0-nightly.20210617": "93.0.4539.0", + "15.0.0-nightly.20210618": "93.0.4539.0", + "15.0.0-nightly.20210621": "93.0.4539.0", + "15.0.0-nightly.20210622": "93.0.4539.0", + "15.0.0-nightly.20210623": "93.0.4550.0", + "15.0.0-nightly.20210624": "93.0.4550.0", + "15.0.0-nightly.20210625": "93.0.4552.0", + "15.0.0-nightly.20210628": "93.0.4552.0", + "15.0.0-nightly.20210629": "93.0.4552.0", + "15.0.0-nightly.20210630": "93.0.4558.0", + "15.0.0-nightly.20210701": "93.0.4558.0", + "15.0.0-nightly.20210702": "93.0.4558.0", + "15.0.0-nightly.20210705": "93.0.4558.0", + "15.0.0-nightly.20210706": "93.0.4566.0", + "15.0.0-nightly.20210707": "93.0.4566.0", + "15.0.0-nightly.20210708": "93.0.4566.0", + "15.0.0-nightly.20210709": "93.0.4566.0", + "15.0.0-nightly.20210712": "93.0.4566.0", + "15.0.0-nightly.20210713": "93.0.4566.0", + "15.0.0-nightly.20210714": "93.0.4566.0", + "15.0.0-nightly.20210715": "93.0.4566.0", + "15.0.0-nightly.20210716": "93.0.4566.0", + "15.0.0-nightly.20210719": "93.0.4566.0", + "15.0.0-nightly.20210720": "93.0.4566.0", + "15.0.0-nightly.20210721": "93.0.4566.0", + "15.0.0": "94.0.4606.51", + "15.1.0": "94.0.4606.61", + "15.1.1": "94.0.4606.61", + "15.1.2": "94.0.4606.71", + "15.2.0": "94.0.4606.81", + "15.3.0": "94.0.4606.81", + "15.3.1": "94.0.4606.81", + "15.3.2": "94.0.4606.81", + "15.3.3": "94.0.4606.81", + "15.3.4": "94.0.4606.81", + "15.3.5": "94.0.4606.81", + "15.3.6": "94.0.4606.81", + "15.3.7": "94.0.4606.81", + "15.4.0": "94.0.4606.81", + "15.4.1": "94.0.4606.81", + "15.4.2": "94.0.4606.81", + "15.5.0": "94.0.4606.81", + "15.5.1": "94.0.4606.81", + "15.5.2": "94.0.4606.81", + "15.5.3": "94.0.4606.81", + "15.5.4": "94.0.4606.81", + "15.5.5": "94.0.4606.81", + "15.5.6": "94.0.4606.81", + "15.5.7": "94.0.4606.81", + "16.0.0-alpha.1": "95.0.4629.0", + "16.0.0-alpha.2": "95.0.4629.0", + "16.0.0-alpha.3": "95.0.4629.0", + "16.0.0-alpha.4": "95.0.4629.0", + "16.0.0-alpha.5": "95.0.4629.0", + "16.0.0-alpha.6": "95.0.4629.0", + "16.0.0-alpha.7": "95.0.4629.0", + "16.0.0-alpha.8": "96.0.4647.0", + "16.0.0-alpha.9": "96.0.4647.0", + "16.0.0-beta.1": "96.0.4647.0", + "16.0.0-beta.2": "96.0.4647.0", + "16.0.0-beta.3": "96.0.4647.0", + "16.0.0-beta.4": "96.0.4664.18", + "16.0.0-beta.5": "96.0.4664.18", + "16.0.0-beta.6": "96.0.4664.27", + "16.0.0-beta.7": "96.0.4664.27", + "16.0.0-beta.8": "96.0.4664.35", + "16.0.0-beta.9": "96.0.4664.35", + "16.0.0-nightly.20210722": "93.0.4566.0", + "16.0.0-nightly.20210723": "93.0.4566.0", + "16.0.0-nightly.20210726": "93.0.4566.0", + "16.0.0-nightly.20210727": "94.0.4584.0", + "16.0.0-nightly.20210728": "94.0.4584.0", + "16.0.0-nightly.20210729": "94.0.4584.0", + "16.0.0-nightly.20210730": "94.0.4584.0", + "16.0.0-nightly.20210802": "94.0.4584.0", + "16.0.0-nightly.20210803": "94.0.4584.0", + "16.0.0-nightly.20210804": "94.0.4584.0", + "16.0.0-nightly.20210805": "94.0.4584.0", + "16.0.0-nightly.20210806": "94.0.4584.0", + "16.0.0-nightly.20210809": "94.0.4584.0", + "16.0.0-nightly.20210810": "94.0.4584.0", + "16.0.0-nightly.20210811": "94.0.4584.0", + "16.0.0-nightly.20210812": "94.0.4590.2", + "16.0.0-nightly.20210813": "94.0.4590.2", + "16.0.0-nightly.20210816": "94.0.4590.2", + "16.0.0-nightly.20210817": "94.0.4590.2", + "16.0.0-nightly.20210818": "94.0.4590.2", + "16.0.0-nightly.20210819": "94.0.4590.2", + "16.0.0-nightly.20210820": "94.0.4590.2", + "16.0.0-nightly.20210823": "94.0.4590.2", + "16.0.0-nightly.20210824": "95.0.4612.5", + "16.0.0-nightly.20210825": "95.0.4612.5", + "16.0.0-nightly.20210826": "95.0.4612.5", + "16.0.0-nightly.20210827": "95.0.4612.5", + "16.0.0-nightly.20210830": "95.0.4612.5", + "16.0.0-nightly.20210831": "95.0.4612.5", + "16.0.0-nightly.20210901": "95.0.4612.5", + "16.0.0-nightly.20210902": "95.0.4629.0", + "16.0.0-nightly.20210903": "95.0.4629.0", + "16.0.0-nightly.20210906": "95.0.4629.0", + "16.0.0-nightly.20210907": "95.0.4629.0", + "16.0.0-nightly.20210908": "95.0.4629.0", + "16.0.0-nightly.20210909": "95.0.4629.0", + "16.0.0-nightly.20210910": "95.0.4629.0", + "16.0.0-nightly.20210913": "95.0.4629.0", + "16.0.0-nightly.20210914": "95.0.4629.0", + "16.0.0-nightly.20210915": "95.0.4629.0", + "16.0.0-nightly.20210916": "95.0.4629.0", + "16.0.0-nightly.20210917": "95.0.4629.0", + "16.0.0-nightly.20210920": "95.0.4629.0", + "16.0.0-nightly.20210921": "95.0.4629.0", + "16.0.0-nightly.20210922": "95.0.4629.0", + "16.0.0": "96.0.4664.45", + "16.0.1": "96.0.4664.45", + "16.0.2": "96.0.4664.55", + "16.0.3": "96.0.4664.55", + "16.0.4": "96.0.4664.55", + "16.0.5": "96.0.4664.55", + "16.0.6": "96.0.4664.110", + "16.0.7": "96.0.4664.110", + "16.0.8": "96.0.4664.110", + "16.0.9": "96.0.4664.174", + "16.0.10": "96.0.4664.174", + "16.1.0": "96.0.4664.174", + "16.1.1": "96.0.4664.174", + "16.2.0": "96.0.4664.174", + "16.2.1": "96.0.4664.174", + "16.2.2": "96.0.4664.174", + "16.2.3": "96.0.4664.174", + "16.2.4": "96.0.4664.174", + "16.2.5": "96.0.4664.174", + "16.2.6": "96.0.4664.174", + "16.2.7": "96.0.4664.174", + "16.2.8": "96.0.4664.174", + "17.0.0-alpha.1": "96.0.4664.4", + "17.0.0-alpha.2": "96.0.4664.4", + "17.0.0-alpha.3": "96.0.4664.4", + "17.0.0-alpha.4": "98.0.4706.0", + "17.0.0-alpha.5": "98.0.4706.0", + "17.0.0-alpha.6": "98.0.4706.0", + "17.0.0-beta.1": "98.0.4706.0", + "17.0.0-beta.2": "98.0.4706.0", + "17.0.0-beta.3": "98.0.4758.9", + "17.0.0-beta.4": "98.0.4758.11", + "17.0.0-beta.5": "98.0.4758.11", + "17.0.0-beta.6": "98.0.4758.11", + "17.0.0-beta.7": "98.0.4758.11", + "17.0.0-beta.8": "98.0.4758.11", + "17.0.0-beta.9": "98.0.4758.11", + "17.0.0-nightly.20210923": "95.0.4629.0", + "17.0.0-nightly.20210924": "95.0.4629.0", + "17.0.0-nightly.20210927": "95.0.4629.0", + "17.0.0-nightly.20210928": "95.0.4629.0", + "17.0.0-nightly.20210929": "95.0.4629.0", + "17.0.0-nightly.20210930": "95.0.4629.0", + "17.0.0-nightly.20211001": "95.0.4629.0", + "17.0.0-nightly.20211004": "95.0.4629.0", + "17.0.0-nightly.20211005": "95.0.4629.0", + "17.0.0-nightly.20211006": "96.0.4647.0", + "17.0.0-nightly.20211007": "96.0.4647.0", + "17.0.0-nightly.20211008": "96.0.4647.0", + "17.0.0-nightly.20211011": "96.0.4647.0", + "17.0.0-nightly.20211012": "96.0.4647.0", + "17.0.0-nightly.20211013": "96.0.4647.0", + "17.0.0-nightly.20211014": "96.0.4647.0", + "17.0.0-nightly.20211015": "96.0.4647.0", + "17.0.0-nightly.20211018": "96.0.4647.0", + "17.0.0-nightly.20211019": "96.0.4647.0", + "17.0.0-nightly.20211020": "96.0.4647.0", + "17.0.0-nightly.20211021": "96.0.4647.0", + "17.0.0-nightly.20211022": "96.0.4664.4", + "17.0.0-nightly.20211025": "96.0.4664.4", + "17.0.0-nightly.20211026": "96.0.4664.4", + "17.0.0-nightly.20211027": "96.0.4664.4", + "17.0.0-nightly.20211028": "96.0.4664.4", + "17.0.0-nightly.20211029": "96.0.4664.4", + "17.0.0-nightly.20211101": "96.0.4664.4", + "17.0.0-nightly.20211102": "96.0.4664.4", + "17.0.0-nightly.20211103": "96.0.4664.4", + "17.0.0-nightly.20211104": "96.0.4664.4", + "17.0.0-nightly.20211105": "96.0.4664.4", + "17.0.0-nightly.20211108": "96.0.4664.4", + "17.0.0-nightly.20211109": "96.0.4664.4", + "17.0.0-nightly.20211110": "96.0.4664.4", + "17.0.0-nightly.20211111": "96.0.4664.4", + "17.0.0-nightly.20211112": "96.0.4664.4", + "17.0.0-nightly.20211115": "96.0.4664.4", + "17.0.0-nightly.20211116": "96.0.4664.4", + "17.0.0-nightly.20211117": "96.0.4664.4", + "17.0.0": "98.0.4758.74", + "17.0.1": "98.0.4758.82", + "17.1.0": "98.0.4758.102", + "17.1.1": "98.0.4758.109", + "17.1.2": "98.0.4758.109", + "17.2.0": "98.0.4758.109", + "17.3.0": "98.0.4758.141", + "17.3.1": "98.0.4758.141", + "17.4.0": "98.0.4758.141", + "17.4.1": "98.0.4758.141", + "17.4.2": "98.0.4758.141", + "17.4.3": "98.0.4758.141", + "17.4.4": "98.0.4758.141", + "17.4.5": "98.0.4758.141", + "17.4.6": "98.0.4758.141", + "17.4.7": "98.0.4758.141", + "17.4.8": "98.0.4758.141", + "17.4.9": "98.0.4758.141", + "17.4.10": "98.0.4758.141", + "17.4.11": "98.0.4758.141", + "18.0.0-alpha.1": "99.0.4767.0", + "18.0.0-alpha.2": "99.0.4767.0", + "18.0.0-alpha.3": "99.0.4767.0", + "18.0.0-alpha.4": "99.0.4767.0", + "18.0.0-alpha.5": "99.0.4767.0", + "18.0.0-beta.1": "100.0.4894.0", + "18.0.0-beta.2": "100.0.4894.0", + "18.0.0-beta.3": "100.0.4894.0", + "18.0.0-beta.4": "100.0.4894.0", + "18.0.0-beta.5": "100.0.4894.0", + "18.0.0-beta.6": "100.0.4894.0", + "18.0.0-nightly.20211118": "96.0.4664.4", + "18.0.0-nightly.20211119": "96.0.4664.4", + "18.0.0-nightly.20211122": "96.0.4664.4", + "18.0.0-nightly.20211123": "96.0.4664.4", + "18.0.0-nightly.20211124": "98.0.4706.0", + "18.0.0-nightly.20211125": "98.0.4706.0", + "18.0.0-nightly.20211126": "98.0.4706.0", + "18.0.0-nightly.20211129": "98.0.4706.0", + "18.0.0-nightly.20211130": "98.0.4706.0", + "18.0.0-nightly.20211201": "98.0.4706.0", + "18.0.0-nightly.20211202": "98.0.4706.0", + "18.0.0-nightly.20211203": "98.0.4706.0", + "18.0.0-nightly.20211206": "98.0.4706.0", + "18.0.0-nightly.20211207": "98.0.4706.0", + "18.0.0-nightly.20211208": "98.0.4706.0", + "18.0.0-nightly.20211209": "98.0.4706.0", + "18.0.0-nightly.20211210": "98.0.4706.0", + "18.0.0-nightly.20211213": "98.0.4706.0", + "18.0.0-nightly.20211214": "98.0.4706.0", + "18.0.0-nightly.20211215": "98.0.4706.0", + "18.0.0-nightly.20211216": "98.0.4706.0", + "18.0.0-nightly.20211217": "98.0.4706.0", + "18.0.0-nightly.20211220": "98.0.4706.0", + "18.0.0-nightly.20211221": "98.0.4706.0", + "18.0.0-nightly.20211222": "98.0.4706.0", + "18.0.0-nightly.20211223": "98.0.4706.0", + "18.0.0-nightly.20211228": "98.0.4706.0", + "18.0.0-nightly.20211229": "98.0.4706.0", + "18.0.0-nightly.20211231": "98.0.4706.0", + "18.0.0-nightly.20220103": "98.0.4706.0", + "18.0.0-nightly.20220104": "98.0.4706.0", + "18.0.0-nightly.20220105": "98.0.4706.0", + "18.0.0-nightly.20220106": "98.0.4706.0", + "18.0.0-nightly.20220107": "98.0.4706.0", + "18.0.0-nightly.20220110": "98.0.4706.0", + "18.0.0-nightly.20220111": "99.0.4767.0", + "18.0.0-nightly.20220112": "99.0.4767.0", + "18.0.0-nightly.20220113": "99.0.4767.0", + "18.0.0-nightly.20220114": "99.0.4767.0", + "18.0.0-nightly.20220117": "99.0.4767.0", + "18.0.0-nightly.20220118": "99.0.4767.0", + "18.0.0-nightly.20220119": "99.0.4767.0", + "18.0.0-nightly.20220121": "99.0.4767.0", + "18.0.0-nightly.20220124": "99.0.4767.0", + "18.0.0-nightly.20220125": "99.0.4767.0", + "18.0.0-nightly.20220127": "99.0.4767.0", + "18.0.0-nightly.20220128": "99.0.4767.0", + "18.0.0-nightly.20220131": "99.0.4767.0", + "18.0.0-nightly.20220201": "99.0.4767.0", + "18.0.0": "100.0.4896.56", + "18.0.1": "100.0.4896.60", + "18.0.2": "100.0.4896.60", + "18.0.3": "100.0.4896.75", + "18.0.4": "100.0.4896.75", + "18.1.0": "100.0.4896.127", + "18.2.0": "100.0.4896.143", + "18.2.1": "100.0.4896.143", + "18.2.2": "100.0.4896.143", + "18.2.3": "100.0.4896.143", + "18.2.4": "100.0.4896.160", + "18.3.0": "100.0.4896.160", + "18.3.1": "100.0.4896.160", + "18.3.2": "100.0.4896.160", + "18.3.3": "100.0.4896.160", + "18.3.4": "100.0.4896.160", + "18.3.5": "100.0.4896.160", + "18.3.6": "100.0.4896.160", + "18.3.7": "100.0.4896.160", + "18.3.8": "100.0.4896.160", + "18.3.9": "100.0.4896.160", + "18.3.11": "100.0.4896.160", + "18.3.12": "100.0.4896.160", + "18.3.13": "100.0.4896.160", + "18.3.14": "100.0.4896.160", + "18.3.15": "100.0.4896.160", + "19.0.0-alpha.1": "102.0.4962.3", + "19.0.0-alpha.2": "102.0.4971.0", + "19.0.0-alpha.3": "102.0.4971.0", + "19.0.0-alpha.4": "102.0.4989.0", + "19.0.0-alpha.5": "102.0.4989.0", + "19.0.0-beta.1": "102.0.4999.0", + "19.0.0-beta.2": "102.0.4999.0", + "19.0.0-beta.3": "102.0.4999.0", + "19.0.0-beta.4": "102.0.5005.27", + "19.0.0-beta.5": "102.0.5005.40", + "19.0.0-beta.6": "102.0.5005.40", + "19.0.0-beta.7": "102.0.5005.40", + "19.0.0-beta.8": "102.0.5005.49", + "19.0.0-nightly.20220202": "99.0.4767.0", + "19.0.0-nightly.20220203": "99.0.4767.0", + "19.0.0-nightly.20220204": "99.0.4767.0", + "19.0.0-nightly.20220207": "99.0.4767.0", + "19.0.0-nightly.20220208": "99.0.4767.0", + "19.0.0-nightly.20220209": "99.0.4767.0", + "19.0.0-nightly.20220308": "100.0.4894.0", + "19.0.0-nightly.20220309": "100.0.4894.0", + "19.0.0-nightly.20220310": "100.0.4894.0", + "19.0.0-nightly.20220311": "100.0.4894.0", + "19.0.0-nightly.20220314": "100.0.4894.0", + "19.0.0-nightly.20220315": "100.0.4894.0", + "19.0.0-nightly.20220316": "100.0.4894.0", + "19.0.0-nightly.20220317": "100.0.4894.0", + "19.0.0-nightly.20220318": "100.0.4894.0", + "19.0.0-nightly.20220321": "100.0.4894.0", + "19.0.0-nightly.20220322": "100.0.4894.0", + "19.0.0-nightly.20220323": "100.0.4894.0", + "19.0.0-nightly.20220324": "100.0.4894.0", + "19.0.0-nightly.20220325": "102.0.4961.0", + "19.0.0-nightly.20220328": "102.0.4962.3", + "19.0.0-nightly.20220329": "102.0.4962.3", + "19.0.0": "102.0.5005.61", + "19.0.1": "102.0.5005.61", + "19.0.2": "102.0.5005.63", + "19.0.3": "102.0.5005.63", + "19.0.4": "102.0.5005.63", + "19.0.5": "102.0.5005.115", + "19.0.6": "102.0.5005.115", + "19.0.7": "102.0.5005.134", + "19.0.8": "102.0.5005.148", + "19.0.9": "102.0.5005.167", + "19.0.10": "102.0.5005.167", + "19.0.11": "102.0.5005.167", + "19.0.12": "102.0.5005.167", + "19.0.13": "102.0.5005.167", + "19.0.14": "102.0.5005.167", + "19.0.15": "102.0.5005.167", + "19.0.16": "102.0.5005.167", + "19.0.17": "102.0.5005.167", + "19.1.0": "102.0.5005.167", + "19.1.1": "102.0.5005.167", + "19.1.2": "102.0.5005.167", + "19.1.3": "102.0.5005.167", + "19.1.4": "102.0.5005.167", + "19.1.5": "102.0.5005.167", + "19.1.6": "102.0.5005.167", + "19.1.7": "102.0.5005.167", + "19.1.8": "102.0.5005.167", + "19.1.9": "102.0.5005.167", + "20.0.0-alpha.1": "103.0.5044.0", + "20.0.0-alpha.2": "104.0.5073.0", + "20.0.0-alpha.3": "104.0.5073.0", + "20.0.0-alpha.4": "104.0.5073.0", + "20.0.0-alpha.5": "104.0.5073.0", + "20.0.0-alpha.6": "104.0.5073.0", + "20.0.0-alpha.7": "104.0.5073.0", + "20.0.0-beta.1": "104.0.5073.0", + "20.0.0-beta.2": "104.0.5073.0", + "20.0.0-beta.3": "104.0.5073.0", + "20.0.0-beta.4": "104.0.5073.0", + "20.0.0-beta.5": "104.0.5073.0", + "20.0.0-beta.6": "104.0.5073.0", + "20.0.0-beta.7": "104.0.5073.0", + "20.0.0-beta.8": "104.0.5073.0", + "20.0.0-beta.9": "104.0.5112.39", + "20.0.0-beta.10": "104.0.5112.48", + "20.0.0-beta.11": "104.0.5112.48", + "20.0.0-beta.12": "104.0.5112.48", + "20.0.0-beta.13": "104.0.5112.57", + "20.0.0-nightly.20220330": "102.0.4962.3", + "20.0.0-nightly.20220411": "102.0.4971.0", + "20.0.0-nightly.20220414": "102.0.4989.0", + "20.0.0-nightly.20220415": "102.0.4989.0", + "20.0.0-nightly.20220418": "102.0.4989.0", + "20.0.0-nightly.20220419": "102.0.4989.0", + "20.0.0-nightly.20220420": "102.0.4989.0", + "20.0.0-nightly.20220421": "102.0.4989.0", + "20.0.0-nightly.20220425": "102.0.4999.0", + "20.0.0-nightly.20220426": "102.0.4999.0", + "20.0.0-nightly.20220427": "102.0.4999.0", + "20.0.0-nightly.20220428": "102.0.4999.0", + "20.0.0-nightly.20220429": "102.0.4999.0", + "20.0.0-nightly.20220502": "102.0.4999.0", + "20.0.0-nightly.20220503": "102.0.4999.0", + "20.0.0-nightly.20220504": "102.0.4999.0", + "20.0.0-nightly.20220505": "102.0.4999.0", + "20.0.0-nightly.20220506": "102.0.4999.0", + "20.0.0-nightly.20220509": "102.0.4999.0", + "20.0.0-nightly.20220511": "102.0.4999.0", + "20.0.0-nightly.20220512": "102.0.4999.0", + "20.0.0-nightly.20220513": "102.0.4999.0", + "20.0.0-nightly.20220516": "102.0.4999.0", + "20.0.0-nightly.20220517": "102.0.4999.0", + "20.0.0-nightly.20220518": "103.0.5044.0", + "20.0.0-nightly.20220519": "103.0.5044.0", + "20.0.0-nightly.20220520": "103.0.5044.0", + "20.0.0-nightly.20220523": "103.0.5044.0", + "20.0.0-nightly.20220524": "103.0.5044.0", + "20.0.0": "104.0.5112.65", + "20.0.1": "104.0.5112.81", + "20.0.2": "104.0.5112.81", + "20.0.3": "104.0.5112.81", + "20.1.0": "104.0.5112.102", + "20.1.1": "104.0.5112.102", + "20.1.2": "104.0.5112.114", + "20.1.3": "104.0.5112.114", + "20.1.4": "104.0.5112.114", + "20.2.0": "104.0.5112.124", + "20.3.0": "104.0.5112.124", + "20.3.1": "104.0.5112.124", + "20.3.2": "104.0.5112.124", + "20.3.3": "104.0.5112.124", + "20.3.4": "104.0.5112.124", + "20.3.5": "104.0.5112.124", + "20.3.6": "104.0.5112.124", + "20.3.7": "104.0.5112.124", + "20.3.8": "104.0.5112.124", + "20.3.9": "104.0.5112.124", + "20.3.10": "104.0.5112.124", + "20.3.11": "104.0.5112.124", + "20.3.12": "104.0.5112.124", + "21.0.0-alpha.1": "105.0.5187.0", + "21.0.0-alpha.2": "105.0.5187.0", + "21.0.0-alpha.3": "105.0.5187.0", + "21.0.0-alpha.4": "105.0.5187.0", + "21.0.0-alpha.5": "105.0.5187.0", + "21.0.0-alpha.6": "106.0.5216.0", + "21.0.0-beta.1": "106.0.5216.0", + "21.0.0-beta.2": "106.0.5216.0", + "21.0.0-beta.3": "106.0.5216.0", + "21.0.0-beta.4": "106.0.5216.0", + "21.0.0-beta.5": "106.0.5216.0", + "21.0.0-beta.6": "106.0.5249.40", + "21.0.0-beta.7": "106.0.5249.40", + "21.0.0-beta.8": "106.0.5249.40", + "21.0.0-nightly.20220526": "103.0.5044.0", + "21.0.0-nightly.20220527": "103.0.5044.0", + "21.0.0-nightly.20220530": "103.0.5044.0", + "21.0.0-nightly.20220531": "103.0.5044.0", + "21.0.0-nightly.20220602": "104.0.5073.0", + "21.0.0-nightly.20220603": "104.0.5073.0", + "21.0.0-nightly.20220606": "104.0.5073.0", + "21.0.0-nightly.20220607": "104.0.5073.0", + "21.0.0-nightly.20220608": "104.0.5073.0", + "21.0.0-nightly.20220609": "104.0.5073.0", + "21.0.0-nightly.20220610": "104.0.5073.0", + "21.0.0-nightly.20220613": "104.0.5073.0", + "21.0.0-nightly.20220614": "104.0.5073.0", + "21.0.0-nightly.20220615": "104.0.5073.0", + "21.0.0-nightly.20220616": "104.0.5073.0", + "21.0.0-nightly.20220617": "104.0.5073.0", + "21.0.0-nightly.20220620": "104.0.5073.0", + "21.0.0-nightly.20220621": "104.0.5073.0", + "21.0.0-nightly.20220622": "104.0.5073.0", + "21.0.0-nightly.20220623": "104.0.5073.0", + "21.0.0-nightly.20220624": "104.0.5073.0", + "21.0.0-nightly.20220627": "104.0.5073.0", + "21.0.0-nightly.20220628": "105.0.5129.0", + "21.0.0-nightly.20220629": "105.0.5129.0", + "21.0.0-nightly.20220630": "105.0.5129.0", + "21.0.0-nightly.20220701": "105.0.5129.0", + "21.0.0-nightly.20220704": "105.0.5129.0", + "21.0.0-nightly.20220705": "105.0.5129.0", + "21.0.0-nightly.20220706": "105.0.5129.0", + "21.0.0-nightly.20220707": "105.0.5129.0", + "21.0.0-nightly.20220708": "105.0.5129.0", + "21.0.0-nightly.20220711": "105.0.5129.0", + "21.0.0-nightly.20220712": "105.0.5129.0", + "21.0.0-nightly.20220713": "105.0.5129.0", + "21.0.0-nightly.20220715": "105.0.5173.0", + "21.0.0-nightly.20220718": "105.0.5173.0", + "21.0.0-nightly.20220719": "105.0.5173.0", + "21.0.0-nightly.20220720": "105.0.5187.0", + "21.0.0-nightly.20220721": "105.0.5187.0", + "21.0.0-nightly.20220722": "105.0.5187.0", + "21.0.0-nightly.20220725": "105.0.5187.0", + "21.0.0-nightly.20220726": "105.0.5187.0", + "21.0.0-nightly.20220727": "105.0.5187.0", + "21.0.0-nightly.20220728": "105.0.5187.0", + "21.0.0-nightly.20220801": "105.0.5187.0", + "21.0.0-nightly.20220802": "105.0.5187.0", + "21.0.0": "106.0.5249.51", + "21.0.1": "106.0.5249.61", + "21.1.0": "106.0.5249.91", + "21.1.1": "106.0.5249.103", + "21.2.0": "106.0.5249.119", + "21.2.1": "106.0.5249.165", + "21.2.2": "106.0.5249.168", + "21.2.3": "106.0.5249.168", + "21.3.0": "106.0.5249.181", + "21.3.1": "106.0.5249.181", + "21.3.3": "106.0.5249.199", + "21.3.4": "106.0.5249.199", + "21.3.5": "106.0.5249.199", + "21.4.0": "106.0.5249.199", + "21.4.1": "106.0.5249.199", + "21.4.2": "106.0.5249.199", + "21.4.3": "106.0.5249.199", + "21.4.4": "106.0.5249.199", + "22.0.0-alpha.1": "107.0.5286.0", + "22.0.0-alpha.3": "108.0.5329.0", + "22.0.0-alpha.4": "108.0.5329.0", + "22.0.0-alpha.5": "108.0.5329.0", + "22.0.0-alpha.6": "108.0.5329.0", + "22.0.0-alpha.7": "108.0.5355.0", + "22.0.0-alpha.8": "108.0.5359.10", + "22.0.0-beta.1": "108.0.5359.10", + "22.0.0-beta.2": "108.0.5359.10", + "22.0.0-beta.3": "108.0.5359.10", + "22.0.0-beta.4": "108.0.5359.29", + "22.0.0-beta.5": "108.0.5359.40", + "22.0.0-beta.6": "108.0.5359.40", + "22.0.0-beta.7": "108.0.5359.48", + "22.0.0-beta.8": "108.0.5359.48", + "22.0.0-nightly.20220808": "105.0.5187.0", + "22.0.0-nightly.20220809": "105.0.5187.0", + "22.0.0-nightly.20220810": "105.0.5187.0", + "22.0.0-nightly.20220811": "105.0.5187.0", + "22.0.0-nightly.20220812": "105.0.5187.0", + "22.0.0-nightly.20220815": "105.0.5187.0", + "22.0.0-nightly.20220816": "105.0.5187.0", + "22.0.0-nightly.20220817": "105.0.5187.0", + "22.0.0-nightly.20220822": "106.0.5216.0", + "22.0.0-nightly.20220823": "106.0.5216.0", + "22.0.0-nightly.20220824": "106.0.5216.0", + "22.0.0-nightly.20220825": "106.0.5216.0", + "22.0.0-nightly.20220829": "106.0.5216.0", + "22.0.0-nightly.20220830": "106.0.5216.0", + "22.0.0-nightly.20220831": "106.0.5216.0", + "22.0.0-nightly.20220901": "106.0.5216.0", + "22.0.0-nightly.20220902": "106.0.5216.0", + "22.0.0-nightly.20220905": "106.0.5216.0", + "22.0.0-nightly.20220908": "107.0.5274.0", + "22.0.0-nightly.20220909": "107.0.5286.0", + "22.0.0-nightly.20220912": "107.0.5286.0", + "22.0.0-nightly.20220913": "107.0.5286.0", + "22.0.0-nightly.20220914": "107.0.5286.0", + "22.0.0-nightly.20220915": "107.0.5286.0", + "22.0.0-nightly.20220916": "107.0.5286.0", + "22.0.0-nightly.20220919": "107.0.5286.0", + "22.0.0-nightly.20220920": "107.0.5286.0", + "22.0.0-nightly.20220921": "107.0.5286.0", + "22.0.0-nightly.20220922": "107.0.5286.0", + "22.0.0-nightly.20220923": "107.0.5286.0", + "22.0.0-nightly.20220926": "107.0.5286.0", + "22.0.0-nightly.20220927": "107.0.5286.0", + "22.0.0-nightly.20220928": "107.0.5286.0", + "22.0.0": "108.0.5359.62", + "22.0.1": "108.0.5359.125", + "22.0.2": "108.0.5359.179", + "22.0.3": "108.0.5359.179", + "22.1.0": "108.0.5359.179", + "22.2.0": "108.0.5359.215", + "22.2.1": "108.0.5359.215", + "22.3.0": "108.0.5359.215", + "22.3.1": "108.0.5359.215", + "22.3.2": "108.0.5359.215", + "22.3.3": "108.0.5359.215", + "22.3.4": "108.0.5359.215", + "22.3.5": "108.0.5359.215", + "22.3.6": "108.0.5359.215", + "22.3.7": "108.0.5359.215", + "22.3.8": "108.0.5359.215", + "22.3.9": "108.0.5359.215", + "22.3.10": "108.0.5359.215", + "22.3.11": "108.0.5359.215", + "23.0.0-alpha.1": "110.0.5415.0", + "23.0.0-alpha.2": "110.0.5451.0", + "23.0.0-alpha.3": "110.0.5451.0", + "23.0.0-beta.1": "110.0.5478.5", + "23.0.0-beta.2": "110.0.5478.5", + "23.0.0-beta.3": "110.0.5478.5", + "23.0.0-beta.4": "110.0.5481.30", + "23.0.0-beta.5": "110.0.5481.38", + "23.0.0-beta.6": "110.0.5481.52", + "23.0.0-beta.8": "110.0.5481.52", + "23.0.0-nightly.20220929": "107.0.5286.0", + "23.0.0-nightly.20220930": "107.0.5286.0", + "23.0.0-nightly.20221003": "107.0.5286.0", + "23.0.0-nightly.20221004": "108.0.5329.0", + "23.0.0-nightly.20221005": "108.0.5329.0", + "23.0.0-nightly.20221006": "108.0.5329.0", + "23.0.0-nightly.20221007": "108.0.5329.0", + "23.0.0-nightly.20221010": "108.0.5329.0", + "23.0.0-nightly.20221011": "108.0.5329.0", + "23.0.0-nightly.20221012": "108.0.5329.0", + "23.0.0-nightly.20221013": "108.0.5329.0", + "23.0.0-nightly.20221014": "108.0.5329.0", + "23.0.0-nightly.20221017": "108.0.5329.0", + "23.0.0-nightly.20221018": "108.0.5355.0", + "23.0.0-nightly.20221019": "108.0.5355.0", + "23.0.0-nightly.20221020": "108.0.5355.0", + "23.0.0-nightly.20221021": "108.0.5355.0", + "23.0.0-nightly.20221024": "108.0.5355.0", + "23.0.0-nightly.20221026": "108.0.5355.0", + "23.0.0-nightly.20221027": "109.0.5382.0", + "23.0.0-nightly.20221028": "109.0.5382.0", + "23.0.0-nightly.20221031": "109.0.5382.0", + "23.0.0-nightly.20221101": "109.0.5382.0", + "23.0.0-nightly.20221102": "109.0.5382.0", + "23.0.0-nightly.20221103": "109.0.5382.0", + "23.0.0-nightly.20221104": "109.0.5382.0", + "23.0.0-nightly.20221107": "109.0.5382.0", + "23.0.0-nightly.20221108": "109.0.5382.0", + "23.0.0-nightly.20221109": "109.0.5382.0", + "23.0.0-nightly.20221110": "109.0.5382.0", + "23.0.0-nightly.20221111": "109.0.5382.0", + "23.0.0-nightly.20221114": "109.0.5382.0", + "23.0.0-nightly.20221115": "109.0.5382.0", + "23.0.0-nightly.20221116": "109.0.5382.0", + "23.0.0-nightly.20221117": "109.0.5382.0", + "23.0.0-nightly.20221118": "110.0.5415.0", + "23.0.0-nightly.20221121": "110.0.5415.0", + "23.0.0-nightly.20221122": "110.0.5415.0", + "23.0.0-nightly.20221123": "110.0.5415.0", + "23.0.0-nightly.20221124": "110.0.5415.0", + "23.0.0-nightly.20221125": "110.0.5415.0", + "23.0.0-nightly.20221128": "110.0.5415.0", + "23.0.0-nightly.20221129": "110.0.5415.0", + "23.0.0-nightly.20221130": "110.0.5415.0", + "23.0.0": "110.0.5481.77", + "23.1.0": "110.0.5481.100", + "23.1.1": "110.0.5481.104", + "23.1.2": "110.0.5481.177", + "23.1.3": "110.0.5481.179", + "23.1.4": "110.0.5481.192", + "23.2.0": "110.0.5481.192", + "23.2.1": "110.0.5481.208", + "23.2.2": "110.0.5481.208", + "23.2.3": "110.0.5481.208", + "23.2.4": "110.0.5481.208", + "23.3.0": "110.0.5481.208", + "23.3.1": "110.0.5481.208", + "23.3.2": "110.0.5481.208", + "23.3.3": "110.0.5481.208", + "23.3.4": "110.0.5481.208", + "24.0.0-alpha.1": "111.0.5560.0", + "24.0.0-alpha.2": "111.0.5560.0", + "24.0.0-alpha.3": "111.0.5560.0", + "24.0.0-alpha.4": "111.0.5560.0", + "24.0.0-alpha.5": "111.0.5560.0", + "24.0.0-alpha.6": "111.0.5560.0", + "24.0.0-alpha.7": "111.0.5560.0", + "24.0.0-beta.1": "111.0.5563.50", + "24.0.0-beta.2": "111.0.5563.50", + "24.0.0-beta.3": "112.0.5615.20", + "24.0.0-beta.4": "112.0.5615.20", + "24.0.0-beta.5": "112.0.5615.29", + "24.0.0-beta.6": "112.0.5615.39", + "24.0.0-beta.7": "112.0.5615.39", + "24.0.0-nightly.20221201": "110.0.5415.0", + "24.0.0-nightly.20221202": "110.0.5415.0", + "24.0.0-nightly.20221205": "110.0.5415.0", + "24.0.0-nightly.20221206": "110.0.5451.0", + "24.0.0-nightly.20221207": "110.0.5451.0", + "24.0.0-nightly.20221208": "110.0.5451.0", + "24.0.0-nightly.20221213": "110.0.5451.0", + "24.0.0-nightly.20221214": "110.0.5451.0", + "24.0.0-nightly.20221215": "110.0.5451.0", + "24.0.0-nightly.20221216": "110.0.5451.0", + "24.0.0-nightly.20230109": "111.0.5518.0", + "24.0.0-nightly.20230110": "111.0.5518.0", + "24.0.0-nightly.20230111": "111.0.5518.0", + "24.0.0-nightly.20230112": "111.0.5518.0", + "24.0.0-nightly.20230113": "111.0.5518.0", + "24.0.0-nightly.20230116": "111.0.5518.0", + "24.0.0-nightly.20230117": "111.0.5518.0", + "24.0.0-nightly.20230118": "111.0.5518.0", + "24.0.0-nightly.20230119": "111.0.5518.0", + "24.0.0-nightly.20230120": "111.0.5518.0", + "24.0.0-nightly.20230123": "111.0.5518.0", + "24.0.0-nightly.20230124": "111.0.5518.0", + "24.0.0-nightly.20230125": "111.0.5518.0", + "24.0.0-nightly.20230126": "111.0.5518.0", + "24.0.0-nightly.20230127": "111.0.5518.0", + "24.0.0-nightly.20230131": "111.0.5518.0", + "24.0.0-nightly.20230201": "111.0.5518.0", + "24.0.0-nightly.20230202": "111.0.5518.0", + "24.0.0-nightly.20230203": "111.0.5560.0", + "24.0.0-nightly.20230206": "111.0.5560.0", + "24.0.0-nightly.20230207": "111.0.5560.0", + "24.0.0-nightly.20230208": "111.0.5560.0", + "24.0.0-nightly.20230209": "111.0.5560.0", + "24.0.0": "112.0.5615.49", + "24.1.0": "112.0.5615.50", + "24.1.1": "112.0.5615.50", + "24.1.2": "112.0.5615.87", + "24.1.3": "112.0.5615.165", + "24.2.0": "112.0.5615.165", + "24.3.0": "112.0.5615.165", + "24.3.1": "112.0.5615.183", + "24.4.0": "112.0.5615.204", + "24.4.1": "112.0.5615.204", + "25.0.0-alpha.1": "114.0.5694.0", + "25.0.0-alpha.2": "114.0.5694.0", + "25.0.0-alpha.3": "114.0.5710.0", + "25.0.0-alpha.4": "114.0.5710.0", + "25.0.0-alpha.5": "114.0.5719.0", + "25.0.0-alpha.6": "114.0.5719.0", + "25.0.0-beta.1": "114.0.5719.0", + "25.0.0-beta.2": "114.0.5719.0", + "25.0.0-beta.3": "114.0.5719.0", + "25.0.0-beta.4": "114.0.5735.16", + "25.0.0-beta.5": "114.0.5735.16", + "25.0.0-beta.6": "114.0.5735.16", + "25.0.0-beta.7": "114.0.5735.16", + "25.0.0-beta.8": "114.0.5735.35", + "25.0.0-beta.9": "114.0.5735.45", + "25.0.0-nightly.20230210": "111.0.5560.0", + "25.0.0-nightly.20230214": "111.0.5560.0", + "25.0.0-nightly.20230215": "111.0.5560.0", + "25.0.0-nightly.20230216": "111.0.5560.0", + "25.0.0-nightly.20230217": "111.0.5560.0", + "25.0.0-nightly.20230220": "111.0.5560.0", + "25.0.0-nightly.20230221": "111.0.5560.0", + "25.0.0-nightly.20230222": "111.0.5560.0", + "25.0.0-nightly.20230223": "111.0.5560.0", + "25.0.0-nightly.20230224": "111.0.5560.0", + "25.0.0-nightly.20230227": "111.0.5560.0", + "25.0.0-nightly.20230228": "111.0.5560.0", + "25.0.0-nightly.20230301": "111.0.5560.0", + "25.0.0-nightly.20230302": "111.0.5560.0", + "25.0.0-nightly.20230303": "111.0.5560.0", + "25.0.0-nightly.20230306": "111.0.5560.0", + "25.0.0-nightly.20230307": "111.0.5560.0", + "25.0.0-nightly.20230308": "111.0.5560.0", + "25.0.0-nightly.20230309": "111.0.5560.0", + "25.0.0-nightly.20230310": "111.0.5560.0", + "25.0.0-nightly.20230314": "113.0.5636.0", + "25.0.0-nightly.20230315": "113.0.5651.0", + "25.0.0-nightly.20230317": "113.0.5653.0", + "25.0.0-nightly.20230320": "113.0.5660.0", + "25.0.0-nightly.20230321": "113.0.5664.0", + "25.0.0-nightly.20230322": "113.0.5666.0", + "25.0.0-nightly.20230323": "113.0.5668.0", + "25.0.0-nightly.20230324": "113.0.5670.0", + "25.0.0-nightly.20230327": "113.0.5670.0", + "25.0.0-nightly.20230328": "113.0.5670.0", + "25.0.0-nightly.20230329": "113.0.5670.0", + "25.0.0-nightly.20230330": "113.0.5670.0", + "25.0.0-nightly.20230331": "114.0.5684.0", + "25.0.0-nightly.20230403": "114.0.5684.0", + "25.0.0-nightly.20230404": "114.0.5692.0", + "25.0.0-nightly.20230405": "114.0.5694.0", + "25.0.0": "114.0.5735.45", + "26.0.0-nightly.20230406": "114.0.5694.0", + "26.0.0-nightly.20230407": "114.0.5694.0", + "26.0.0-nightly.20230410": "114.0.5694.0", + "26.0.0-nightly.20230411": "114.0.5694.0", + "26.0.0-nightly.20230412": "114.0.5708.0", + "26.0.0-nightly.20230413": "114.0.5710.0", + "26.0.0-nightly.20230414": "114.0.5710.0", + "26.0.0-nightly.20230417": "114.0.5710.0", + "26.0.0-nightly.20230418": "114.0.5715.0", + "26.0.0-nightly.20230421": "114.0.5719.0", + "26.0.0-nightly.20230424": "114.0.5719.0", + "26.0.0-nightly.20230425": "114.0.5719.0", + "26.0.0-nightly.20230426": "114.0.5719.0", + "26.0.0-nightly.20230427": "114.0.5719.0", + "26.0.0-nightly.20230428": "114.0.5719.0", + "26.0.0-nightly.20230501": "114.0.5719.0", + "26.0.0-nightly.20230502": "114.0.5719.0", + "26.0.0-nightly.20230503": "114.0.5719.0", + "26.0.0-nightly.20230504": "114.0.5719.0", + "26.0.0-nightly.20230505": "114.0.5719.0", + "26.0.0-nightly.20230508": "114.0.5719.0", + "26.0.0-nightly.20230509": "114.0.5719.0", + "26.0.0-nightly.20230510": "114.0.5719.0", + "26.0.0-nightly.20230511": "115.0.5760.0", + "26.0.0-nightly.20230512": "115.0.5760.0", + "26.0.0-nightly.20230515": "115.0.5760.0", + "26.0.0-nightly.20230516": "115.0.5760.0", + "26.0.0-nightly.20230517": "115.0.5760.0", + "26.0.0-nightly.20230518": "115.0.5760.0", + "26.0.0-nightly.20230519": "115.0.5760.0", + "26.0.0-nightly.20230522": "115.0.5760.0", + "26.0.0-nightly.20230523": "115.0.5760.0", + "26.0.0-nightly.20230524": "115.0.5786.0", + "26.0.0-nightly.20230525": "115.0.5790.0", + "26.0.0-nightly.20230526": "116.0.5791.0", + "26.0.0-nightly.20230529": "116.0.5791.0" +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/full-versions.json b/node_modules/electron-to-chromium/full-versions.json new file mode 100644 index 0000000..b2a15bd --- /dev/null +++ b/node_modules/electron-to-chromium/full-versions.json @@ -0,0 +1 @@ +{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190123":"72.0.3626.52","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190912":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190922":"79.0.3919.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190928":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191103":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.11":"82.0.4085.14","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191126":"80.0.3954.0","9.0.0-nightly.20191128":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191205":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201002":"87.0.4268.0","12.0.0-nightly.20201007":"87.0.4268.0","12.0.0-nightly.20201009":"87.0.4268.0","12.0.0-nightly.20201012":"87.0.4268.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.10":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.25":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","17.4.8":"98.0.4758.141","17.4.9":"98.0.4758.141","17.4.10":"98.0.4758.141","17.4.11":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","18.3.5":"100.0.4896.160","18.3.6":"100.0.4896.160","18.3.7":"100.0.4896.160","18.3.8":"100.0.4896.160","18.3.9":"100.0.4896.160","18.3.11":"100.0.4896.160","18.3.12":"100.0.4896.160","18.3.13":"100.0.4896.160","18.3.14":"100.0.4896.160","18.3.15":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","19.0.5":"102.0.5005.115","19.0.6":"102.0.5005.115","19.0.7":"102.0.5005.134","19.0.8":"102.0.5005.148","19.0.9":"102.0.5005.167","19.0.10":"102.0.5005.167","19.0.11":"102.0.5005.167","19.0.12":"102.0.5005.167","19.0.13":"102.0.5005.167","19.0.14":"102.0.5005.167","19.0.15":"102.0.5005.167","19.0.16":"102.0.5005.167","19.0.17":"102.0.5005.167","19.1.0":"102.0.5005.167","19.1.1":"102.0.5005.167","19.1.2":"102.0.5005.167","19.1.3":"102.0.5005.167","19.1.4":"102.0.5005.167","19.1.5":"102.0.5005.167","19.1.6":"102.0.5005.167","19.1.7":"102.0.5005.167","19.1.8":"102.0.5005.167","19.1.9":"102.0.5005.167","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-alpha.7":"104.0.5073.0","20.0.0-beta.1":"104.0.5073.0","20.0.0-beta.2":"104.0.5073.0","20.0.0-beta.3":"104.0.5073.0","20.0.0-beta.4":"104.0.5073.0","20.0.0-beta.5":"104.0.5073.0","20.0.0-beta.6":"104.0.5073.0","20.0.0-beta.7":"104.0.5073.0","20.0.0-beta.8":"104.0.5073.0","20.0.0-beta.9":"104.0.5112.39","20.0.0-beta.10":"104.0.5112.48","20.0.0-beta.11":"104.0.5112.48","20.0.0-beta.12":"104.0.5112.48","20.0.0-beta.13":"104.0.5112.57","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","20.0.0":"104.0.5112.65","20.0.1":"104.0.5112.81","20.0.2":"104.0.5112.81","20.0.3":"104.0.5112.81","20.1.0":"104.0.5112.102","20.1.1":"104.0.5112.102","20.1.2":"104.0.5112.114","20.1.3":"104.0.5112.114","20.1.4":"104.0.5112.114","20.2.0":"104.0.5112.124","20.3.0":"104.0.5112.124","20.3.1":"104.0.5112.124","20.3.2":"104.0.5112.124","20.3.3":"104.0.5112.124","20.3.4":"104.0.5112.124","20.3.5":"104.0.5112.124","20.3.6":"104.0.5112.124","20.3.7":"104.0.5112.124","20.3.8":"104.0.5112.124","20.3.9":"104.0.5112.124","20.3.10":"104.0.5112.124","20.3.11":"104.0.5112.124","20.3.12":"104.0.5112.124","21.0.0-alpha.1":"105.0.5187.0","21.0.0-alpha.2":"105.0.5187.0","21.0.0-alpha.3":"105.0.5187.0","21.0.0-alpha.4":"105.0.5187.0","21.0.0-alpha.5":"105.0.5187.0","21.0.0-alpha.6":"106.0.5216.0","21.0.0-beta.1":"106.0.5216.0","21.0.0-beta.2":"106.0.5216.0","21.0.0-beta.3":"106.0.5216.0","21.0.0-beta.4":"106.0.5216.0","21.0.0-beta.5":"106.0.5216.0","21.0.0-beta.6":"106.0.5249.40","21.0.0-beta.7":"106.0.5249.40","21.0.0-beta.8":"106.0.5249.40","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0","21.0.0-nightly.20220620":"104.0.5073.0","21.0.0-nightly.20220621":"104.0.5073.0","21.0.0-nightly.20220622":"104.0.5073.0","21.0.0-nightly.20220623":"104.0.5073.0","21.0.0-nightly.20220624":"104.0.5073.0","21.0.0-nightly.20220627":"104.0.5073.0","21.0.0-nightly.20220628":"105.0.5129.0","21.0.0-nightly.20220629":"105.0.5129.0","21.0.0-nightly.20220630":"105.0.5129.0","21.0.0-nightly.20220701":"105.0.5129.0","21.0.0-nightly.20220704":"105.0.5129.0","21.0.0-nightly.20220705":"105.0.5129.0","21.0.0-nightly.20220706":"105.0.5129.0","21.0.0-nightly.20220707":"105.0.5129.0","21.0.0-nightly.20220708":"105.0.5129.0","21.0.0-nightly.20220711":"105.0.5129.0","21.0.0-nightly.20220712":"105.0.5129.0","21.0.0-nightly.20220713":"105.0.5129.0","21.0.0-nightly.20220715":"105.0.5173.0","21.0.0-nightly.20220718":"105.0.5173.0","21.0.0-nightly.20220719":"105.0.5173.0","21.0.0-nightly.20220720":"105.0.5187.0","21.0.0-nightly.20220721":"105.0.5187.0","21.0.0-nightly.20220722":"105.0.5187.0","21.0.0-nightly.20220725":"105.0.5187.0","21.0.0-nightly.20220726":"105.0.5187.0","21.0.0-nightly.20220727":"105.0.5187.0","21.0.0-nightly.20220728":"105.0.5187.0","21.0.0-nightly.20220801":"105.0.5187.0","21.0.0-nightly.20220802":"105.0.5187.0","21.0.0":"106.0.5249.51","21.0.1":"106.0.5249.61","21.1.0":"106.0.5249.91","21.1.1":"106.0.5249.103","21.2.0":"106.0.5249.119","21.2.1":"106.0.5249.165","21.2.2":"106.0.5249.168","21.2.3":"106.0.5249.168","21.3.0":"106.0.5249.181","21.3.1":"106.0.5249.181","21.3.3":"106.0.5249.199","21.3.4":"106.0.5249.199","21.3.5":"106.0.5249.199","21.4.0":"106.0.5249.199","21.4.1":"106.0.5249.199","21.4.2":"106.0.5249.199","21.4.3":"106.0.5249.199","21.4.4":"106.0.5249.199","22.0.0-alpha.1":"107.0.5286.0","22.0.0-alpha.3":"108.0.5329.0","22.0.0-alpha.4":"108.0.5329.0","22.0.0-alpha.5":"108.0.5329.0","22.0.0-alpha.6":"108.0.5329.0","22.0.0-alpha.7":"108.0.5355.0","22.0.0-alpha.8":"108.0.5359.10","22.0.0-beta.1":"108.0.5359.10","22.0.0-beta.2":"108.0.5359.10","22.0.0-beta.3":"108.0.5359.10","22.0.0-beta.4":"108.0.5359.29","22.0.0-beta.5":"108.0.5359.40","22.0.0-beta.6":"108.0.5359.40","22.0.0-beta.7":"108.0.5359.48","22.0.0-beta.8":"108.0.5359.48","22.0.0-nightly.20220808":"105.0.5187.0","22.0.0-nightly.20220809":"105.0.5187.0","22.0.0-nightly.20220810":"105.0.5187.0","22.0.0-nightly.20220811":"105.0.5187.0","22.0.0-nightly.20220812":"105.0.5187.0","22.0.0-nightly.20220815":"105.0.5187.0","22.0.0-nightly.20220816":"105.0.5187.0","22.0.0-nightly.20220817":"105.0.5187.0","22.0.0-nightly.20220822":"106.0.5216.0","22.0.0-nightly.20220823":"106.0.5216.0","22.0.0-nightly.20220824":"106.0.5216.0","22.0.0-nightly.20220825":"106.0.5216.0","22.0.0-nightly.20220829":"106.0.5216.0","22.0.0-nightly.20220830":"106.0.5216.0","22.0.0-nightly.20220831":"106.0.5216.0","22.0.0-nightly.20220901":"106.0.5216.0","22.0.0-nightly.20220902":"106.0.5216.0","22.0.0-nightly.20220905":"106.0.5216.0","22.0.0-nightly.20220908":"107.0.5274.0","22.0.0-nightly.20220909":"107.0.5286.0","22.0.0-nightly.20220912":"107.0.5286.0","22.0.0-nightly.20220913":"107.0.5286.0","22.0.0-nightly.20220914":"107.0.5286.0","22.0.0-nightly.20220915":"107.0.5286.0","22.0.0-nightly.20220916":"107.0.5286.0","22.0.0-nightly.20220919":"107.0.5286.0","22.0.0-nightly.20220920":"107.0.5286.0","22.0.0-nightly.20220921":"107.0.5286.0","22.0.0-nightly.20220922":"107.0.5286.0","22.0.0-nightly.20220923":"107.0.5286.0","22.0.0-nightly.20220926":"107.0.5286.0","22.0.0-nightly.20220927":"107.0.5286.0","22.0.0-nightly.20220928":"107.0.5286.0","22.0.0":"108.0.5359.62","22.0.1":"108.0.5359.125","22.0.2":"108.0.5359.179","22.0.3":"108.0.5359.179","22.1.0":"108.0.5359.179","22.2.0":"108.0.5359.215","22.2.1":"108.0.5359.215","22.3.0":"108.0.5359.215","22.3.1":"108.0.5359.215","22.3.2":"108.0.5359.215","22.3.3":"108.0.5359.215","22.3.4":"108.0.5359.215","22.3.5":"108.0.5359.215","22.3.6":"108.0.5359.215","22.3.7":"108.0.5359.215","22.3.8":"108.0.5359.215","22.3.9":"108.0.5359.215","22.3.10":"108.0.5359.215","22.3.11":"108.0.5359.215","23.0.0-alpha.1":"110.0.5415.0","23.0.0-alpha.2":"110.0.5451.0","23.0.0-alpha.3":"110.0.5451.0","23.0.0-beta.1":"110.0.5478.5","23.0.0-beta.2":"110.0.5478.5","23.0.0-beta.3":"110.0.5478.5","23.0.0-beta.4":"110.0.5481.30","23.0.0-beta.5":"110.0.5481.38","23.0.0-beta.6":"110.0.5481.52","23.0.0-beta.8":"110.0.5481.52","23.0.0-nightly.20220929":"107.0.5286.0","23.0.0-nightly.20220930":"107.0.5286.0","23.0.0-nightly.20221003":"107.0.5286.0","23.0.0-nightly.20221004":"108.0.5329.0","23.0.0-nightly.20221005":"108.0.5329.0","23.0.0-nightly.20221006":"108.0.5329.0","23.0.0-nightly.20221007":"108.0.5329.0","23.0.0-nightly.20221010":"108.0.5329.0","23.0.0-nightly.20221011":"108.0.5329.0","23.0.0-nightly.20221012":"108.0.5329.0","23.0.0-nightly.20221013":"108.0.5329.0","23.0.0-nightly.20221014":"108.0.5329.0","23.0.0-nightly.20221017":"108.0.5329.0","23.0.0-nightly.20221018":"108.0.5355.0","23.0.0-nightly.20221019":"108.0.5355.0","23.0.0-nightly.20221020":"108.0.5355.0","23.0.0-nightly.20221021":"108.0.5355.0","23.0.0-nightly.20221024":"108.0.5355.0","23.0.0-nightly.20221026":"108.0.5355.0","23.0.0-nightly.20221027":"109.0.5382.0","23.0.0-nightly.20221028":"109.0.5382.0","23.0.0-nightly.20221031":"109.0.5382.0","23.0.0-nightly.20221101":"109.0.5382.0","23.0.0-nightly.20221102":"109.0.5382.0","23.0.0-nightly.20221103":"109.0.5382.0","23.0.0-nightly.20221104":"109.0.5382.0","23.0.0-nightly.20221107":"109.0.5382.0","23.0.0-nightly.20221108":"109.0.5382.0","23.0.0-nightly.20221109":"109.0.5382.0","23.0.0-nightly.20221110":"109.0.5382.0","23.0.0-nightly.20221111":"109.0.5382.0","23.0.0-nightly.20221114":"109.0.5382.0","23.0.0-nightly.20221115":"109.0.5382.0","23.0.0-nightly.20221116":"109.0.5382.0","23.0.0-nightly.20221117":"109.0.5382.0","23.0.0-nightly.20221118":"110.0.5415.0","23.0.0-nightly.20221121":"110.0.5415.0","23.0.0-nightly.20221122":"110.0.5415.0","23.0.0-nightly.20221123":"110.0.5415.0","23.0.0-nightly.20221124":"110.0.5415.0","23.0.0-nightly.20221125":"110.0.5415.0","23.0.0-nightly.20221128":"110.0.5415.0","23.0.0-nightly.20221129":"110.0.5415.0","23.0.0-nightly.20221130":"110.0.5415.0","23.0.0":"110.0.5481.77","23.1.0":"110.0.5481.100","23.1.1":"110.0.5481.104","23.1.2":"110.0.5481.177","23.1.3":"110.0.5481.179","23.1.4":"110.0.5481.192","23.2.0":"110.0.5481.192","23.2.1":"110.0.5481.208","23.2.2":"110.0.5481.208","23.2.3":"110.0.5481.208","23.2.4":"110.0.5481.208","23.3.0":"110.0.5481.208","23.3.1":"110.0.5481.208","23.3.2":"110.0.5481.208","23.3.3":"110.0.5481.208","23.3.4":"110.0.5481.208","24.0.0-alpha.1":"111.0.5560.0","24.0.0-alpha.2":"111.0.5560.0","24.0.0-alpha.3":"111.0.5560.0","24.0.0-alpha.4":"111.0.5560.0","24.0.0-alpha.5":"111.0.5560.0","24.0.0-alpha.6":"111.0.5560.0","24.0.0-alpha.7":"111.0.5560.0","24.0.0-beta.1":"111.0.5563.50","24.0.0-beta.2":"111.0.5563.50","24.0.0-beta.3":"112.0.5615.20","24.0.0-beta.4":"112.0.5615.20","24.0.0-beta.5":"112.0.5615.29","24.0.0-beta.6":"112.0.5615.39","24.0.0-beta.7":"112.0.5615.39","24.0.0-nightly.20221201":"110.0.5415.0","24.0.0-nightly.20221202":"110.0.5415.0","24.0.0-nightly.20221205":"110.0.5415.0","24.0.0-nightly.20221206":"110.0.5451.0","24.0.0-nightly.20221207":"110.0.5451.0","24.0.0-nightly.20221208":"110.0.5451.0","24.0.0-nightly.20221213":"110.0.5451.0","24.0.0-nightly.20221214":"110.0.5451.0","24.0.0-nightly.20221215":"110.0.5451.0","24.0.0-nightly.20221216":"110.0.5451.0","24.0.0-nightly.20230109":"111.0.5518.0","24.0.0-nightly.20230110":"111.0.5518.0","24.0.0-nightly.20230111":"111.0.5518.0","24.0.0-nightly.20230112":"111.0.5518.0","24.0.0-nightly.20230113":"111.0.5518.0","24.0.0-nightly.20230116":"111.0.5518.0","24.0.0-nightly.20230117":"111.0.5518.0","24.0.0-nightly.20230118":"111.0.5518.0","24.0.0-nightly.20230119":"111.0.5518.0","24.0.0-nightly.20230120":"111.0.5518.0","24.0.0-nightly.20230123":"111.0.5518.0","24.0.0-nightly.20230124":"111.0.5518.0","24.0.0-nightly.20230125":"111.0.5518.0","24.0.0-nightly.20230126":"111.0.5518.0","24.0.0-nightly.20230127":"111.0.5518.0","24.0.0-nightly.20230131":"111.0.5518.0","24.0.0-nightly.20230201":"111.0.5518.0","24.0.0-nightly.20230202":"111.0.5518.0","24.0.0-nightly.20230203":"111.0.5560.0","24.0.0-nightly.20230206":"111.0.5560.0","24.0.0-nightly.20230207":"111.0.5560.0","24.0.0-nightly.20230208":"111.0.5560.0","24.0.0-nightly.20230209":"111.0.5560.0","24.0.0":"112.0.5615.49","24.1.0":"112.0.5615.50","24.1.1":"112.0.5615.50","24.1.2":"112.0.5615.87","24.1.3":"112.0.5615.165","24.2.0":"112.0.5615.165","24.3.0":"112.0.5615.165","24.3.1":"112.0.5615.183","24.4.0":"112.0.5615.204","24.4.1":"112.0.5615.204","25.0.0-alpha.1":"114.0.5694.0","25.0.0-alpha.2":"114.0.5694.0","25.0.0-alpha.3":"114.0.5710.0","25.0.0-alpha.4":"114.0.5710.0","25.0.0-alpha.5":"114.0.5719.0","25.0.0-alpha.6":"114.0.5719.0","25.0.0-beta.1":"114.0.5719.0","25.0.0-beta.2":"114.0.5719.0","25.0.0-beta.3":"114.0.5719.0","25.0.0-beta.4":"114.0.5735.16","25.0.0-beta.5":"114.0.5735.16","25.0.0-beta.6":"114.0.5735.16","25.0.0-beta.7":"114.0.5735.16","25.0.0-beta.8":"114.0.5735.35","25.0.0-beta.9":"114.0.5735.45","25.0.0-nightly.20230210":"111.0.5560.0","25.0.0-nightly.20230214":"111.0.5560.0","25.0.0-nightly.20230215":"111.0.5560.0","25.0.0-nightly.20230216":"111.0.5560.0","25.0.0-nightly.20230217":"111.0.5560.0","25.0.0-nightly.20230220":"111.0.5560.0","25.0.0-nightly.20230221":"111.0.5560.0","25.0.0-nightly.20230222":"111.0.5560.0","25.0.0-nightly.20230223":"111.0.5560.0","25.0.0-nightly.20230224":"111.0.5560.0","25.0.0-nightly.20230227":"111.0.5560.0","25.0.0-nightly.20230228":"111.0.5560.0","25.0.0-nightly.20230301":"111.0.5560.0","25.0.0-nightly.20230302":"111.0.5560.0","25.0.0-nightly.20230303":"111.0.5560.0","25.0.0-nightly.20230306":"111.0.5560.0","25.0.0-nightly.20230307":"111.0.5560.0","25.0.0-nightly.20230308":"111.0.5560.0","25.0.0-nightly.20230309":"111.0.5560.0","25.0.0-nightly.20230310":"111.0.5560.0","25.0.0-nightly.20230314":"113.0.5636.0","25.0.0-nightly.20230315":"113.0.5651.0","25.0.0-nightly.20230317":"113.0.5653.0","25.0.0-nightly.20230320":"113.0.5660.0","25.0.0-nightly.20230321":"113.0.5664.0","25.0.0-nightly.20230322":"113.0.5666.0","25.0.0-nightly.20230323":"113.0.5668.0","25.0.0-nightly.20230324":"113.0.5670.0","25.0.0-nightly.20230327":"113.0.5670.0","25.0.0-nightly.20230328":"113.0.5670.0","25.0.0-nightly.20230329":"113.0.5670.0","25.0.0-nightly.20230330":"113.0.5670.0","25.0.0-nightly.20230331":"114.0.5684.0","25.0.0-nightly.20230403":"114.0.5684.0","25.0.0-nightly.20230404":"114.0.5692.0","25.0.0-nightly.20230405":"114.0.5694.0","25.0.0":"114.0.5735.45","26.0.0-nightly.20230406":"114.0.5694.0","26.0.0-nightly.20230407":"114.0.5694.0","26.0.0-nightly.20230410":"114.0.5694.0","26.0.0-nightly.20230411":"114.0.5694.0","26.0.0-nightly.20230412":"114.0.5708.0","26.0.0-nightly.20230413":"114.0.5710.0","26.0.0-nightly.20230414":"114.0.5710.0","26.0.0-nightly.20230417":"114.0.5710.0","26.0.0-nightly.20230418":"114.0.5715.0","26.0.0-nightly.20230421":"114.0.5719.0","26.0.0-nightly.20230424":"114.0.5719.0","26.0.0-nightly.20230425":"114.0.5719.0","26.0.0-nightly.20230426":"114.0.5719.0","26.0.0-nightly.20230427":"114.0.5719.0","26.0.0-nightly.20230428":"114.0.5719.0","26.0.0-nightly.20230501":"114.0.5719.0","26.0.0-nightly.20230502":"114.0.5719.0","26.0.0-nightly.20230503":"114.0.5719.0","26.0.0-nightly.20230504":"114.0.5719.0","26.0.0-nightly.20230505":"114.0.5719.0","26.0.0-nightly.20230508":"114.0.5719.0","26.0.0-nightly.20230509":"114.0.5719.0","26.0.0-nightly.20230510":"114.0.5719.0","26.0.0-nightly.20230511":"115.0.5760.0","26.0.0-nightly.20230512":"115.0.5760.0","26.0.0-nightly.20230515":"115.0.5760.0","26.0.0-nightly.20230516":"115.0.5760.0","26.0.0-nightly.20230517":"115.0.5760.0","26.0.0-nightly.20230518":"115.0.5760.0","26.0.0-nightly.20230519":"115.0.5760.0","26.0.0-nightly.20230522":"115.0.5760.0","26.0.0-nightly.20230523":"115.0.5760.0","26.0.0-nightly.20230524":"115.0.5786.0","26.0.0-nightly.20230525":"115.0.5790.0","26.0.0-nightly.20230526":"116.0.5791.0","26.0.0-nightly.20230529":"116.0.5791.0"} \ No newline at end of file diff --git a/node_modules/electron-to-chromium/index.js b/node_modules/electron-to-chromium/index.js new file mode 100644 index 0000000..1818281 --- /dev/null +++ b/node_modules/electron-to-chromium/index.js @@ -0,0 +1,36 @@ +var versions = require('./versions'); +var fullVersions = require('./full-versions'); +var chromiumVersions = require('./chromium-versions'); +var fullChromiumVersions = require('./full-chromium-versions'); + +var electronToChromium = function (query) { + var number = getQueryString(query); + return number.split('.').length > 2 ? fullVersions[number] : versions[number] || undefined; +}; + +var chromiumToElectron = function (query) { + var number = getQueryString(query); + return number.split('.').length > 2 ? fullChromiumVersions[number] : chromiumVersions[number] || undefined; +}; + +var electronToBrowserList = function (query) { + var number = getQueryString(query); + return versions[number] ? "Chrome >= " + versions[number] : undefined; +}; + +var getQueryString = function (query) { + var number = query; + if (query === 1) { number = "1.0" } + if (typeof query === 'number') { number += ''; } + return number; +}; + +module.exports = { + versions: versions, + fullVersions: fullVersions, + chromiumVersions: chromiumVersions, + fullChromiumVersions: fullChromiumVersions, + electronToChromium: electronToChromium, + electronToBrowserList: electronToBrowserList, + chromiumToElectron: chromiumToElectron +}; diff --git a/node_modules/electron-to-chromium/package.json b/node_modules/electron-to-chromium/package.json new file mode 100644 index 0000000..f534970 --- /dev/null +++ b/node_modules/electron-to-chromium/package.json @@ -0,0 +1,44 @@ +{ + "name": "electron-to-chromium", + "version": "1.4.413", + "description": "Provides a list of electron-to-chromium version mappings", + "main": "index.js", + "files": [ + "versions.js", + "full-versions.js", + "chromium-versions.js", + "full-chromium-versions.js", + "versions.json", + "full-versions.json", + "chromium-versions.json", + "full-chromium-versions.json", + "LICENSE" + ], + "scripts": { + "build": "node build.mjs", + "update": "node automated-update.js", + "test": "nyc ava --verbose", + "report": "nyc report --reporter=text-lcov > coverage.lcov && codecov" + }, + "repository": { + "type": "git", + "url": "https://github.com/kilian/electron-to-chromium/" + }, + "keywords": [ + "electron", + "chrome", + "chromium", + "browserslist", + "browserlist" + ], + "author": "Kilian Valkhof", + "license": "ISC", + "devDependencies": { + "ava": "^5.1.1", + "codecov": "^3.8.2", + "compare-versions": "^6.0.0-rc.1", + "node-fetch": "^3.3.0", + "nyc": "^15.1.0", + "shelljs": "^0.8.5" + } +} diff --git a/node_modules/electron-to-chromium/versions.js b/node_modules/electron-to-chromium/versions.js new file mode 100644 index 0000000..cda5ec4 --- /dev/null +++ b/node_modules/electron-to-chromium/versions.js @@ -0,0 +1,121 @@ +module.exports = { + "0.20": "39", + "0.21": "41", + "0.22": "41", + "0.23": "41", + "0.24": "41", + "0.25": "42", + "0.26": "42", + "0.27": "43", + "0.28": "43", + "0.29": "43", + "0.30": "44", + "0.31": "45", + "0.32": "45", + "0.33": "45", + "0.34": "45", + "0.35": "45", + "0.36": "47", + "0.37": "49", + "1.0": "49", + "1.1": "50", + "1.2": "51", + "1.3": "52", + "1.4": "53", + "1.5": "54", + "1.6": "56", + "1.7": "58", + "1.8": "59", + "2.0": "61", + "2.1": "61", + "3.0": "66", + "3.1": "66", + "4.0": "69", + "4.1": "69", + "4.2": "69", + "5.0": "73", + "6.0": "76", + "6.1": "76", + "7.0": "78", + "7.1": "78", + "7.2": "78", + "7.3": "78", + "8.0": "80", + "8.1": "80", + "8.2": "80", + "8.3": "80", + "8.4": "80", + "8.5": "80", + "9.0": "83", + "9.1": "83", + "9.2": "83", + "9.3": "83", + "9.4": "83", + "10.0": "85", + "10.1": "85", + "10.2": "85", + "10.3": "85", + "10.4": "85", + "11.0": "87", + "11.1": "87", + "11.2": "87", + "11.3": "87", + "11.4": "87", + "11.5": "87", + "12.0": "89", + "12.1": "89", + "12.2": "89", + "13.0": "91", + "13.1": "91", + "13.2": "91", + "13.3": "91", + "13.4": "91", + "13.5": "91", + "13.6": "91", + "14.0": "93", + "14.1": "93", + "14.2": "93", + "15.0": "94", + "15.1": "94", + "15.2": "94", + "15.3": "94", + "15.4": "94", + "15.5": "94", + "16.0": "96", + "16.1": "96", + "16.2": "96", + "17.0": "98", + "17.1": "98", + "17.2": "98", + "17.3": "98", + "17.4": "98", + "18.0": "100", + "18.1": "100", + "18.2": "100", + "18.3": "100", + "19.0": "102", + "19.1": "102", + "20.0": "104", + "20.1": "104", + "20.2": "104", + "20.3": "104", + "21.0": "106", + "21.1": "106", + "21.2": "106", + "21.3": "106", + "21.4": "106", + "22.0": "108", + "22.1": "108", + "22.2": "108", + "22.3": "108", + "23.0": "110", + "23.1": "110", + "23.2": "110", + "23.3": "110", + "24.0": "112", + "24.1": "112", + "24.2": "112", + "24.3": "112", + "24.4": "112", + "25.0": "114" +}; \ No newline at end of file diff --git a/node_modules/electron-to-chromium/versions.json b/node_modules/electron-to-chromium/versions.json new file mode 100644 index 0000000..ac430c6 --- /dev/null +++ b/node_modules/electron-to-chromium/versions.json @@ -0,0 +1 @@ +{"0.20":"39","0.21":"41","0.22":"41","0.23":"41","0.24":"41","0.25":"42","0.26":"42","0.27":"43","0.28":"43","0.29":"43","0.30":"44","0.31":"45","0.32":"45","0.33":"45","0.34":"45","0.35":"45","0.36":"47","0.37":"49","1.0":"49","1.1":"50","1.2":"51","1.3":"52","1.4":"53","1.5":"54","1.6":"56","1.7":"58","1.8":"59","2.0":"61","2.1":"61","3.0":"66","3.1":"66","4.0":"69","4.1":"69","4.2":"69","5.0":"73","6.0":"76","6.1":"76","7.0":"78","7.1":"78","7.2":"78","7.3":"78","8.0":"80","8.1":"80","8.2":"80","8.3":"80","8.4":"80","8.5":"80","9.0":"83","9.1":"83","9.2":"83","9.3":"83","9.4":"83","10.0":"85","10.1":"85","10.2":"85","10.3":"85","10.4":"85","11.0":"87","11.1":"87","11.2":"87","11.3":"87","11.4":"87","11.5":"87","12.0":"89","12.1":"89","12.2":"89","13.0":"91","13.1":"91","13.2":"91","13.3":"91","13.4":"91","13.5":"91","13.6":"91","14.0":"93","14.1":"93","14.2":"93","15.0":"94","15.1":"94","15.2":"94","15.3":"94","15.4":"94","15.5":"94","16.0":"96","16.1":"96","16.2":"96","17.0":"98","17.1":"98","17.2":"98","17.3":"98","17.4":"98","18.0":"100","18.1":"100","18.2":"100","18.3":"100","19.0":"102","19.1":"102","20.0":"104","20.1":"104","20.2":"104","20.3":"104","21.0":"106","21.1":"106","21.2":"106","21.3":"106","21.4":"106","22.0":"108","22.1":"108","22.2":"108","22.3":"108","23.0":"110","23.1":"110","23.2":"110","23.3":"110","24.0":"112","24.1":"112","24.2":"112","24.3":"112","24.4":"112","25.0":"114"} \ No newline at end of file diff --git a/node_modules/emoji-regex/LICENSE-MIT.txt b/node_modules/emoji-regex/LICENSE-MIT.txt new file mode 100644 index 0000000..a41e0a7 --- /dev/null +++ b/node_modules/emoji-regex/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/emoji-regex/README.md b/node_modules/emoji-regex/README.md new file mode 100644 index 0000000..f10e173 --- /dev/null +++ b/node_modules/emoji-regex/README.md @@ -0,0 +1,73 @@ +# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex) + +_emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard. + +This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard. + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install emoji-regex +``` + +In [Node.js](https://nodejs.org/): + +```js +const emojiRegex = require('emoji-regex'); +// Note: because the regular expression has the global flag set, this module +// exports a function that returns the regex rather than exporting the regular +// expression itself, to make it impossible to (accidentally) mutate the +// original regular expression. + +const text = ` +\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation) +\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji +\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base) +\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier +`; + +const regex = emojiRegex(); +let match; +while (match = regex.exec(text)) { + const emoji = match[0]; + console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`); +} +``` + +Console output: + +``` +Matched sequence ⌚ — code points: 1 +Matched sequence ⌚ — code points: 1 +Matched sequence ↔️ — code points: 2 +Matched sequence ↔️ — code points: 2 +Matched sequence 👩 — code points: 1 +Matched sequence 👩 — code points: 1 +Matched sequence 👩🏿 — code points: 2 +Matched sequence 👩🏿 — code points: 2 +``` + +To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex: + +```js +const emojiRegex = require('emoji-regex/text.js'); +``` + +Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes: + +```js +const emojiRegex = require('emoji-regex/es2015/index.js'); +const emojiRegexText = require('emoji-regex/es2015/text.js'); +``` + +## Author + +| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](https://mathiasbynens.be/) | + +## License + +_emoji-regex_ is available under the [MIT](https://mths.be/mit) license. diff --git a/node_modules/emoji-regex/es2015/index.js b/node_modules/emoji-regex/es2015/index.js new file mode 100644 index 0000000..b4cf3dc --- /dev/null +++ b/node_modules/emoji-regex/es2015/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/emoji-regex/es2015/text.js b/node_modules/emoji-regex/es2015/text.js new file mode 100644 index 0000000..780309d --- /dev/null +++ b/node_modules/emoji-regex/es2015/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/emoji-regex/index.d.ts b/node_modules/emoji-regex/index.d.ts new file mode 100644 index 0000000..1955b47 --- /dev/null +++ b/node_modules/emoji-regex/index.d.ts @@ -0,0 +1,23 @@ +declare module 'emoji-regex' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} + +declare module 'emoji-regex/text' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} + +declare module 'emoji-regex/es2015' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} + +declare module 'emoji-regex/es2015/text' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} diff --git a/node_modules/emoji-regex/index.js b/node_modules/emoji-regex/index.js new file mode 100644 index 0000000..d993a3a --- /dev/null +++ b/node_modules/emoji-regex/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; diff --git a/node_modules/emoji-regex/package.json b/node_modules/emoji-regex/package.json new file mode 100644 index 0000000..6d32352 --- /dev/null +++ b/node_modules/emoji-regex/package.json @@ -0,0 +1,50 @@ +{ + "name": "emoji-regex", + "version": "8.0.0", + "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", + "homepage": "https://mths.be/emoji-regex", + "main": "index.js", + "types": "index.d.ts", + "keywords": [ + "unicode", + "regex", + "regexp", + "regular expressions", + "code points", + "symbols", + "characters", + "emoji" + ], + "license": "MIT", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "repository": { + "type": "git", + "url": "https://github.com/mathiasbynens/emoji-regex.git" + }, + "bugs": "https://github.com/mathiasbynens/emoji-regex/issues", + "files": [ + "LICENSE-MIT.txt", + "index.js", + "index.d.ts", + "text.js", + "es2015/index.js", + "es2015/text.js" + ], + "scripts": { + "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js", + "test": "mocha", + "test:watch": "npm run test -- --watch" + }, + "devDependencies": { + "@babel/cli": "^7.2.3", + "@babel/core": "^7.3.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/preset-env": "^7.3.4", + "mocha": "^6.0.2", + "regexgen": "^1.3.0", + "unicode-12.0.0": "^0.7.9" + } +} diff --git a/node_modules/emoji-regex/text.js b/node_modules/emoji-regex/text.js new file mode 100644 index 0000000..0a55ce2 --- /dev/null +++ b/node_modules/emoji-regex/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; diff --git a/node_modules/escalade/dist/index.js b/node_modules/escalade/dist/index.js new file mode 100644 index 0000000..ad236c4 --- /dev/null +++ b/node_modules/escalade/dist/index.js @@ -0,0 +1,22 @@ +const { dirname, resolve } = require('path'); +const { readdir, stat } = require('fs'); +const { promisify } = require('util'); + +const toStats = promisify(stat); +const toRead = promisify(readdir); + +module.exports = async function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = await toStats(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = await callback(dir, await toRead(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/dist/index.mjs b/node_modules/escalade/dist/index.mjs new file mode 100644 index 0000000..bf95be0 --- /dev/null +++ b/node_modules/escalade/dist/index.mjs @@ -0,0 +1,22 @@ +import { dirname, resolve } from 'path'; +import { readdir, stat } from 'fs'; +import { promisify } from 'util'; + +const toStats = promisify(stat); +const toRead = promisify(readdir); + +export default async function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = await toStats(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = await callback(dir, await toRead(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/index.d.ts b/node_modules/escalade/index.d.ts new file mode 100644 index 0000000..283e398 --- /dev/null +++ b/node_modules/escalade/index.d.ts @@ -0,0 +1,3 @@ +type Promisable = T | Promise; +export type Callback = (directory: string, files: string[]) => Promisable; +export default function (directory: string, callback: Callback): Promise; diff --git a/node_modules/escalade/license b/node_modules/escalade/license new file mode 100644 index 0000000..fa6089f --- /dev/null +++ b/node_modules/escalade/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Luke Edwards (lukeed.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/escalade/package.json b/node_modules/escalade/package.json new file mode 100644 index 0000000..0d1bfce --- /dev/null +++ b/node_modules/escalade/package.json @@ -0,0 +1,61 @@ +{ + "name": "escalade", + "version": "3.1.1", + "repository": "lukeed/escalade", + "description": "A tiny (183B to 210B) and fast utility to ascend parent directories", + "module": "dist/index.mjs", + "main": "dist/index.js", + "types": "index.d.ts", + "license": "MIT", + "author": { + "name": "Luke Edwards", + "email": "luke.edwards05@gmail.com", + "url": "https://lukeed.com" + }, + "exports": { + ".": [ + { + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./dist/index.js" + ], + "./sync": [ + { + "import": "./sync/index.mjs", + "require": "./sync/index.js" + }, + "./sync/index.js" + ] + }, + "files": [ + "*.d.ts", + "dist", + "sync" + ], + "modes": { + "sync": "src/sync.js", + "default": "src/async.js" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "build": "bundt", + "pretest": "npm run build", + "test": "uvu -r esm test -i fixtures" + }, + "keywords": [ + "find", + "parent", + "parents", + "directory", + "search", + "walk" + ], + "devDependencies": { + "bundt": "1.1.1", + "esm": "3.2.25", + "uvu": "0.3.3" + } +} diff --git a/node_modules/escalade/readme.md b/node_modules/escalade/readme.md new file mode 100644 index 0000000..4e2195c --- /dev/null +++ b/node_modules/escalade/readme.md @@ -0,0 +1,211 @@ +# escalade [![CI](https://github.com/lukeed/escalade/workflows/CI/badge.svg)](https://github.com/lukeed/escalade/actions) [![codecov](https://badgen.now.sh/codecov/c/github/lukeed/escalade)](https://codecov.io/gh/lukeed/escalade) + +> A tiny (183B to 210B) and [fast](#benchmarks) utility to ascend parent directories + +With [escalade](https://en.wikipedia.org/wiki/Escalade), you can scale parent directories until you've found what you're looking for.
Given an input file or directory, `escalade` will continue executing your callback function until either: + +1) the callback returns a truthy value +2) `escalade` has reached the system root directory (eg, `/`) + +> **Important:**
Please note that `escalade` only deals with direct ancestry – it will not dive into parents' sibling directories. + +--- + +**Notice:** As of v3.1.0, `escalade` now includes [Deno support](http://deno.land/x/escalade)! Please see [Deno Usage](#deno) below. + +--- + +## Install + +``` +$ npm install --save escalade +``` + + +## Modes + +There are two "versions" of `escalade` available: + +#### "async" +> **Node.js:** >= 8.x
+> **Size (gzip):** 210 bytes
+> **Availability:** [CommonJS](https://unpkg.com/escalade/dist/index.js), [ES Module](https://unpkg.com/escalade/dist/index.mjs) + +This is the primary/default mode. It makes use of `async`/`await` and [`util.promisify`](https://nodejs.org/api/util.html#util_util_promisify_original). + +#### "sync" +> **Node.js:** >= 6.x
+> **Size (gzip):** 183 bytes
+> **Availability:** [CommonJS](https://unpkg.com/escalade/sync/index.js), [ES Module](https://unpkg.com/escalade/sync/index.mjs) + +This is the opt-in mode, ideal for scenarios where `async` usage cannot be supported. + + +## Usage + +***Example Structure*** + +``` +/Users/lukeed + └── oss + ├── license + └── escalade + ├── package.json + └── test + └── fixtures + ├── index.js + └── foobar + └── demo.js +``` + +***Example Usage*** + +```js +//~> demo.js +import { join } from 'path'; +import escalade from 'escalade'; + +const input = join(__dirname, 'demo.js'); +// or: const input = __dirname; + +const pkg = await escalade(input, (dir, names) => { + console.log('~> dir:', dir); + console.log('~> names:', names); + console.log('---'); + + if (names.includes('package.json')) { + // will be resolved into absolute + return 'package.json'; + } +}); + +//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar +//~> names: ['demo.js'] +//--- +//~> dir: /Users/lukeed/oss/escalade/test/fixtures +//~> names: ['index.js', 'foobar'] +//--- +//~> dir: /Users/lukeed/oss/escalade/test +//~> names: ['fixtures'] +//--- +//~> dir: /Users/lukeed/oss/escalade +//~> names: ['package.json', 'test'] +//--- + +console.log(pkg); +//=> /Users/lukeed/oss/escalade/package.json + +// Now search for "missing123.txt" +// (Assume it doesn't exist anywhere!) +const missing = await escalade(input, (dir, names) => { + console.log('~> dir:', dir); + return names.includes('missing123.txt') && 'missing123.txt'; +}); + +//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar +//~> dir: /Users/lukeed/oss/escalade/test/fixtures +//~> dir: /Users/lukeed/oss/escalade/test +//~> dir: /Users/lukeed/oss/escalade +//~> dir: /Users/lukeed/oss +//~> dir: /Users/lukeed +//~> dir: /Users +//~> dir: / + +console.log(missing); +//=> undefined +``` + +> **Note:** To run the above example with "sync" mode, import from `escalade/sync` and remove the `await` keyword. + + +## API + +### escalade(input, callback) +Returns: `string|void` or `Promise` + +When your `callback` locates a file, `escalade` will resolve/return with an absolute path.
+If your `callback` was never satisfied, then `escalade` will resolve/return with nothing (undefined). + +> **Important:**
The `sync` and `async` versions share the same API.
The **only** difference is that `sync` is not Promise-based. + +#### input +Type: `string` + +The path from which to start ascending. + +This may be a file or a directory path.
However, when `input` is a file, `escalade` will begin with its parent directory. + +> **Important:** Unless given an absolute path, `input` will be resolved from `process.cwd()` location. + +#### callback +Type: `Function` + +The callback to execute for each ancestry level. It always is given two arguments: + +1) `dir` - an absolute path of the current parent directory +2) `names` - a list (`string[]`) of contents _relative to_ the `dir` parent + +> **Note:** The `names` list can contain names of files _and_ directories. + +When your callback returns a _falsey_ value, then `escalade` will continue with `dir`'s parent directory, re-invoking your callback with new argument values. + +When your callback returns a string, then `escalade` stops iteration immediately.
+If the string is an absolute path, then it's left as is. Otherwise, the string is resolved into an absolute path _from_ the `dir` that housed the satisfying condition. + +> **Important:** Your `callback` can be a `Promise/AsyncFunction` when using the "async" version of `escalade`. + +## Benchmarks + +> Running on Node.js v10.13.0 + +``` +# Load Time + find-up 3.891ms + escalade 0.485ms + escalade/sync 0.309ms + +# Levels: 6 (target = "foo.txt"): + find-up x 24,856 ops/sec ±6.46% (55 runs sampled) + escalade x 73,084 ops/sec ±4.23% (73 runs sampled) + find-up.sync x 3,663 ops/sec ±1.12% (83 runs sampled) + escalade/sync x 9,360 ops/sec ±0.62% (88 runs sampled) + +# Levels: 12 (target = "package.json"): + find-up x 29,300 ops/sec ±10.68% (70 runs sampled) + escalade x 73,685 ops/sec ± 5.66% (66 runs sampled) + find-up.sync x 1,707 ops/sec ± 0.58% (91 runs sampled) + escalade/sync x 4,667 ops/sec ± 0.68% (94 runs sampled) + +# Levels: 18 (target = "missing123.txt"): + find-up x 21,818 ops/sec ±17.37% (14 runs sampled) + escalade x 67,101 ops/sec ±21.60% (20 runs sampled) + find-up.sync x 1,037 ops/sec ± 2.86% (88 runs sampled) + escalade/sync x 1,248 ops/sec ± 0.50% (93 runs sampled) +``` + +## Deno + +As of v3.1.0, `escalade` is available on the Deno registry. + +Please note that the [API](#api) is identical and that there are still [two modes](#modes) from which to choose: + +```ts +// Choose "async" mode +import escalade from 'https://deno.land/escalade/async.ts'; + +// Choose "sync" mode +import escalade from 'https://deno.land/escalade/sync.ts'; +``` + +> **Important:** The `allow-read` permission is required! + + +## Related + +- [premove](https://github.com/lukeed/premove) - A tiny (247B) utility to remove items recursively +- [totalist](https://github.com/lukeed/totalist) - A tiny (195B to 224B) utility to recursively list all (total) files in a directory +- [mk-dirs](https://github.com/lukeed/mk-dirs) - A tiny (420B) utility to make a directory and its parents, recursively + +## License + +MIT © [Luke Edwards](https://lukeed.com) diff --git a/node_modules/escalade/sync/index.d.ts b/node_modules/escalade/sync/index.d.ts new file mode 100644 index 0000000..746ddd3 --- /dev/null +++ b/node_modules/escalade/sync/index.d.ts @@ -0,0 +1,2 @@ +export type Callback = (directory: string, files: string[]) => string | false | void; +export default function (directory: string, callback: Callback): string | void; diff --git a/node_modules/escalade/sync/index.js b/node_modules/escalade/sync/index.js new file mode 100644 index 0000000..902cc46 --- /dev/null +++ b/node_modules/escalade/sync/index.js @@ -0,0 +1,18 @@ +const { dirname, resolve } = require('path'); +const { readdirSync, statSync } = require('fs'); + +module.exports = function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = statSync(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = callback(dir, readdirSync(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/sync/index.mjs b/node_modules/escalade/sync/index.mjs new file mode 100644 index 0000000..3cdc5bd --- /dev/null +++ b/node_modules/escalade/sync/index.mjs @@ -0,0 +1,18 @@ +import { dirname, resolve } from 'path'; +import { readdirSync, statSync } from 'fs'; + +export default function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = statSync(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = callback(dir, readdirSync(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/fast-glob/LICENSE b/node_modules/fast-glob/LICENSE new file mode 100644 index 0000000..65a9994 --- /dev/null +++ b/node_modules/fast-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/fast-glob/README.md b/node_modules/fast-glob/README.md new file mode 100644 index 0000000..393f4fe --- /dev/null +++ b/node_modules/fast-glob/README.md @@ -0,0 +1,795 @@ +# fast-glob + +> It's a very fast and efficient [glob][glob_definition] library for [Node.js][node_js]. + +This package provides methods for traversing the file system and returning pathnames that matched a defined set of a specified pattern according to the rules used by the Unix Bash shell with some simplifications, meanwhile results are returned in **arbitrary order**. Quick, simple, effective. + +## Table of Contents + +
+Details + +* [Highlights](#highlights) +* [Donation](#donation) +* [Old and modern mode](#old-and-modern-mode) +* [Pattern syntax](#pattern-syntax) + * [Basic syntax](#basic-syntax) + * [Advanced syntax](#advanced-syntax) +* [Installation](#installation) +* [API](#api) + * [Asynchronous](#asynchronous) + * [Synchronous](#synchronous) + * [Stream](#stream) + * [patterns](#patterns) + * [[options]](#options) + * [Helpers](#helpers) + * [generateTasks](#generatetaskspatterns-options) + * [isDynamicPattern](#isdynamicpatternpattern-options) + * [escapePath](#escapepathpattern) +* [Options](#options-3) + * [Common](#common) + * [concurrency](#concurrency) + * [cwd](#cwd) + * [deep](#deep) + * [followSymbolicLinks](#followsymboliclinks) + * [fs](#fs) + * [ignore](#ignore) + * [suppressErrors](#suppresserrors) + * [throwErrorOnBrokenSymbolicLink](#throwerroronbrokensymboliclink) + * [Output control](#output-control) + * [absolute](#absolute) + * [markDirectories](#markdirectories) + * [objectMode](#objectmode) + * [onlyDirectories](#onlydirectories) + * [onlyFiles](#onlyfiles) + * [stats](#stats) + * [unique](#unique) + * [Matching control](#matching-control) + * [braceExpansion](#braceexpansion) + * [caseSensitiveMatch](#casesensitivematch) + * [dot](#dot) + * [extglob](#extglob) + * [globstar](#globstar) + * [baseNameMatch](#basenamematch) +* [FAQ](#faq) + * [What is a static or dynamic pattern?](#what-is-a-static-or-dynamic-pattern) + * [How to write patterns on Windows?](#how-to-write-patterns-on-windows) + * [Why are parentheses match wrong?](#why-are-parentheses-match-wrong) + * [How to exclude directory from reading?](#how-to-exclude-directory-from-reading) + * [How to use UNC path?](#how-to-use-unc-path) + * [Compatible with `node-glob`?](#compatible-with-node-glob) +* [Benchmarks](#benchmarks) + * [Server](#server) + * [Nettop](#nettop) +* [Changelog](#changelog) +* [License](#license) + +
+ +## Highlights + +* Fast. Probably the fastest. +* Supports multiple and negative patterns. +* Synchronous, Promise and Stream API. +* Object mode. Can return more than just strings. +* Error-tolerant. + +## Donation + +Do you like this project? Support it by donating, creating an issue or pull request. + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)][paypal_mrmlnc] + +## Old and modern mode + +This package works in two modes, depending on the environment in which it is used. + +* **Old mode**. Node.js below 10.10 or when the [`stats`](#stats) option is *enabled*. +* **Modern mode**. Node.js 10.10+ and the [`stats`](#stats) option is *disabled*. + +The modern mode is faster. Learn more about the [internal mechanism][nodelib_fs_scandir_old_and_modern_modern]. + +## Pattern syntax + +> :warning: Always use forward-slashes in glob expressions (patterns and [`ignore`](#ignore) option). Use backslashes for escaping characters. + +There is more than one form of syntax: basic and advanced. Below is a brief overview of the supported features. Also pay attention to our [FAQ](#faq). + +> :book: This package uses a [`micromatch`][micromatch] as a library for pattern matching. + +### Basic syntax + +* An asterisk (`*`) — matches everything except slashes (path separators), hidden files (names starting with `.`). +* A double star or globstar (`**`) — matches zero or more directories. +* Question mark (`?`) – matches any single character except slashes (path separators). +* Sequence (`[seq]`) — matches any character in sequence. + +> :book: A few additional words about the [basic matching behavior][picomatch_matching_behavior]. + +Some examples: + +* `src/**/*.js` — matches all files in the `src` directory (any level of nesting) that have the `.js` extension. +* `src/*.??` — matches all files in the `src` directory (only first level of nesting) that have a two-character extension. +* `file-[01].js` — matches files: `file-0.js`, `file-1.js`. + +### Advanced syntax + +* [Escapes characters][micromatch_backslashes] (`\\`) — matching special characters (`$^*+?()[]`) as literals. +* [POSIX character classes][picomatch_posix_brackets] (`[[:digit:]]`). +* [Extended globs][micromatch_extglobs] (`?(pattern-list)`). +* [Bash style brace expansions][micromatch_braces] (`{}`). +* [Regexp character classes][micromatch_regex_character_classes] (`[1-5]`). +* [Regex groups][regular_expressions_brackets] (`(a|b)`). + +> :book: A few additional words about the [advanced matching behavior][micromatch_extended_globbing]. + +Some examples: + +* `src/**/*.{css,scss}` — matches all files in the `src` directory (any level of nesting) that have the `.css` or `.scss` extension. +* `file-[[:digit:]].js` — matches files: `file-0.js`, `file-1.js`, …, `file-9.js`. +* `file-{1..3}.js` — matches files: `file-1.js`, `file-2.js`, `file-3.js`. +* `file-(1|2)` — matches files: `file-1.js`, `file-2.js`. + +## Installation + +```console +npm install fast-glob +``` + +## API + +### Asynchronous + +```js +fg(patterns, [options]) +``` + +Returns a `Promise` with an array of matching entries. + +```js +const fg = require('fast-glob'); + +const entries = await fg(['.editorconfig', '**/index.js'], { dot: true }); + +// ['.editorconfig', 'services/index.js'] +``` + +### Synchronous + +```js +fg.sync(patterns, [options]) +``` + +Returns an array of matching entries. + +```js +const fg = require('fast-glob'); + +const entries = fg.sync(['.editorconfig', '**/index.js'], { dot: true }); + +// ['.editorconfig', 'services/index.js'] +``` + +### Stream + +```js +fg.stream(patterns, [options]) +``` + +Returns a [`ReadableStream`][node_js_stream_readable_streams] when the `data` event will be emitted with matching entry. + +```js +const fg = require('fast-glob'); + +const stream = fg.stream(['.editorconfig', '**/index.js'], { dot: true }); + +for await (const entry of stream) { + // .editorconfig + // services/index.js +} +``` + +#### patterns + +* Required: `true` +* Type: `string | string[]` + +Any correct pattern(s). + +> :1234: [Pattern syntax](#pattern-syntax) +> +> :warning: This package does not respect the order of patterns. First, all the negative patterns are applied, and only then the positive patterns. If you want to get a certain order of records, use sorting or split calls. + +#### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +### Helpers + +#### `generateTasks(patterns, [options])` + +Returns the internal representation of patterns ([`Task`](./src/managers/tasks.ts) is a combining patterns by base directory). + +```js +fg.generateTasks('*'); + +[{ + base: '.', // Parent directory for all patterns inside this task + dynamic: true, // Dynamic or static patterns are in this task + patterns: ['*'], + positive: ['*'], + negative: [] +}] +``` + +##### patterns + +* Required: `true` +* Type: `string | string[]` + +Any correct pattern(s). + +##### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +#### `isDynamicPattern(pattern, [options])` + +Returns `true` if the passed pattern is a dynamic pattern. + +> :1234: [What is a static or dynamic pattern?](#what-is-a-static-or-dynamic-pattern) + +```js +fg.isDynamicPattern('*'); // true +fg.isDynamicPattern('abc'); // false +``` + +##### pattern + +* Required: `true` +* Type: `string` + +Any correct pattern. + +##### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +#### `escapePath(pattern)` + +Returns a path with escaped special characters (`*?|(){}[]`, `!` at the beginning of line, `@+!` before the opening parenthesis). + +```js +fg.escapePath('!abc'); // \\!abc +fg.escapePath('C:/Program Files (x86)'); // C:/Program Files \\(x86\\) +``` + +##### pattern + +* Required: `true` +* Type: `string` + +Any string, for example, a path to a file. + +## Options + +### Common options + +#### concurrency + +* Type: `number` +* Default: `os.cpus().length` + +Specifies the maximum number of concurrent requests from a reader to read directories. + +> :book: The higher the number, the higher the performance and load on the file system. If you want to read in quiet mode, set the value to a comfortable number or `1`. + +#### cwd + +* Type: `string` +* Default: `process.cwd()` + +The current working directory in which to search. + +#### deep + +* Type: `number` +* Default: `Infinity` + +Specifies the maximum depth of a read directory relative to the start directory. + +For example, you have the following tree: + +```js +dir/ +└── one/ // 1 + └── two/ // 2 + └── file.js // 3 +``` + +```js +// With base directory +fg.sync('dir/**', { onlyFiles: false, deep: 1 }); // ['dir/one'] +fg.sync('dir/**', { onlyFiles: false, deep: 2 }); // ['dir/one', 'dir/one/two'] + +// With cwd option +fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 1 }); // ['one'] +fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 2 }); // ['one', 'one/two'] +``` + +> :book: If you specify a pattern with some base directory, this directory will not participate in the calculation of the depth of the found directories. Think of it as a [`cwd`](#cwd) option. + +#### followSymbolicLinks + +* Type: `boolean` +* Default: `true` + +Indicates whether to traverse descendants of symbolic link directories when expanding `**` patterns. + +> :book: Note that this option does not affect the base directory of the pattern. For example, if `./a` is a symlink to directory `./b` and you specified `['./a**', './b/**']` patterns, then directory `./a` will still be read. + +> :book: If the [`stats`](#stats) option is specified, the information about the symbolic link (`fs.lstat`) will be replaced with information about the entry (`fs.stat`) behind it. + +#### fs + +* Type: `FileSystemAdapter` +* Default: `fs.*` + +Custom implementation of methods for working with the file system. + +```ts +export interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} +``` + +#### ignore + +* Type: `string[]` +* Default: `[]` + +An array of glob patterns to exclude matches. This is an alternative way to use negative patterns. + +```js +dir/ +├── package-lock.json +└── package.json +``` + +```js +fg.sync(['*.json', '!package-lock.json']); // ['package.json'] +fg.sync('*.json', { ignore: ['package-lock.json'] }); // ['package.json'] +``` + +#### suppressErrors + +* Type: `boolean` +* Default: `false` + +By default this package suppress only `ENOENT` errors. Set to `true` to suppress any error. + +> :book: Can be useful when the directory has entries with a special level of access. + +#### throwErrorOnBrokenSymbolicLink + +* Type: `boolean` +* Default: `false` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +> :book: This option has no effect on errors when reading the symbolic link directory. + +### Output control + +#### absolute + +* Type: `boolean` +* Default: `false` + +Return the absolute path for entries. + +```js +fg.sync('*.js', { absolute: false }); // ['index.js'] +fg.sync('*.js', { absolute: true }); // ['/home/user/index.js'] +``` + +> :book: This option is required if you want to use negative patterns with absolute path, for example, `!${__dirname}/*.js`. + +#### markDirectories + +* Type: `boolean` +* Default: `false` + +Mark the directory path with the final slash. + +```js +fg.sync('*', { onlyFiles: false, markDirectories: false }); // ['index.js', 'controllers'] +fg.sync('*', { onlyFiles: false, markDirectories: true }); // ['index.js', 'controllers/'] +``` + +#### objectMode + +* Type: `boolean` +* Default: `false` + +Returns objects (instead of strings) describing entries. + +```js +fg.sync('*', { objectMode: false }); // ['src/index.js'] +fg.sync('*', { objectMode: true }); // [{ name: 'index.js', path: 'src/index.js', dirent: }] +``` + +The object has the following fields: + +* name (`string`) — the last part of the path (basename) +* path (`string`) — full path relative to the pattern base directory +* dirent ([`fs.Dirent`][node_js_fs_class_fs_dirent]) — instance of `fs.Dirent` + +> :book: An object is an internal representation of entry, so getting it does not affect performance. + +#### onlyDirectories + +* Type: `boolean` +* Default: `false` + +Return only directories. + +```js +fg.sync('*', { onlyDirectories: false }); // ['index.js', 'src'] +fg.sync('*', { onlyDirectories: true }); // ['src'] +``` + +> :book: If `true`, the [`onlyFiles`](#onlyfiles) option is automatically `false`. + +#### onlyFiles + +* Type: `boolean` +* Default: `true` + +Return only files. + +```js +fg.sync('*', { onlyFiles: false }); // ['index.js', 'src'] +fg.sync('*', { onlyFiles: true }); // ['index.js'] +``` + +#### stats + +* Type: `boolean` +* Default: `false` + +Enables an [object mode](#objectmode) with an additional field: + +* stats ([`fs.Stats`][node_js_fs_class_fs_stats]) — instance of `fs.Stats` + +```js +fg.sync('*', { stats: false }); // ['src/index.js'] +fg.sync('*', { stats: true }); // [{ name: 'index.js', path: 'src/index.js', dirent: , stats: }] +``` + +> :book: Returns `fs.stat` instead of `fs.lstat` for symbolic links when the [`followSymbolicLinks`](#followsymboliclinks) option is specified. +> +> :warning: Unlike [object mode](#objectmode) this mode requires additional calls to the file system. On average, this mode is slower at least twice. See [old and modern mode](#old-and-modern-mode) for more details. + +#### unique + +* Type: `boolean` +* Default: `true` + +Ensures that the returned entries are unique. + +```js +fg.sync(['*.json', 'package.json'], { unique: false }); // ['package.json', 'package.json'] +fg.sync(['*.json', 'package.json'], { unique: true }); // ['package.json'] +``` + +If `true` and similar entries are found, the result is the first found. + +### Matching control + +#### braceExpansion + +* Type: `boolean` +* Default: `true` + +Enables Bash-like brace expansion. + +> :1234: [Syntax description][bash_hackers_syntax_expansion_brace] or more [detailed description][micromatch_braces]. + +```js +dir/ +├── abd +├── acd +└── a{b,c}d +``` + +```js +fg.sync('a{b,c}d', { braceExpansion: false }); // ['a{b,c}d'] +fg.sync('a{b,c}d', { braceExpansion: true }); // ['abd', 'acd'] +``` + +#### caseSensitiveMatch + +* Type: `boolean` +* Default: `true` + +Enables a [case-sensitive][wikipedia_case_sensitivity] mode for matching files. + +```js +dir/ +├── file.txt +└── File.txt +``` + +```js +fg.sync('file.txt', { caseSensitiveMatch: false }); // ['file.txt', 'File.txt'] +fg.sync('file.txt', { caseSensitiveMatch: true }); // ['file.txt'] +``` + +#### dot + +* Type: `boolean` +* Default: `false` + +Allow patterns to match entries that begin with a period (`.`). + +> :book: Note that an explicit dot in a portion of the pattern will always match dot files. + +```js +dir/ +├── .editorconfig +└── package.json +``` + +```js +fg.sync('*', { dot: false }); // ['package.json'] +fg.sync('*', { dot: true }); // ['.editorconfig', 'package.json'] +``` + +#### extglob + +* Type: `boolean` +* Default: `true` + +Enables Bash-like `extglob` functionality. + +> :1234: [Syntax description][micromatch_extglobs]. + +```js +dir/ +├── README.md +└── package.json +``` + +```js +fg.sync('*.+(json|md)', { extglob: false }); // [] +fg.sync('*.+(json|md)', { extglob: true }); // ['README.md', 'package.json'] +``` + +#### globstar + +* Type: `boolean` +* Default: `true` + +Enables recursively repeats a pattern containing `**`. If `false`, `**` behaves exactly like `*`. + +```js +dir/ +└── a + └── b +``` + +```js +fg.sync('**', { onlyFiles: false, globstar: false }); // ['a'] +fg.sync('**', { onlyFiles: false, globstar: true }); // ['a', 'a/b'] +``` + +#### baseNameMatch + +* Type: `boolean` +* Default: `false` + +If set to `true`, then patterns without slashes will be matched against the basename of the path if it contains slashes. + +```js +dir/ +└── one/ + └── file.md +``` + +```js +fg.sync('*.md', { baseNameMatch: false }); // [] +fg.sync('*.md', { baseNameMatch: true }); // ['one/file.md'] +``` + +## FAQ + +## What is a static or dynamic pattern? + +All patterns can be divided into two types: + +* **static**. A pattern is considered static if it can be used to get an entry on the file system without using matching mechanisms. For example, the `file.js` pattern is a static pattern because we can just verify that it exists on the file system. +* **dynamic**. A pattern is considered dynamic if it cannot be used directly to find occurrences without using a matching mechanisms. For example, the `*` pattern is a dynamic pattern because we cannot use this pattern directly. + +A pattern is considered dynamic if it contains the following characters (`…` — any characters or their absence) or options: + +* The [`caseSensitiveMatch`](#casesensitivematch) option is disabled +* `\\` (the escape character) +* `*`, `?`, `!` (at the beginning of line) +* `[…]` +* `(…|…)` +* `@(…)`, `!(…)`, `*(…)`, `?(…)`, `+(…)` (respects the [`extglob`](#extglob) option) +* `{…,…}`, `{…..…}` (respects the [`braceExpansion`](#braceexpansion) option) + +## How to write patterns on Windows? + +Always use forward-slashes in glob expressions (patterns and [`ignore`](#ignore) option). Use backslashes for escaping characters. With the [`cwd`](#cwd) option use a convenient format. + +**Bad** + +```ts +[ + 'directory\\*', + path.join(process.cwd(), '**') +] +``` + +**Good** + +```ts +[ + 'directory/*', + path.join(process.cwd(), '**').replace(/\\/g, '/') +] +``` + +> :book: Use the [`normalize-path`][npm_normalize_path] or the [`unixify`][npm_unixify] package to convert Windows-style path to a Unix-style path. + +Read more about [matching with backslashes][micromatch_backslashes]. + +## Why are parentheses match wrong? + +```js +dir/ +└── (special-*file).txt +``` + +```js +fg.sync(['(special-*file).txt']) // [] +``` + +Refers to Bash. You need to escape special characters: + +```js +fg.sync(['\\(special-*file\\).txt']) // ['(special-*file).txt'] +``` + +Read more about [matching special characters as literals][picomatch_matching_special_characters_as_literals]. + +## How to exclude directory from reading? + +You can use a negative pattern like this: `!**/node_modules` or `!**/node_modules/**`. Also you can use [`ignore`](#ignore) option. Just look at the example below. + +```js +first/ +├── file.md +└── second/ + └── file.txt +``` + +If you don't want to read the `second` directory, you must write the following pattern: `!**/second` or `!**/second/**`. + +```js +fg.sync(['**/*.md', '!**/second']); // ['first/file.md'] +fg.sync(['**/*.md'], { ignore: ['**/second/**'] }); // ['first/file.md'] +``` + +> :warning: When you write `!**/second/**/*` it means that the directory will be **read**, but all the entries will not be included in the results. + +You have to understand that if you write the pattern to exclude directories, then the directory will not be read under any circumstances. + +## How to use UNC path? + +You cannot use [Uniform Naming Convention (UNC)][unc_path] paths as patterns (due to syntax), but you can use them as [`cwd`](#cwd) directory. + +```ts +fg.sync('*', { cwd: '\\\\?\\C:\\Python27' /* or //?/C:/Python27 */ }); +fg.sync('Python27/*', { cwd: '\\\\?\\C:\\' /* or //?/C:/ */ }); +``` + +## Compatible with `node-glob`? + +| node-glob | fast-glob | +| :----------: | :-------: | +| `cwd` | [`cwd`](#cwd) | +| `root` | – | +| `dot` | [`dot`](#dot) | +| `nomount` | – | +| `mark` | [`markDirectories`](#markdirectories) | +| `nosort` | – | +| `nounique` | [`unique`](#unique) | +| `nobrace` | [`braceExpansion`](#braceexpansion) | +| `noglobstar` | [`globstar`](#globstar) | +| `noext` | [`extglob`](#extglob) | +| `nocase` | [`caseSensitiveMatch`](#casesensitivematch) | +| `matchBase` | [`baseNameMatch`](#basenamematch) | +| `nodir` | [`onlyFiles`](#onlyfiles) | +| `ignore` | [`ignore`](#ignore) | +| `follow` | [`followSymbolicLinks`](#followsymboliclinks) | +| `realpath` | – | +| `absolute` | [`absolute`](#absolute) | + +## Benchmarks + +### Server + +Link: [Vultr Bare Metal][vultr_pricing_baremetal] + +* Processor: E3-1270v6 (8 CPU) +* RAM: 32GB +* Disk: SSD ([Intel DC S3520 SSDSC2BB240G7][intel_ssd]) + +You can see results [here][github_gist_benchmark_server] for latest release. + +### Nettop + +Link: [Zotac bi323][zotac_bi323] + +* Processor: Intel N3150 (4 CPU) +* RAM: 8GB +* Disk: SSD ([Silicon Power SP060GBSS3S55S25][silicon_power_ssd]) + +You can see results [here][github_gist_benchmark_nettop] for latest release. + +## Changelog + +See the [Releases section of our GitHub project][github_releases] for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. + +[bash_hackers_syntax_expansion_brace]: https://wiki.bash-hackers.org/syntax/expansion/brace +[github_gist_benchmark_nettop]: https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fg-benchmark-nettop-product-txt +[github_gist_benchmark_server]: https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fg-benchmark-server-product-txt +[github_releases]: https://github.com/mrmlnc/fast-glob/releases +[glob_definition]: https://en.wikipedia.org/wiki/Glob_(programming) +[glob_linux_man]: http://man7.org/linux/man-pages/man3/glob.3.html +[intel_ssd]: https://ark.intel.com/content/www/us/en/ark/products/93012/intel-ssd-dc-s3520-series-240gb-2-5in-sata-6gb-s-3d1-mlc.html +[micromatch_backslashes]: https://github.com/micromatch/micromatch#backslashes +[micromatch_braces]: https://github.com/micromatch/braces +[micromatch_extended_globbing]: https://github.com/micromatch/micromatch#extended-globbing +[micromatch_extglobs]: https://github.com/micromatch/micromatch#extglobs +[micromatch_regex_character_classes]: https://github.com/micromatch/micromatch#regex-character-classes +[micromatch]: https://github.com/micromatch/micromatch +[node_js_fs_class_fs_dirent]: https://nodejs.org/api/fs.html#fs_class_fs_dirent +[node_js_fs_class_fs_stats]: https://nodejs.org/api/fs.html#fs_class_fs_stats +[node_js_stream_readable_streams]: https://nodejs.org/api/stream.html#stream_readable_streams +[node_js]: https://nodejs.org/en +[nodelib_fs_scandir_old_and_modern_modern]: https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode +[npm_normalize_path]: https://www.npmjs.com/package/normalize-path +[npm_unixify]: https://www.npmjs.com/package/unixify +[paypal_mrmlnc]:https://paypal.me/mrmlnc +[picomatch_matching_behavior]: https://github.com/micromatch/picomatch#matching-behavior-vs-bash +[picomatch_matching_special_characters_as_literals]: https://github.com/micromatch/picomatch#matching-special-characters-as-literals +[picomatch_posix_brackets]: https://github.com/micromatch/picomatch#posix-brackets +[regular_expressions_brackets]: https://www.regular-expressions.info/brackets.html +[silicon_power_ssd]: https://www.silicon-power.com/web/product-1 +[unc_path]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/62e862f4-2a51-452e-8eeb-dc4ff5ee33cc +[vultr_pricing_baremetal]: https://www.vultr.com/pricing/baremetal +[wikipedia_case_sensitivity]: https://en.wikipedia.org/wiki/Case_sensitivity +[zotac_bi323]: https://www.zotac.com/ee/product/mini_pcs/zbox-bi323 diff --git a/node_modules/fast-glob/out/index.d.ts b/node_modules/fast-glob/out/index.d.ts new file mode 100644 index 0000000..54daa45 --- /dev/null +++ b/node_modules/fast-glob/out/index.d.ts @@ -0,0 +1,27 @@ +/// +import * as taskManager from './managers/tasks'; +import { Options as OptionsInternal } from './settings'; +import { Entry as EntryInternal, FileSystemAdapter as FileSystemAdapterInternal, Pattern as PatternInternal } from './types'; +declare type EntryObjectModePredicate = { + [TKey in keyof Pick]-?: true; +}; +declare type EntryStatsPredicate = { + [TKey in keyof Pick]-?: true; +}; +declare type EntryObjectPredicate = EntryObjectModePredicate | EntryStatsPredicate; +declare function FastGlob(source: PatternInternal | PatternInternal[], options: OptionsInternal & EntryObjectPredicate): Promise; +declare function FastGlob(source: PatternInternal | PatternInternal[], options?: OptionsInternal): Promise; +declare namespace FastGlob { + type Options = OptionsInternal; + type Entry = EntryInternal; + type Task = taskManager.Task; + type Pattern = PatternInternal; + type FileSystemAdapter = FileSystemAdapterInternal; + function sync(source: PatternInternal | PatternInternal[], options: OptionsInternal & EntryObjectPredicate): EntryInternal[]; + function sync(source: PatternInternal | PatternInternal[], options?: OptionsInternal): string[]; + function stream(source: PatternInternal | PatternInternal[], options?: OptionsInternal): NodeJS.ReadableStream; + function generateTasks(source: PatternInternal | PatternInternal[], options?: OptionsInternal): Task[]; + function isDynamicPattern(source: PatternInternal, options?: OptionsInternal): boolean; + function escapePath(source: PatternInternal): PatternInternal; +} +export = FastGlob; diff --git a/node_modules/fast-glob/out/index.js b/node_modules/fast-glob/out/index.js new file mode 100644 index 0000000..5397852 --- /dev/null +++ b/node_modules/fast-glob/out/index.js @@ -0,0 +1,68 @@ +"use strict"; +const taskManager = require("./managers/tasks"); +const patternManager = require("./managers/patterns"); +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +const utils = require("./utils"); +async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async_1.default, options); + const result = await Promise.all(works); + return utils.array.flatten(result); +} +// https://github.com/typescript-eslint/typescript-eslint/issues/60 +// eslint-disable-next-line no-redeclare +(function (FastGlob) { + function sync(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync_1.default, options); + return utils.array.flatten(works); + } + FastGlob.sync = sync; + function stream(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream_1.default, options); + /** + * The stream returned by the provider cannot work with an asynchronous iterator. + * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. + * This affects performance (+25%). I don't see best solution right now. + */ + return utils.stream.merge(works); + } + FastGlob.stream = stream; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + return taskManager.generate(patterns, settings); + } + FastGlob.generateTasks = generateTasks; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings = new settings_1.default(options); + return utils.pattern.isDynamicPattern(source, settings); + } + FastGlob.isDynamicPattern = isDynamicPattern; + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escape(source); + } + FastGlob.escapePath = escapePath; +})(FastGlob || (FastGlob = {})); +function getWorks(source, _Provider, options) { + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + const tasks = taskManager.generate(patterns, settings); + const provider = new _Provider(settings); + return tasks.map(provider.read, provider); +} +function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); + if (!isValidSource) { + throw new TypeError('Patterns must be a string (non empty) or an array of strings'); + } +} +module.exports = FastGlob; diff --git a/node_modules/fast-glob/out/managers/patterns.d.ts b/node_modules/fast-glob/out/managers/patterns.d.ts new file mode 100644 index 0000000..2a7d7ae --- /dev/null +++ b/node_modules/fast-glob/out/managers/patterns.d.ts @@ -0,0 +1,6 @@ +export declare function transform(patterns: string[]): string[]; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +export declare function removeDuplicateSlashes(pattern: string): string; diff --git a/node_modules/fast-glob/out/managers/patterns.js b/node_modules/fast-glob/out/managers/patterns.js new file mode 100644 index 0000000..a2f0593 --- /dev/null +++ b/node_modules/fast-glob/out/managers/patterns.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeDuplicateSlashes = exports.transform = void 0; +/** + * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string. + * The latter is due to the presence of the device path at the beginning of the UNC path. + * @todo rewrite to negative lookbehind with the next major release. + */ +const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; +function transform(patterns) { + return patterns.map((pattern) => removeDuplicateSlashes(pattern)); +} +exports.transform = transform; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +function removeDuplicateSlashes(pattern) { + return pattern.replace(DOUBLE_SLASH_RE, '/'); +} +exports.removeDuplicateSlashes = removeDuplicateSlashes; diff --git a/node_modules/fast-glob/out/managers/tasks.d.ts b/node_modules/fast-glob/out/managers/tasks.d.ts new file mode 100644 index 0000000..aa746a8 --- /dev/null +++ b/node_modules/fast-glob/out/managers/tasks.d.ts @@ -0,0 +1,22 @@ +import Settings from '../settings'; +import { Pattern, PatternsGroup } from '../types'; +export declare type Task = { + base: string; + dynamic: boolean; + patterns: Pattern[]; + positive: Pattern[]; + negative: Pattern[]; +}; +export declare function generate(patterns: Pattern[], settings: Settings): Task[]; +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +export declare function convertPatternsToTasks(positive: Pattern[], negative: Pattern[], dynamic: boolean): Task[]; +export declare function getPositivePatterns(patterns: Pattern[]): Pattern[]; +export declare function getNegativePatternsAsPositive(patterns: Pattern[], ignore: Pattern[]): Pattern[]; +export declare function groupPatternsByBaseDirectory(patterns: Pattern[]): PatternsGroup; +export declare function convertPatternGroupsToTasks(positive: PatternsGroup, negative: Pattern[], dynamic: boolean): Task[]; +export declare function convertPatternGroupToTask(base: string, positive: Pattern[], negative: Pattern[], dynamic: boolean): Task; diff --git a/node_modules/fast-glob/out/managers/tasks.js b/node_modules/fast-glob/out/managers/tasks.js new file mode 100644 index 0000000..b69ce87 --- /dev/null +++ b/node_modules/fast-glob/out/managers/tasks.js @@ -0,0 +1,80 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; +const utils = require("../utils"); +function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); + return staticTasks.concat(dynamicTasks); +} +exports.generate = generate; +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +function convertPatternsToTasks(positive, negative, dynamic) { + const tasks = []; + const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); + const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); + const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); + const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); + tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); + /* + * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory + * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest. + */ + if ('.' in insideCurrentDirectoryGroup) { + tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic)); + } + else { + tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + } + return tasks; +} +exports.convertPatternsToTasks = convertPatternsToTasks; +function getPositivePatterns(patterns) { + return utils.pattern.getPositivePatterns(patterns); +} +exports.getPositivePatterns = getPositivePatterns; +function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils.pattern.convertToPositivePattern); + return positive; +} +exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; +function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils.pattern.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } + else { + collection[base] = [pattern]; + } + return collection; + }, group); +} +exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map((base) => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); +} +exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) + }; +} +exports.convertPatternGroupToTask = convertPatternGroupToTask; diff --git a/node_modules/fast-glob/out/providers/async.d.ts b/node_modules/fast-glob/out/providers/async.d.ts new file mode 100644 index 0000000..14665b1 --- /dev/null +++ b/node_modules/fast-glob/out/providers/async.d.ts @@ -0,0 +1,9 @@ +import { Task } from '../managers/tasks'; +import { Entry, EntryItem, ReaderOptions } from '../types'; +import ReaderAsync from '../readers/async'; +import Provider from './provider'; +export default class ProviderAsync extends Provider> { + protected _reader: ReaderAsync; + read(task: Task): Promise; + api(root: string, task: Task, options: ReaderOptions): Promise; +} diff --git a/node_modules/fast-glob/out/providers/async.js b/node_modules/fast-glob/out/providers/async.js new file mode 100644 index 0000000..c8732e0 --- /dev/null +++ b/node_modules/fast-glob/out/providers/async.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const async_1 = require("../readers/async"); +const provider_1 = require("./provider"); +class ProviderAsync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new async_1.default(this._settings); + } + async read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = await this.api(root, task, options); + return entries.map((entry) => options.transform(entry)); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderAsync; diff --git a/node_modules/fast-glob/out/providers/filters/deep.d.ts b/node_modules/fast-glob/out/providers/filters/deep.d.ts new file mode 100644 index 0000000..22586a9 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/deep.d.ts @@ -0,0 +1,16 @@ +import { MicromatchOptions, EntryFilterFunction, Pattern } from '../../types'; +import Settings from '../../settings'; +export default class DeepFilter { + private readonly _settings; + private readonly _micromatchOptions; + constructor(_settings: Settings, _micromatchOptions: MicromatchOptions); + getFilter(basePath: string, positive: Pattern[], negative: Pattern[]): EntryFilterFunction; + private _getMatcher; + private _getNegativePatternsRe; + private _filter; + private _isSkippedByDeep; + private _getEntryLevel; + private _isSkippedSymbolicLink; + private _isSkippedByPositivePatterns; + private _isSkippedByNegativePatterns; +} diff --git a/node_modules/fast-glob/out/providers/filters/deep.js b/node_modules/fast-glob/out/providers/filters/deep.js new file mode 100644 index 0000000..819c260 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/deep.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +const partial_1 = require("../matchers/partial"); +class DeepFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); + const negativeRe = this._getNegativePatternsRe(negative); + return (entry) => this._filter(basePath, entry, matcher, negativeRe); + } + _getMatcher(patterns) { + return new partial_1.default(patterns, this._settings, this._micromatchOptions); + } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); + return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + /** + * Avoid unnecessary depth calculations when it doesn't matter. + */ + if (this._settings.deep === Infinity) { + return false; + } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split('/').length; + if (basePath === '') { + return entryPathDepth; + } + const basePathDepth = basePath.split('/').length; + return entryPathDepth - basePathDepth; + } + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils.pattern.matchAny(entryPath, patternsRe); + } +} +exports.default = DeepFilter; diff --git a/node_modules/fast-glob/out/providers/filters/entry.d.ts b/node_modules/fast-glob/out/providers/filters/entry.d.ts new file mode 100644 index 0000000..2f21c43 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/entry.d.ts @@ -0,0 +1,16 @@ +import Settings from '../../settings'; +import { EntryFilterFunction, MicromatchOptions, Pattern } from '../../types'; +export default class EntryFilter { + private readonly _settings; + private readonly _micromatchOptions; + readonly index: Map; + constructor(_settings: Settings, _micromatchOptions: MicromatchOptions); + getFilter(positive: Pattern[], negative: Pattern[]): EntryFilterFunction; + private _filter; + private _isDuplicateEntry; + private _createIndexRecord; + private _onlyFileFilter; + private _onlyDirectoryFilter; + private _isSkippedByAbsoluteNegativePatterns; + private _isMatchToPatterns; +} diff --git a/node_modules/fast-glob/out/providers/filters/entry.js b/node_modules/fast-glob/out/providers/filters/entry.js new file mode 100644 index 0000000..bf11320 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/entry.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class EntryFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = new Map(); + } + getFilter(positive, negative) { + const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return (entry) => this._filter(entry, positiveRe, negativeRe); + } + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; + } + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isDirectory = entry.dirent.isDirectory(); + const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory) && !this._isMatchToPatterns(entry.path, negativeRe, isDirectory); + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); + } + return isMatched; + } + _isDuplicateEntry(entry) { + return this.index.has(entry.path); + } + _createIndexRecord(entry) { + this.index.set(entry.path, undefined); + } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; + } + const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); + return utils.pattern.matchAny(fullpath, patternsRe); + } + _isMatchToPatterns(entryPath, patternsRe, isDirectory) { + const filepath = utils.path.removeLeadingDotSegment(entryPath); + // Trying to match files and directories by patterns. + const isMatched = utils.pattern.matchAny(filepath, patternsRe); + // A pattern with a trailling slash can be used for directory matching. + // To apply such pattern, we need to add a tralling slash to the path. + if (!isMatched && isDirectory) { + return utils.pattern.matchAny(filepath + '/', patternsRe); + } + return isMatched; + } +} +exports.default = EntryFilter; diff --git a/node_modules/fast-glob/out/providers/filters/error.d.ts b/node_modules/fast-glob/out/providers/filters/error.d.ts new file mode 100644 index 0000000..1e9d738 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/error.d.ts @@ -0,0 +1,8 @@ +import Settings from '../../settings'; +import { ErrorFilterFunction } from '../../types'; +export default class ErrorFilter { + private readonly _settings; + constructor(_settings: Settings); + getFilter(): ErrorFilterFunction; + private _isNonFatalError; +} diff --git a/node_modules/fast-glob/out/providers/filters/error.js b/node_modules/fast-glob/out/providers/filters/error.js new file mode 100644 index 0000000..f93bdc0 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/error.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class ErrorFilter { + constructor(_settings) { + this._settings = _settings; + } + getFilter() { + return (error) => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } +} +exports.default = ErrorFilter; diff --git a/node_modules/fast-glob/out/providers/matchers/matcher.d.ts b/node_modules/fast-glob/out/providers/matchers/matcher.d.ts new file mode 100644 index 0000000..fde0bd5 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/matcher.d.ts @@ -0,0 +1,33 @@ +import { Pattern, MicromatchOptions, PatternRe } from '../../types'; +import Settings from '../../settings'; +export declare type PatternSegment = StaticPatternSegment | DynamicPatternSegment; +declare type StaticPatternSegment = { + dynamic: false; + pattern: Pattern; +}; +declare type DynamicPatternSegment = { + dynamic: true; + pattern: Pattern; + patternRe: PatternRe; +}; +export declare type PatternSection = PatternSegment[]; +export declare type PatternInfo = { + /** + * Indicates that the pattern has a globstar (more than a single section). + */ + complete: boolean; + pattern: Pattern; + segments: PatternSegment[]; + sections: PatternSection[]; +}; +export default abstract class Matcher { + private readonly _patterns; + private readonly _settings; + private readonly _micromatchOptions; + protected readonly _storage: PatternInfo[]; + constructor(_patterns: Pattern[], _settings: Settings, _micromatchOptions: MicromatchOptions); + private _fillStorage; + private _getPatternSegments; + private _splitSegmentsIntoSections; +} +export {}; diff --git a/node_modules/fast-glob/out/providers/matchers/matcher.js b/node_modules/fast-glob/out/providers/matchers/matcher.js new file mode 100644 index 0000000..44b2cc7 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/matcher.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class Matcher { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + this._fillStorage(); + } + _fillStorage() { + /** + * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). + * So, before expand patterns with brace expansion into separated patterns. + */ + const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns); + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); + const sections = this._splitSegmentsIntoSections(segments); + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } + } + _getPatternSegments(pattern) { + const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map((part) => { + const dynamic = utils.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } + return { + dynamic: true, + pattern: part, + patternRe: utils.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } + _splitSegmentsIntoSections(segments) { + return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); + } +} +exports.default = Matcher; diff --git a/node_modules/fast-glob/out/providers/matchers/partial.d.ts b/node_modules/fast-glob/out/providers/matchers/partial.d.ts new file mode 100644 index 0000000..a5c93ba --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/partial.d.ts @@ -0,0 +1,4 @@ +import Matcher from './matcher'; +export default class PartialMatcher extends Matcher { + match(filepath: string): boolean; +} diff --git a/node_modules/fast-glob/out/providers/matchers/partial.js b/node_modules/fast-glob/out/providers/matchers/partial.js new file mode 100644 index 0000000..f6a77e0 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/partial.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const matcher_1 = require("./matcher"); +class PartialMatcher extends matcher_1.default { + match(filepath) { + const parts = filepath.split('/'); + const levels = parts.length; + const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); + for (const pattern of patterns) { + const section = pattern.sections[0]; + /** + * In this case, the pattern has a globstar and we must read all directories unconditionally, + * but only if the level has reached the end of the first group. + * + * fixtures/{a,b}/** + * ^ true/false ^ always true + */ + if (!pattern.complete && levels > section.length) { + return true; + } + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + if (!segment.dynamic && segment.pattern === part) { + return true; + } + return false; + }); + if (match) { + return true; + } + } + return false; + } +} +exports.default = PartialMatcher; diff --git a/node_modules/fast-glob/out/providers/provider.d.ts b/node_modules/fast-glob/out/providers/provider.d.ts new file mode 100644 index 0000000..ccafd17 --- /dev/null +++ b/node_modules/fast-glob/out/providers/provider.d.ts @@ -0,0 +1,19 @@ +import { Task } from '../managers/tasks'; +import Settings from '../settings'; +import { MicromatchOptions, ReaderOptions } from '../types'; +import DeepFilter from './filters/deep'; +import EntryFilter from './filters/entry'; +import ErrorFilter from './filters/error'; +import EntryTransformer from './transformers/entry'; +export default abstract class Provider { + protected readonly _settings: Settings; + readonly errorFilter: ErrorFilter; + readonly entryFilter: EntryFilter; + readonly deepFilter: DeepFilter; + readonly entryTransformer: EntryTransformer; + constructor(_settings: Settings); + abstract read(_task: Task): T; + protected _getRootDirectory(task: Task): string; + protected _getReaderOptions(task: Task): ReaderOptions; + protected _getMicromatchOptions(): MicromatchOptions; +} diff --git a/node_modules/fast-glob/out/providers/provider.js b/node_modules/fast-glob/out/providers/provider.js new file mode 100644 index 0000000..5afb389 --- /dev/null +++ b/node_modules/fast-glob/out/providers/provider.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const deep_1 = require("./filters/deep"); +const entry_1 = require("./filters/entry"); +const error_1 = require("./filters/error"); +const entry_2 = require("./transformers/entry"); +class Provider { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error_1.default(this._settings); + this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry_2.default(this._settings); + } + _getRootDirectory(task) { + return path.resolve(this._settings.cwd, task.base); + } + _getReaderOptions(task) { + const basePath = task.base === '.' ? '' : task.base; + return { + basePath, + pathSegmentSeparator: '/', + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.negative), + errorFilter: this.errorFilter.getFilter(), + followSymbolicLinks: this._settings.followSymbolicLinks, + fs: this._settings.fs, + stats: this._settings.stats, + throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, + transform: this.entryTransformer.getTransformer() + }; + } + _getMicromatchOptions() { + return { + dot: this._settings.dot, + matchBase: this._settings.baseNameMatch, + nobrace: !this._settings.braceExpansion, + nocase: !this._settings.caseSensitiveMatch, + noext: !this._settings.extglob, + noglobstar: !this._settings.globstar, + posix: true, + strictSlashes: false + }; + } +} +exports.default = Provider; diff --git a/node_modules/fast-glob/out/providers/stream.d.ts b/node_modules/fast-glob/out/providers/stream.d.ts new file mode 100644 index 0000000..bfa9201 --- /dev/null +++ b/node_modules/fast-glob/out/providers/stream.d.ts @@ -0,0 +1,11 @@ +/// +import { Readable } from 'stream'; +import { Task } from '../managers/tasks'; +import ReaderStream from '../readers/stream'; +import { ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderStream extends Provider { + protected _reader: ReaderStream; + read(task: Task): Readable; + api(root: string, task: Task, options: ReaderOptions): Readable; +} diff --git a/node_modules/fast-glob/out/providers/stream.js b/node_modules/fast-glob/out/providers/stream.js new file mode 100644 index 0000000..9e81c21 --- /dev/null +++ b/node_modules/fast-glob/out/providers/stream.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const stream_2 = require("../readers/stream"); +const provider_1 = require("./provider"); +class ProviderStream extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_2.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const source = this.api(root, task, options); + const destination = new stream_1.Readable({ objectMode: true, read: () => { } }); + source + .once('error', (error) => destination.emit('error', error)) + .on('data', (entry) => destination.emit('data', options.transform(entry))) + .once('end', () => destination.emit('end')); + destination + .once('close', () => source.destroy()); + return destination; + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderStream; diff --git a/node_modules/fast-glob/out/providers/sync.d.ts b/node_modules/fast-glob/out/providers/sync.d.ts new file mode 100644 index 0000000..5861db4 --- /dev/null +++ b/node_modules/fast-glob/out/providers/sync.d.ts @@ -0,0 +1,9 @@ +import { Task } from '../managers/tasks'; +import ReaderSync from '../readers/sync'; +import { Entry, EntryItem, ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderSync extends Provider { + protected _reader: ReaderSync; + read(task: Task): EntryItem[]; + api(root: string, task: Task, options: ReaderOptions): Entry[]; +} diff --git a/node_modules/fast-glob/out/providers/sync.js b/node_modules/fast-glob/out/providers/sync.js new file mode 100644 index 0000000..9ed8f7c --- /dev/null +++ b/node_modules/fast-glob/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +const provider_1 = require("./provider"); +class ProviderSync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new sync_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = this.api(root, task, options); + return entries.map(options.transform); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderSync; diff --git a/node_modules/fast-glob/out/providers/transformers/entry.d.ts b/node_modules/fast-glob/out/providers/transformers/entry.d.ts new file mode 100644 index 0000000..1874a38 --- /dev/null +++ b/node_modules/fast-glob/out/providers/transformers/entry.d.ts @@ -0,0 +1,8 @@ +import Settings from '../../settings'; +import { EntryTransformerFunction } from '../../types'; +export default class EntryTransformer { + private readonly _settings; + constructor(_settings: Settings); + getTransformer(): EntryTransformerFunction; + private _transform; +} diff --git a/node_modules/fast-glob/out/providers/transformers/entry.js b/node_modules/fast-glob/out/providers/transformers/entry.js new file mode 100644 index 0000000..3bef803 --- /dev/null +++ b/node_modules/fast-glob/out/providers/transformers/entry.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class EntryTransformer { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return (entry) => this._transform(entry); + } + _transform(entry) { + let filepath = entry.path; + if (this._settings.absolute) { + filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils.path.unixify(filepath); + } + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += '/'; + } + if (!this._settings.objectMode) { + return filepath; + } + return Object.assign(Object.assign({}, entry), { path: filepath }); + } +} +exports.default = EntryTransformer; diff --git a/node_modules/fast-glob/out/readers/async.d.ts b/node_modules/fast-glob/out/readers/async.d.ts new file mode 100644 index 0000000..4bfa296 --- /dev/null +++ b/node_modules/fast-glob/out/readers/async.d.ts @@ -0,0 +1,10 @@ +import * as fsWalk from '@nodelib/fs.walk'; +import { Entry, ReaderOptions, Pattern } from '../types'; +import Reader from './reader'; +import ReaderStream from './stream'; +export default class ReaderAsync extends Reader> { + protected _walkAsync: typeof fsWalk.walk; + protected _readerStream: ReaderStream; + dynamic(root: string, options: ReaderOptions): Promise; + static(patterns: Pattern[], options: ReaderOptions): Promise; +} diff --git a/node_modules/fast-glob/out/readers/async.js b/node_modules/fast-glob/out/readers/async.js new file mode 100644 index 0000000..c43e34a --- /dev/null +++ b/node_modules/fast-glob/out/readers/async.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +const stream_1 = require("./stream"); +class ReaderAsync extends reader_1.default { + constructor() { + super(...arguments); + this._walkAsync = fsWalk.walk; + this._readerStream = new stream_1.default(this._settings); + } + dynamic(root, options) { + return new Promise((resolve, reject) => { + this._walkAsync(root, options, (error, entries) => { + if (error === null) { + resolve(entries); + } + else { + reject(error); + } + }); + }); + } + async static(patterns, options) { + const entries = []; + const stream = this._readerStream.static(patterns, options); + // After #235, replace it with an asynchronous iterator. + return new Promise((resolve, reject) => { + stream.once('error', reject); + stream.on('data', (entry) => entries.push(entry)); + stream.once('end', () => resolve(entries)); + }); + } +} +exports.default = ReaderAsync; diff --git a/node_modules/fast-glob/out/readers/reader.d.ts b/node_modules/fast-glob/out/readers/reader.d.ts new file mode 100644 index 0000000..293b588 --- /dev/null +++ b/node_modules/fast-glob/out/readers/reader.d.ts @@ -0,0 +1,15 @@ +/// +import * as fs from 'fs'; +import * as fsStat from '@nodelib/fs.stat'; +import Settings from '../settings'; +import { Entry, ErrnoException, Pattern, ReaderOptions } from '../types'; +export default abstract class Reader { + protected readonly _settings: Settings; + protected readonly _fsStatSettings: fsStat.Settings; + constructor(_settings: Settings); + abstract dynamic(root: string, options: ReaderOptions): T; + abstract static(patterns: Pattern[], options: ReaderOptions): T; + protected _getFullEntryPath(filepath: string): string; + protected _makeEntry(stats: fs.Stats, pattern: Pattern): Entry; + protected _isFatalError(error: ErrnoException): boolean; +} diff --git a/node_modules/fast-glob/out/readers/reader.js b/node_modules/fast-glob/out/readers/reader.js new file mode 100644 index 0000000..9e9469c --- /dev/null +++ b/node_modules/fast-glob/out/readers/reader.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const utils = require("../utils"); +class Reader { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } + _getFullEntryPath(filepath) { + return path.resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils.fs.createDirentFromStats(pattern, stats) + }; + if (this._settings.stats) { + entry.stats = stats; + } + return entry; + } + _isFatalError(error) { + return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } +} +exports.default = Reader; diff --git a/node_modules/fast-glob/out/readers/stream.d.ts b/node_modules/fast-glob/out/readers/stream.d.ts new file mode 100644 index 0000000..b0c7018 --- /dev/null +++ b/node_modules/fast-glob/out/readers/stream.d.ts @@ -0,0 +1,14 @@ +/// +import { Readable } from 'stream'; +import * as fsStat from '@nodelib/fs.stat'; +import * as fsWalk from '@nodelib/fs.walk'; +import { Pattern, ReaderOptions } from '../types'; +import Reader from './reader'; +export default class ReaderStream extends Reader { + protected _walkStream: typeof fsWalk.walkStream; + protected _stat: typeof fsStat.stat; + dynamic(root: string, options: ReaderOptions): Readable; + static(patterns: Pattern[], options: ReaderOptions): Readable; + private _getEntry; + private _getStat; +} diff --git a/node_modules/fast-glob/out/readers/stream.js b/node_modules/fast-glob/out/readers/stream.js new file mode 100644 index 0000000..33b96f5 --- /dev/null +++ b/node_modules/fast-glob/out/readers/stream.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const fsStat = require("@nodelib/fs.stat"); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +class ReaderStream extends reader_1.default { + constructor() { + super(...arguments); + this._walkStream = fsWalk.walkStream; + this._stat = fsStat.stat; + } + dynamic(root, options) { + return this._walkStream(root, options); + } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1.PassThrough({ objectMode: true }); + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options) + .then((entry) => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } + if (index === filepaths.length - 1) { + stream.end(); + } + done(); + }) + .catch(done); + }; + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); + } + return stream; + } + _getEntry(filepath, pattern, options) { + return this._getStat(filepath) + .then((stats) => this._makeEntry(stats, pattern)) + .catch((error) => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } +} +exports.default = ReaderStream; diff --git a/node_modules/fast-glob/out/readers/sync.d.ts b/node_modules/fast-glob/out/readers/sync.d.ts new file mode 100644 index 0000000..1943ac6 --- /dev/null +++ b/node_modules/fast-glob/out/readers/sync.d.ts @@ -0,0 +1,12 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fsWalk from '@nodelib/fs.walk'; +import { Entry, Pattern, ReaderOptions } from '../types'; +import Reader from './reader'; +export default class ReaderSync extends Reader { + protected _walkSync: typeof fsWalk.walkSync; + protected _statSync: typeof fsStat.statSync; + dynamic(root: string, options: ReaderOptions): Entry[]; + static(patterns: Pattern[], options: ReaderOptions): Entry[]; + private _getEntry; + private _getStat; +} diff --git a/node_modules/fast-glob/out/readers/sync.js b/node_modules/fast-glob/out/readers/sync.js new file mode 100644 index 0000000..c4e4a01 --- /dev/null +++ b/node_modules/fast-glob/out/readers/sync.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsStat = require("@nodelib/fs.stat"); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +class ReaderSync extends reader_1.default { + constructor() { + super(...arguments); + this._walkSync = fsWalk.walkSync; + this._statSync = fsStat.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } + static(patterns, options) { + const entries = []; + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + const entry = this._getEntry(filepath, pattern, options); + if (entry === null || !options.entryFilter(entry)) { + continue; + } + entries.push(entry); + } + return entries; + } + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); + return this._makeEntry(stats, pattern); + } + catch (error) { + if (options.errorFilter(error)) { + return null; + } + throw error; + } + } + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } +} +exports.default = ReaderSync; diff --git a/node_modules/fast-glob/out/settings.d.ts b/node_modules/fast-glob/out/settings.d.ts new file mode 100644 index 0000000..4e97c9b --- /dev/null +++ b/node_modules/fast-glob/out/settings.d.ts @@ -0,0 +1,164 @@ +import { FileSystemAdapter, Pattern } from './types'; +export declare const DEFAULT_FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare type Options = { + /** + * Return the absolute path for entries. + * + * @default false + */ + absolute?: boolean; + /** + * If set to `true`, then patterns without slashes will be matched against + * the basename of the path if it contains slashes. + * + * @default false + */ + baseNameMatch?: boolean; + /** + * Enables Bash-like brace expansion. + * + * @default true + */ + braceExpansion?: boolean; + /** + * Enables a case-sensitive mode for matching files. + * + * @default true + */ + caseSensitiveMatch?: boolean; + /** + * Specifies the maximum number of concurrent requests from a reader to read + * directories. + * + * @default os.cpus().length + */ + concurrency?: number; + /** + * The current working directory in which to search. + * + * @default process.cwd() + */ + cwd?: string; + /** + * Specifies the maximum depth of a read directory relative to the start + * directory. + * + * @default Infinity + */ + deep?: number; + /** + * Allow patterns to match entries that begin with a period (`.`). + * + * @default false + */ + dot?: boolean; + /** + * Enables Bash-like `extglob` functionality. + * + * @default true + */ + extglob?: boolean; + /** + * Indicates whether to traverse descendants of symbolic link directories. + * + * @default true + */ + followSymbolicLinks?: boolean; + /** + * Custom implementation of methods for working with the file system. + * + * @default fs.* + */ + fs?: Partial; + /** + * Enables recursively repeats a pattern containing `**`. + * If `false`, `**` behaves exactly like `*`. + * + * @default true + */ + globstar?: boolean; + /** + * An array of glob patterns to exclude matches. + * This is an alternative way to use negative patterns. + * + * @default [] + */ + ignore?: Pattern[]; + /** + * Mark the directory path with the final slash. + * + * @default false + */ + markDirectories?: boolean; + /** + * Returns objects (instead of strings) describing entries. + * + * @default false + */ + objectMode?: boolean; + /** + * Return only directories. + * + * @default false + */ + onlyDirectories?: boolean; + /** + * Return only files. + * + * @default true + */ + onlyFiles?: boolean; + /** + * Enables an object mode (`objectMode`) with an additional `stats` field. + * + * @default false + */ + stats?: boolean; + /** + * By default this package suppress only `ENOENT` errors. + * Set to `true` to suppress any error. + * + * @default false + */ + suppressErrors?: boolean; + /** + * Throw an error when symbolic link is broken if `true` or safely + * return `lstat` call if `false`. + * + * @default false + */ + throwErrorOnBrokenSymbolicLink?: boolean; + /** + * Ensures that the returned entries are unique. + * + * @default true + */ + unique?: boolean; +}; +export default class Settings { + private readonly _options; + readonly absolute: boolean; + readonly baseNameMatch: boolean; + readonly braceExpansion: boolean; + readonly caseSensitiveMatch: boolean; + readonly concurrency: number; + readonly cwd: string; + readonly deep: number; + readonly dot: boolean; + readonly extglob: boolean; + readonly followSymbolicLinks: boolean; + readonly fs: FileSystemAdapter; + readonly globstar: boolean; + readonly ignore: Pattern[]; + readonly markDirectories: boolean; + readonly objectMode: boolean; + readonly onlyDirectories: boolean; + readonly onlyFiles: boolean; + readonly stats: boolean; + readonly suppressErrors: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly unique: boolean; + constructor(_options?: Options); + private _getValue; + private _getFileSystemMethods; +} diff --git a/node_modules/fast-glob/out/settings.js b/node_modules/fast-glob/out/settings.js new file mode 100644 index 0000000..f95ac8f --- /dev/null +++ b/node_modules/fast-glob/out/settings.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +const os = require("os"); +/** + * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. + * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 + */ +const CPU_COUNT = Math.max(os.cpus().length, 1); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + lstatSync: fs.lstatSync, + stat: fs.stat, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +class Settings { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + if (this.onlyDirectories) { + this.onlyFiles = false; + } + if (this.stats) { + this.objectMode = true; + } + } + _getValue(option, value) { + return option === undefined ? value : option; + } + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } +} +exports.default = Settings; diff --git a/node_modules/fast-glob/out/types/index.d.ts b/node_modules/fast-glob/out/types/index.d.ts new file mode 100644 index 0000000..e828689 --- /dev/null +++ b/node_modules/fast-glob/out/types/index.d.ts @@ -0,0 +1,31 @@ +/// +import * as fsWalk from '@nodelib/fs.walk'; +export declare type ErrnoException = NodeJS.ErrnoException; +export declare type Entry = fsWalk.Entry; +export declare type EntryItem = string | Entry; +export declare type Pattern = string; +export declare type PatternRe = RegExp; +export declare type PatternsGroup = Record; +export declare type ReaderOptions = fsWalk.Options & { + transform(entry: Entry): EntryItem; + deepFilter: DeepFilterFunction; + entryFilter: EntryFilterFunction; + errorFilter: ErrorFilterFunction; + fs: FileSystemAdapter; + stats: boolean; +}; +export declare type ErrorFilterFunction = fsWalk.ErrorFilterFunction; +export declare type EntryFilterFunction = fsWalk.EntryFilterFunction; +export declare type DeepFilterFunction = fsWalk.DeepFilterFunction; +export declare type EntryTransformerFunction = (entry: Entry) => EntryItem; +export declare type MicromatchOptions = { + dot?: boolean; + matchBase?: boolean; + nobrace?: boolean; + nocase?: boolean; + noext?: boolean; + noglobstar?: boolean; + posix?: boolean; + strictSlashes?: boolean; +}; +export declare type FileSystemAdapter = fsWalk.FileSystemAdapter; diff --git a/node_modules/fast-glob/out/types/index.js b/node_modules/fast-glob/out/types/index.js new file mode 100644 index 0000000..ce03781 --- /dev/null +++ b/node_modules/fast-glob/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fast-glob/out/utils/array.d.ts b/node_modules/fast-glob/out/utils/array.d.ts new file mode 100644 index 0000000..7e585bc --- /dev/null +++ b/node_modules/fast-glob/out/utils/array.d.ts @@ -0,0 +1,2 @@ +export declare function flatten(items: T[][]): T[]; +export declare function splitWhen(items: T[], predicate: (item: T) => boolean): T[][]; diff --git a/node_modules/fast-glob/out/utils/array.js b/node_modules/fast-glob/out/utils/array.js new file mode 100644 index 0000000..f43f114 --- /dev/null +++ b/node_modules/fast-glob/out/utils/array.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.splitWhen = exports.flatten = void 0; +function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); +} +exports.flatten = flatten; +function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } + else { + result[groupIndex].push(item); + } + } + return result; +} +exports.splitWhen = splitWhen; diff --git a/node_modules/fast-glob/out/utils/errno.d.ts b/node_modules/fast-glob/out/utils/errno.d.ts new file mode 100644 index 0000000..0e52c0d --- /dev/null +++ b/node_modules/fast-glob/out/utils/errno.d.ts @@ -0,0 +1,2 @@ +import { ErrnoException } from '../types'; +export declare function isEnoentCodeError(error: ErrnoException): boolean; diff --git a/node_modules/fast-glob/out/utils/errno.js b/node_modules/fast-glob/out/utils/errno.js new file mode 100644 index 0000000..178ace6 --- /dev/null +++ b/node_modules/fast-glob/out/utils/errno.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEnoentCodeError = void 0; +function isEnoentCodeError(error) { + return error.code === 'ENOENT'; +} +exports.isEnoentCodeError = isEnoentCodeError; diff --git a/node_modules/fast-glob/out/utils/fs.d.ts b/node_modules/fast-glob/out/utils/fs.d.ts new file mode 100644 index 0000000..926c5ae --- /dev/null +++ b/node_modules/fast-glob/out/utils/fs.d.ts @@ -0,0 +1,4 @@ +/// +import * as fs from 'fs'; +import { Dirent } from '@nodelib/fs.walk'; +export declare function createDirentFromStats(name: string, stats: fs.Stats): Dirent; diff --git a/node_modules/fast-glob/out/utils/fs.js b/node_modules/fast-glob/out/utils/fs.js new file mode 100644 index 0000000..f15b8cf --- /dev/null +++ b/node_modules/fast-glob/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/fast-glob/out/utils/index.d.ts b/node_modules/fast-glob/out/utils/index.d.ts new file mode 100644 index 0000000..d3e4f8f --- /dev/null +++ b/node_modules/fast-glob/out/utils/index.d.ts @@ -0,0 +1,8 @@ +import * as array from './array'; +import * as errno from './errno'; +import * as fs from './fs'; +import * as path from './path'; +import * as pattern from './pattern'; +import * as stream from './stream'; +import * as string from './string'; +export { array, errno, fs, path, pattern, stream, string }; diff --git a/node_modules/fast-glob/out/utils/index.js b/node_modules/fast-glob/out/utils/index.js new file mode 100644 index 0000000..8fc6703 --- /dev/null +++ b/node_modules/fast-glob/out/utils/index.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; +const array = require("./array"); +exports.array = array; +const errno = require("./errno"); +exports.errno = errno; +const fs = require("./fs"); +exports.fs = fs; +const path = require("./path"); +exports.path = path; +const pattern = require("./pattern"); +exports.pattern = pattern; +const stream = require("./stream"); +exports.stream = stream; +const string = require("./string"); +exports.string = string; diff --git a/node_modules/fast-glob/out/utils/path.d.ts b/node_modules/fast-glob/out/utils/path.d.ts new file mode 100644 index 0000000..f90dc54 --- /dev/null +++ b/node_modules/fast-glob/out/utils/path.d.ts @@ -0,0 +1,8 @@ +import { Pattern } from '../types'; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +export declare function unixify(filepath: string): string; +export declare function makeAbsolute(cwd: string, filepath: string): string; +export declare function escape(pattern: Pattern): Pattern; +export declare function removeLeadingDotSegment(entry: string): string; diff --git a/node_modules/fast-glob/out/utils/path.js b/node_modules/fast-glob/out/utils/path.js new file mode 100644 index 0000000..966fcc9 --- /dev/null +++ b/node_modules/fast-glob/out/utils/path.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; +const path = require("path"); +const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ +const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +function unixify(filepath) { + return filepath.replace(/\\/g, '/'); +} +exports.unixify = unixify; +function makeAbsolute(cwd, filepath) { + return path.resolve(cwd, filepath); +} +exports.makeAbsolute = makeAbsolute; +function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); +} +exports.escape = escape; +function removeLeadingDotSegment(entry) { + // We do not use `startsWith` because this is 10x slower than current implementation for some cases. + // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with + if (entry.charAt(0) === '.') { + const secondCharactery = entry.charAt(1); + if (secondCharactery === '/' || secondCharactery === '\\') { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } + return entry; +} +exports.removeLeadingDotSegment = removeLeadingDotSegment; diff --git a/node_modules/fast-glob/out/utils/pattern.d.ts b/node_modules/fast-glob/out/utils/pattern.d.ts new file mode 100644 index 0000000..23b1eed --- /dev/null +++ b/node_modules/fast-glob/out/utils/pattern.d.ts @@ -0,0 +1,42 @@ +import { MicromatchOptions, Pattern, PatternRe } from '../types'; +declare type PatternTypeOptions = { + braceExpansion?: boolean; + caseSensitiveMatch?: boolean; + extglob?: boolean; +}; +export declare function isStaticPattern(pattern: Pattern, options?: PatternTypeOptions): boolean; +export declare function isDynamicPattern(pattern: Pattern, options?: PatternTypeOptions): boolean; +export declare function convertToPositivePattern(pattern: Pattern): Pattern; +export declare function convertToNegativePattern(pattern: Pattern): Pattern; +export declare function isNegativePattern(pattern: Pattern): boolean; +export declare function isPositivePattern(pattern: Pattern): boolean; +export declare function getNegativePatterns(patterns: Pattern[]): Pattern[]; +export declare function getPositivePatterns(patterns: Pattern[]): Pattern[]; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +export declare function getPatternsInsideCurrentDirectory(patterns: Pattern[]): Pattern[]; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +export declare function getPatternsOutsideCurrentDirectory(patterns: Pattern[]): Pattern[]; +export declare function isPatternRelatedToParentDirectory(pattern: Pattern): boolean; +export declare function getBaseDirectory(pattern: Pattern): string; +export declare function hasGlobStar(pattern: Pattern): boolean; +export declare function endsWithSlashGlobStar(pattern: Pattern): boolean; +export declare function isAffectDepthOfReadingPattern(pattern: Pattern): boolean; +export declare function expandPatternsWithBraceExpansion(patterns: Pattern[]): Pattern[]; +export declare function expandBraceExpansion(pattern: Pattern): Pattern[]; +export declare function getPatternParts(pattern: Pattern, options: MicromatchOptions): Pattern[]; +export declare function makeRe(pattern: Pattern, options: MicromatchOptions): PatternRe; +export declare function convertPatternsToRe(patterns: Pattern[], options: MicromatchOptions): PatternRe[]; +export declare function matchAny(entry: string, patternsRe: PatternRe[]): boolean; +export {}; diff --git a/node_modules/fast-glob/out/utils/pattern.js b/node_modules/fast-glob/out/utils/pattern.js new file mode 100644 index 0000000..0eafc75 --- /dev/null +++ b/node_modules/fast-glob/out/utils/pattern.js @@ -0,0 +1,169 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; +const path = require("path"); +const globParent = require("glob-parent"); +const micromatch = require("micromatch"); +const GLOBSTAR = '**'; +const ESCAPE_SYMBOL = '\\'; +const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; +const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; +const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; +const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; +const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; +function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); +} +exports.isStaticPattern = isStaticPattern; +function isDynamicPattern(pattern, options = {}) { + /** + * A special case with an empty string is necessary for matching patterns that start with a forward slash. + * An empty string cannot be a dynamic pattern. + * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. + */ + if (pattern === '') { + return false; + } + /** + * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check + * filepath directly (without read directory). + */ + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { + return true; + } + return false; +} +exports.isDynamicPattern = isDynamicPattern; +function hasBraceExpansion(pattern) { + const openingBraceIndex = pattern.indexOf('{'); + if (openingBraceIndex === -1) { + return false; + } + const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1); + if (closingBraceIndex === -1) { + return false; + } + const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); + return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); +} +function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; +} +exports.convertToPositivePattern = convertToPositivePattern; +function convertToNegativePattern(pattern) { + return '!' + pattern; +} +exports.convertToNegativePattern = convertToNegativePattern; +function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; +} +exports.isNegativePattern = isNegativePattern; +function isPositivePattern(pattern) { + return !isNegativePattern(pattern); +} +exports.isPositivePattern = isPositivePattern; +function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); +} +exports.getNegativePatterns = getNegativePatterns; +function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); +} +exports.getPositivePatterns = getPositivePatterns; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsInsideCurrentDirectory(patterns) { + return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); +} +exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsOutsideCurrentDirectory(patterns) { + return patterns.filter(isPatternRelatedToParentDirectory); +} +exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; +function isPatternRelatedToParentDirectory(pattern) { + return pattern.startsWith('..') || pattern.startsWith('./..'); +} +exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; +function getBaseDirectory(pattern) { + return globParent(pattern, { flipBackslashes: false }); +} +exports.getBaseDirectory = getBaseDirectory; +function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); +} +exports.hasGlobStar = hasGlobStar; +function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); +} +exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +function isAffectDepthOfReadingPattern(pattern) { + const basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); +} +exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); +} +exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; +function expandBraceExpansion(pattern) { + return micromatch.braces(pattern, { + expand: true, + nodupes: true + }); +} +exports.expandBraceExpansion = expandBraceExpansion; +function getPatternParts(pattern, options) { + let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true })); + /** + * The scan method returns an empty array in some cases. + * See micromatch/picomatch#58 for more details. + */ + if (parts.length === 0) { + parts = [pattern]; + } + /** + * The scan method does not return an empty part for the pattern with a forward slash. + * This is another part of micromatch/picomatch#58. + */ + if (parts[0].startsWith('/')) { + parts[0] = parts[0].slice(1); + parts.unshift(''); + } + return parts; +} +exports.getPatternParts = getPatternParts; +function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); +} +exports.makeRe = makeRe; +function convertPatternsToRe(patterns, options) { + return patterns.map((pattern) => makeRe(pattern, options)); +} +exports.convertPatternsToRe = convertPatternsToRe; +function matchAny(entry, patternsRe) { + return patternsRe.some((patternRe) => patternRe.test(entry)); +} +exports.matchAny = matchAny; diff --git a/node_modules/fast-glob/out/utils/stream.d.ts b/node_modules/fast-glob/out/utils/stream.d.ts new file mode 100644 index 0000000..167fab0 --- /dev/null +++ b/node_modules/fast-glob/out/utils/stream.d.ts @@ -0,0 +1,3 @@ +/// +import { Readable } from 'stream'; +export declare function merge(streams: Readable[]): NodeJS.ReadableStream; diff --git a/node_modules/fast-glob/out/utils/stream.js b/node_modules/fast-glob/out/utils/stream.js new file mode 100644 index 0000000..f1ab1f5 --- /dev/null +++ b/node_modules/fast-glob/out/utils/stream.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.merge = void 0; +const merge2 = require("merge2"); +function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once('error', (error) => mergedStream.emit('error', error)); + }); + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; +} +exports.merge = merge; +function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit('close')); +} diff --git a/node_modules/fast-glob/out/utils/string.d.ts b/node_modules/fast-glob/out/utils/string.d.ts new file mode 100644 index 0000000..d306bc9 --- /dev/null +++ b/node_modules/fast-glob/out/utils/string.d.ts @@ -0,0 +1,2 @@ +export declare function isString(input: unknown): input is string; +export declare function isEmpty(input: string): boolean; diff --git a/node_modules/fast-glob/out/utils/string.js b/node_modules/fast-glob/out/utils/string.js new file mode 100644 index 0000000..738c227 --- /dev/null +++ b/node_modules/fast-glob/out/utils/string.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEmpty = exports.isString = void 0; +function isString(input) { + return typeof input === 'string'; +} +exports.isString = isString; +function isEmpty(input) { + return input === ''; +} +exports.isEmpty = isEmpty; diff --git a/node_modules/fast-glob/package.json b/node_modules/fast-glob/package.json new file mode 100644 index 0000000..d74e403 --- /dev/null +++ b/node_modules/fast-glob/package.json @@ -0,0 +1,94 @@ +{ + "name": "fast-glob", + "version": "3.2.12", + "description": "It's a very fast and efficient glob library for Node.js", + "license": "MIT", + "repository": "mrmlnc/fast-glob", + "author": { + "name": "Denis Malinochkin", + "url": "https://mrmlnc.com" + }, + "engines": { + "node": ">=8.6.0" + }, + "main": "out/index.js", + "typings": "out/index.d.ts", + "files": [ + "out", + "!out/{benchmark,tests}", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "keywords": [ + "glob", + "patterns", + "fast", + "implementation" + ], + "devDependencies": { + "@nodelib/fs.macchiato": "^1.0.1", + "@types/compute-stdev": "^1.0.0", + "@types/easy-table": "^0.0.32", + "@types/glob": "^7.1.1", + "@types/glob-parent": "^5.1.0", + "@types/is-ci": "^2.0.0", + "@types/merge2": "^1.1.4", + "@types/micromatch": "^4.0.0", + "@types/minimist": "^1.2.0", + "@types/mocha": "^5.2.7", + "@types/node": "^12.7.8", + "@types/rimraf": "^2.0.2", + "@types/sinon": "^7.5.0", + "compute-stdev": "^1.0.0", + "easy-table": "^1.1.1", + "eslint": "^6.5.1", + "eslint-config-mrmlnc": "^1.1.0", + "execa": "^2.0.4", + "fast-glob": "^3.0.4", + "fdir": "^5.1.0", + "glob": "^7.1.4", + "is-ci": "^2.0.0", + "log-update": "^4.0.0", + "minimist": "^1.2.0", + "mocha": "^6.2.1", + "rimraf": "^3.0.0", + "sinon": "^7.5.0", + "tiny-glob": "^0.2.6", + "typescript": "^3.6.3" + }, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "scripts": { + "clean": "rimraf out", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "smoke": "mocha \"out/**/*.smoke.js\" -s 0", + "smoke:sync": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(sync\\)\"", + "smoke:async": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(async\\)\"", + "smoke:stream": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(stream\\)\"", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile -- --sourceMap --watch", + "bench": "npm run bench-async && npm run bench-stream && npm run bench-sync", + "bench-async": "npm run bench-async-flatten && npm run bench-async-deep && npm run bench-async-partial-flatten && npm run bench-async-partial-deep", + "bench-stream": "npm run bench-stream-flatten && npm run bench-stream-deep && npm run bench-stream-partial-flatten && npm run bench-stream-partial-deep", + "bench-sync": "npm run bench-sync-flatten && npm run bench-sync-deep && npm run bench-sync-partial-flatten && npm run bench-sync-partial-deep", + "bench-async-flatten": "node ./out/benchmark --mode async --pattern \"*\"", + "bench-async-deep": "node ./out/benchmark --mode async --pattern \"**\"", + "bench-async-partial-flatten": "node ./out/benchmark --mode async --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-async-partial-deep": "node ./out/benchmark --mode async --pattern \"{fixtures,out}/**\"", + "bench-stream-flatten": "node ./out/benchmark --mode stream --pattern \"*\"", + "bench-stream-deep": "node ./out/benchmark --mode stream --pattern \"**\"", + "bench-stream-partial-flatten": "node ./out/benchmark --mode stream --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-stream-partial-deep": "node ./out/benchmark --mode stream --pattern \"{fixtures,out}/**\"", + "bench-sync-flatten": "node ./out/benchmark --mode sync --pattern \"*\"", + "bench-sync-deep": "node ./out/benchmark --mode sync --pattern \"**\"", + "bench-sync-partial-flatten": "node ./out/benchmark --mode sync --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-sync-partial-deep": "node ./out/benchmark --mode sync --pattern \"{fixtures,out}/**\"" + } +} diff --git a/node_modules/fastq/.github/dependabot.yml b/node_modules/fastq/.github/dependabot.yml new file mode 100644 index 0000000..7e7cbe1 --- /dev/null +++ b/node_modules/fastq/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + ignore: + - dependency-name: standard + versions: + - 16.0.3 diff --git a/node_modules/fastq/.github/workflows/ci.yml b/node_modules/fastq/.github/workflows/ci.yml new file mode 100644 index 0000000..50e66b5 --- /dev/null +++ b/node_modules/fastq/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +name: ci + +on: [push, pull_request] + +jobs: + legacy: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: ['0.10', '0.12', 4.x, 6.x, 8.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install + run: | + npm install --production && npm install tape + + - name: Run tests + run: | + npm run legacy + + test: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x, 13.x, 14.x, 15.x, 16.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install + run: | + npm install + + - name: Run tests + run: | + npm run test diff --git a/node_modules/fastq/LICENSE b/node_modules/fastq/LICENSE new file mode 100644 index 0000000..27c7bb4 --- /dev/null +++ b/node_modules/fastq/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015-2020, Matteo Collina + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/fastq/README.md b/node_modules/fastq/README.md new file mode 100644 index 0000000..8a25fef --- /dev/null +++ b/node_modules/fastq/README.md @@ -0,0 +1,309 @@ +# fastq + +![ci][ci-url] +[![npm version][npm-badge]][npm-url] +[![Dependency Status][david-badge]][david-url] + +Fast, in memory work queue. + +Benchmarks (1 million tasks): + +* setImmediate: 812ms +* fastq: 854ms +* async.queue: 1298ms +* neoAsync.queue: 1249ms + +Obtained on node 12.16.1, on a dedicated server. + +If you need zero-overhead series function call, check out +[fastseries](http://npm.im/fastseries). For zero-overhead parallel +function call, check out [fastparallel](http://npm.im/fastparallel). + +[![js-standard-style](https://raw.githubusercontent.com/feross/standard/master/badge.png)](https://github.com/feross/standard) + + * Installation + * Usage + * API + * Licence & copyright + +## Install + +`npm i fastq --save` + +## Usage (callback API) + +```js +'use strict' + +const queue = require('fastq')(worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log('the result is', result) +}) + +function worker (arg, cb) { + cb(null, arg * 2) +} +``` + +## Usage (promise API) + +```js +const queue = require('fastq').promise(worker, 1) + +async function worker (arg) { + return arg * 2 +} + +async function run () { + const result = await queue.push(42) + console.log('the result is', result) +} + +run() +``` + +### Setting "this" + +```js +'use strict' + +const that = { hello: 'world' } +const queue = require('fastq')(that, worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log(this) + console.log('the result is', result) +}) + +function worker (arg, cb) { + console.log(this) + cb(null, arg * 2) +} +``` + +### Using with TypeScript (callback API) + +```ts +'use strict' + +import * as fastq from "fastq"; +import type { queue, done } from "fastq"; + +type Task = { + id: number +} + +const q: queue = fastq(worker, 1) + +q.push({ id: 42}) + +function worker (arg: Task, cb: done) { + console.log(arg.id) + cb(null) +} +``` + +### Using with TypeScript (promise API) + +```ts +'use strict' + +import * as fastq from "fastq"; +import type { queueAsPromised } from "fastq"; + +type Task = { + id: number +} + +const q: queueAsPromised = fastq.promise(asyncWorker, 1) + +q.push({ id: 42}).catch((err) => console.error(err)) + +async function asyncWorker (arg: Task): Promise { + // No need for a try-catch block, fastq handles errors automatically + console.log(arg.id) +} +``` + +## API + +* fastqueue() +* queue#push() +* queue#unshift() +* queue#pause() +* queue#resume() +* queue#idle() +* queue#length() +* queue#getQueue() +* queue#kill() +* queue#killAndDrain() +* queue#error() +* queue#concurrency +* queue#drain +* queue#empty +* queue#saturated +* fastqueue.promise() + +------------------------------------------------------- + +### fastqueue([that], worker, concurrency) + +Creates a new queue. + +Arguments: + +* `that`, optional context of the `worker` function. +* `worker`, worker function, it would be called with `that` as `this`, + if that is specified. +* `concurrency`, number of concurrent tasks that could be executed in + parallel. + +------------------------------------------------------- + +### queue.push(task, done) + +Add a task at the end of the queue. `done(err, result)` will be called +when the task was processed. + +------------------------------------------------------- + +### queue.unshift(task, done) + +Add a task at the beginning of the queue. `done(err, result)` will be called +when the task was processed. + +------------------------------------------------------- + +### queue.pause() + +Pause the processing of tasks. Currently worked tasks are not +stopped. + +------------------------------------------------------- + +### queue.resume() + +Resume the processing of tasks. + +------------------------------------------------------- + +### queue.idle() + +Returns `false` if there are tasks being processed or waiting to be processed. +`true` otherwise. + +------------------------------------------------------- + +### queue.length() + +Returns the number of tasks waiting to be processed (in the queue). + +------------------------------------------------------- + +### queue.getQueue() + +Returns all the tasks be processed (in the queue). Returns empty array when there are no tasks + +------------------------------------------------------- + +### queue.kill() + +Removes all tasks waiting to be processed, and reset `drain` to an empty +function. + +------------------------------------------------------- + +### queue.killAndDrain() + +Same than `kill` but the `drain` function will be called before reset to empty. + +------------------------------------------------------- + +### queue.error(handler) + +Set a global error handler. `handler(err, task)` will be called +each time a task is completed, `err` will be not null if the task has thrown an error. + +------------------------------------------------------- + +### queue.concurrency + +Property that returns the number of concurrent tasks that could be executed in +parallel. It can be altered at runtime. + +------------------------------------------------------- + +### queue.drain + +Function that will be called when the last +item from the queue has been processed by a worker. +It can be altered at runtime. + +------------------------------------------------------- + +### queue.empty + +Function that will be called when the last +item from the queue has been assigned to a worker. +It can be altered at runtime. + +------------------------------------------------------- + +### queue.saturated + +Function that will be called when the queue hits the concurrency +limit. +It can be altered at runtime. + +------------------------------------------------------- + +### fastqueue.promise([that], worker(arg), concurrency) + +Creates a new queue with `Promise` apis. It also offers all the methods +and properties of the object returned by [`fastqueue`](#fastqueue) with the modified +[`push`](#pushPromise) and [`unshift`](#unshiftPromise) methods. + +Node v10+ is required to use the promisified version. + +Arguments: +* `that`, optional context of the `worker` function. +* `worker`, worker function, it would be called with `that` as `this`, + if that is specified. It MUST return a `Promise`. +* `concurrency`, number of concurrent tasks that could be executed in + parallel. + + +#### queue.push(task) => Promise + +Add a task at the end of the queue. The returned `Promise` will be fulfilled (rejected) +when the task is completed successfully (unsuccessfully). + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + + +#### queue.unshift(task) => Promise + +Add a task at the beginning of the queue. The returned `Promise` will be fulfilled (rejected) +when the task is completed successfully (unsuccessfully). + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + + +#### queue.drained() => Promise + +Wait for the queue to be drained. The returned `Promise` will be resolved when all tasks in the queue have been processed by a worker. + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + +## License + +ISC + +[ci-url]: https://github.com/mcollina/fastq/workflows/ci/badge.svg +[npm-badge]: https://badge.fury.io/js/fastq.svg +[npm-url]: https://badge.fury.io/js/fastq +[david-badge]: https://david-dm.org/mcollina/fastq.svg +[david-url]: https://david-dm.org/mcollina/fastq diff --git a/node_modules/fastq/bench.js b/node_modules/fastq/bench.js new file mode 100644 index 0000000..4eaa829 --- /dev/null +++ b/node_modules/fastq/bench.js @@ -0,0 +1,66 @@ +'use strict' + +const max = 1000000 +const fastqueue = require('./')(worker, 1) +const { promisify } = require('util') +const immediate = promisify(setImmediate) +const qPromise = require('./').promise(immediate, 1) +const async = require('async') +const neo = require('neo-async') +const asyncqueue = async.queue(worker, 1) +const neoqueue = neo.queue(worker, 1) + +function bench (func, done) { + const key = max + '*' + func.name + let count = -1 + + console.time(key) + end() + + function end () { + if (++count < max) { + func(end) + } else { + console.timeEnd(key) + if (done) { + done() + } + } + } +} + +function benchFastQ (done) { + fastqueue.push(42, done) +} + +function benchAsyncQueue (done) { + asyncqueue.push(42, done) +} + +function benchNeoQueue (done) { + neoqueue.push(42, done) +} + +function worker (arg, cb) { + setImmediate(cb) +} + +function benchSetImmediate (cb) { + worker(42, cb) +} + +function benchFastQPromise (done) { + qPromise.push(42).then(function () { done() }, done) +} + +function runBench (done) { + async.eachSeries([ + benchSetImmediate, + benchFastQ, + benchNeoQueue, + benchAsyncQueue, + benchFastQPromise + ], bench, done) +} + +runBench(runBench) diff --git a/node_modules/fastq/example.js b/node_modules/fastq/example.js new file mode 100644 index 0000000..665fdc8 --- /dev/null +++ b/node_modules/fastq/example.js @@ -0,0 +1,14 @@ +'use strict' + +/* eslint-disable no-var */ + +var queue = require('./')(worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log('the result is', result) +}) + +function worker (arg, cb) { + cb(null, 42 * 2) +} diff --git a/node_modules/fastq/example.mjs b/node_modules/fastq/example.mjs new file mode 100644 index 0000000..81be789 --- /dev/null +++ b/node_modules/fastq/example.mjs @@ -0,0 +1,11 @@ +import { promise as queueAsPromised } from './queue.js' + +/* eslint-disable */ + +const queue = queueAsPromised(worker, 1) + +console.log('the result is', await queue.push(42)) + +async function worker (arg) { + return 42 * 2 +} diff --git a/node_modules/fastq/index.d.ts b/node_modules/fastq/index.d.ts new file mode 100644 index 0000000..65ebe65 --- /dev/null +++ b/node_modules/fastq/index.d.ts @@ -0,0 +1,37 @@ +declare function fastq(context: C, worker: fastq.worker, concurrency: number): fastq.queue +declare function fastq(worker: fastq.worker, concurrency: number): fastq.queue + +declare namespace fastq { + type worker = (this: C, task: T, cb: fastq.done) => void + type asyncWorker = (this: C, task: T) => Promise + type done = (err: Error | null, result?: R) => void + type errorHandler = (err: Error, task: T) => void + + interface queue { + push(task: T, done?: done): void + unshift(task: T, done?: done): void + pause(): any + resume(): any + idle(): boolean + length(): number + getQueue(): T[] + kill(): any + killAndDrain(): any + error(handler: errorHandler): void + concurrency: number + drain(): any + empty: () => void + saturated: () => void + } + + interface queueAsPromised extends queue { + push(task: T): Promise + unshift(task: T): Promise + drained(): Promise + } + + function promise(context: C, worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised + function promise(worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised +} + +export = fastq diff --git a/node_modules/fastq/package.json b/node_modules/fastq/package.json new file mode 100644 index 0000000..bf572e3 --- /dev/null +++ b/node_modules/fastq/package.json @@ -0,0 +1,52 @@ +{ + "name": "fastq", + "version": "1.15.0", + "description": "Fast, in memory work queue", + "main": "queue.js", + "scripts": { + "lint": "standard --verbose | snazzy", + "unit": "nyc --lines 100 --branches 100 --functions 100 --check-coverage --reporter=text tape test/test.js test/promise.js", + "coverage": "nyc --reporter=html --reporter=cobertura --reporter=text tape test/test.js test/promise.js", + "test:report": "npm run lint && npm run unit:report", + "test": "npm run lint && npm run unit && npm run typescript", + "typescript": "tsc --project ./test/tsconfig.json", + "legacy": "tape test/test.js" + }, + "pre-commit": [ + "test" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/fastq.git" + }, + "keywords": [ + "fast", + "queue", + "async", + "worker" + ], + "author": "Matteo Collina ", + "license": "ISC", + "bugs": { + "url": "https://github.com/mcollina/fastq/issues" + }, + "homepage": "https://github.com/mcollina/fastq#readme", + "devDependencies": { + "async": "^3.1.0", + "neo-async": "^2.6.1", + "nyc": "^15.0.0", + "pre-commit": "^1.2.2", + "snazzy": "^9.0.0", + "standard": "^16.0.0", + "tape": "^5.0.0", + "typescript": "^4.0.2" + }, + "dependencies": { + "reusify": "^1.0.4" + }, + "standard": { + "ignore": [ + "example.mjs" + ] + } +} diff --git a/node_modules/fastq/queue.js b/node_modules/fastq/queue.js new file mode 100644 index 0000000..03fe112 --- /dev/null +++ b/node_modules/fastq/queue.js @@ -0,0 +1,289 @@ +'use strict' + +/* eslint-disable no-var */ + +var reusify = require('reusify') + +function fastqueue (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } + + if (concurrency < 1) { + throw new Error('fastqueue concurrency must be greater than 1') + } + + var cache = reusify(Task) + var queueHead = null + var queueTail = null + var _running = 0 + var errorHandler = null + + var self = { + push: push, + drain: noop, + saturated: noop, + pause: pause, + paused: false, + concurrency: concurrency, + running: running, + resume: resume, + idle: idle, + length: length, + getQueue: getQueue, + unshift: unshift, + empty: noop, + kill: kill, + killAndDrain: killAndDrain, + error: error + } + + return self + + function running () { + return _running + } + + function pause () { + self.paused = true + } + + function length () { + var current = queueHead + var counter = 0 + + while (current) { + current = current.next + counter++ + } + + return counter + } + + function getQueue () { + var current = queueHead + var tasks = [] + + while (current) { + tasks.push(current.value) + current = current.next + } + + return tasks + } + + function resume () { + if (!self.paused) return + self.paused = false + for (var i = 0; i < self.concurrency; i++) { + _running++ + release() + } + } + + function idle () { + return _running === 0 && self.length() === 0 + } + + function push (value, done) { + var current = cache.get() + + current.context = context + current.release = release + current.value = value + current.callback = done || noop + current.errorHandler = errorHandler + + if (_running === self.concurrency || self.paused) { + if (queueTail) { + queueTail.next = current + queueTail = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) + } + } + + function unshift (value, done) { + var current = cache.get() + + current.context = context + current.release = release + current.value = value + current.callback = done || noop + + if (_running === self.concurrency || self.paused) { + if (queueHead) { + current.next = queueHead + queueHead = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) + } + } + + function release (holder) { + if (holder) { + cache.release(holder) + } + var next = queueHead + if (next) { + if (!self.paused) { + if (queueTail === queueHead) { + queueTail = null + } + queueHead = next.next + next.next = null + worker.call(context, next.value, next.worked) + if (queueTail === null) { + self.empty() + } + } else { + _running-- + } + } else if (--_running === 0) { + self.drain() + } + } + + function kill () { + queueHead = null + queueTail = null + self.drain = noop + } + + function killAndDrain () { + queueHead = null + queueTail = null + self.drain() + self.drain = noop + } + + function error (handler) { + errorHandler = handler + } +} + +function noop () {} + +function Task () { + this.value = null + this.callback = noop + this.next = null + this.release = noop + this.context = null + this.errorHandler = null + + var self = this + + this.worked = function worked (err, result) { + var callback = self.callback + var errorHandler = self.errorHandler + var val = self.value + self.value = null + self.callback = noop + if (self.errorHandler) { + errorHandler(err, val) + } + callback.call(self.context, err, result) + self.release(self) + } +} + +function queueAsPromised (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } + + function asyncWrapper (arg, cb) { + worker.call(this, arg) + .then(function (res) { + cb(null, res) + }, cb) + } + + var queue = fastqueue(context, asyncWrapper, concurrency) + + var pushCb = queue.push + var unshiftCb = queue.unshift + + queue.push = push + queue.unshift = unshift + queue.drained = drained + + return queue + + function push (value) { + var p = new Promise(function (resolve, reject) { + pushCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) + + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) + + return p + } + + function unshift (value) { + var p = new Promise(function (resolve, reject) { + unshiftCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) + + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) + + return p + } + + function drained () { + if (queue.idle()) { + return new Promise(function (resolve) { + resolve() + }) + } + + var previousDrain = queue.drain + + var p = new Promise(function (resolve) { + queue.drain = function () { + previousDrain() + resolve() + } + }) + + return p + } +} + +module.exports = fastqueue +module.exports.promise = queueAsPromised diff --git a/node_modules/fastq/test/example.ts b/node_modules/fastq/test/example.ts new file mode 100644 index 0000000..c454e9d --- /dev/null +++ b/node_modules/fastq/test/example.ts @@ -0,0 +1,81 @@ +import * as fastq from '../' +import { promise as queueAsPromised } from '../' + +// Basic example + +const queue = fastq(worker, 1) + +queue.push('world', (err, result) => { + if (err) throw err + console.log('the result is', result) +}) + +queue.push('push without cb') + +queue.concurrency + +queue.drain() + +queue.empty = () => undefined + +console.log('the queue tasks are', queue.getQueue()) + +queue.idle() + +queue.kill() + +queue.killAndDrain() + +queue.length + +queue.pause() + +queue.resume() + +queue.saturated = () => undefined + +queue.unshift('world', (err, result) => { + if (err) throw err + console.log('the result is', result) +}) + +queue.unshift('unshift without cb') + +function worker(task: any, cb: fastq.done) { + cb(null, 'hello ' + task) +} + +// Generics example + +interface GenericsContext { + base: number; +} + +const genericsQueue = fastq({ base: 6 }, genericsWorker, 1) + +genericsQueue.push(7, (err, done) => { + if (err) throw err + console.log('the result is', done) +}) + +genericsQueue.unshift(7, (err, done) => { + if (err) throw err + console.log('the result is', done) +}) + +function genericsWorker(this: GenericsContext, task: number, cb: fastq.done) { + cb(null, 'the meaning of life is ' + (this.base * task)) +} + +const queue2 = queueAsPromised(asyncWorker, 1) + +async function asyncWorker(task: any) { + return 'hello ' + task +} + +async function run () { + await queue.push(42) + await queue.unshift(42) +} + +run() diff --git a/node_modules/fastq/test/promise.js b/node_modules/fastq/test/promise.js new file mode 100644 index 0000000..fe014ff --- /dev/null +++ b/node_modules/fastq/test/promise.js @@ -0,0 +1,248 @@ +'use strict' + +const test = require('tape') +const buildQueue = require('../').promise +const { promisify } = require('util') +const sleep = promisify(setTimeout) +const immediate = promisify(setImmediate) + +test('concurrency', function (t) { + t.plan(2) + t.throws(buildQueue.bind(null, worker, 0)) + t.doesNotThrow(buildQueue.bind(null, worker, 1)) + + async function worker (arg) { + return true + } +}) + +test('worker execution', async function (t) { + const queue = buildQueue(worker, 1) + + const result = await queue.push(42) + + t.equal(result, true, 'result matches') + + async function worker (arg) { + t.equal(arg, 42) + return true + } +}) + +test('limit', async function (t) { + const queue = buildQueue(worker, 1) + + const [res1, res2] = await Promise.all([queue.push(10), queue.push(0)]) + t.equal(res1, 10, 'the result matches') + t.equal(res2, 0, 'the result matches') + + async function worker (arg) { + await sleep(arg) + return arg + } +}) + +test('multiple executions', async function (t) { + const queue = buildQueue(worker, 1) + const toExec = [1, 2, 3, 4, 5] + const expected = ['a', 'b', 'c', 'd', 'e'] + let count = 0 + + await Promise.all(toExec.map(async function (task, i) { + const result = await queue.push(task) + t.equal(result, expected[i], 'the result matches') + })) + + async function worker (arg) { + t.equal(arg, toExec[count], 'arg matches') + return expected[count++] + } +}) + +test('drained', async function (t) { + const queue = buildQueue(worker, 2) + + const toExec = new Array(10).fill(10) + let count = 0 + + async function worker (arg) { + await sleep(arg) + count++ + } + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() + + t.equal(count, toExec.length) + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() + + t.equal(count, toExec.length * 2) +}) + +test('drained with exception should not throw', async function (t) { + const queue = buildQueue(worker, 2) + + const toExec = new Array(10).fill(10) + + async function worker () { + throw new Error('foo') + } + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() +}) + +test('drained with drain function', async function (t) { + let drainCalled = false + const queue = buildQueue(worker, 2) + + queue.drain = function () { + drainCalled = true + } + + const toExec = new Array(10).fill(10) + let count = 0 + + async function worker (arg) { + await sleep(arg) + count++ + } + + toExec.forEach(function () { + queue.push() + }) + + await queue.drained() + + t.equal(count, toExec.length) + t.equal(drainCalled, true) +}) + +test('drained while idle should resolve', async function (t) { + const queue = buildQueue(worker, 2) + + async function worker (arg) { + await sleep(arg) + } + + await queue.drained() +}) + +test('drained while idle should not call the drain function', async function (t) { + let drainCalled = false + const queue = buildQueue(worker, 2) + + queue.drain = function () { + drainCalled = true + } + + async function worker (arg) { + await sleep(arg) + } + + await queue.drained() + + t.equal(drainCalled, false) +}) + +test('set this', async function (t) { + t.plan(1) + const that = {} + const queue = buildQueue(that, worker, 1) + + await queue.push(42) + + async function worker (arg) { + t.equal(this, that, 'this matches') + } +}) + +test('unshift', async function (t) { + const queue = buildQueue(worker, 1) + const expected = [1, 2, 3, 4] + + await Promise.all([ + queue.push(1), + queue.push(4), + queue.unshift(3), + queue.unshift(2) + ]) + + t.is(expected.length, 0) + + async function worker (arg) { + t.equal(expected.shift(), arg, 'tasks come in order') + } +}) + +test('push with worker throwing error', async function (t) { + t.plan(5) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + q.error(function (err, task) { + t.ok(err instanceof Error, 'global error handler should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + t.equal(task, 42, 'The task executed should be passed') + }) + try { + await q.push(42) + } catch (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + } +}) + +test('unshift with worker throwing error', async function (t) { + t.plan(2) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + try { + await q.unshift(42) + } catch (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + } +}) + +test('no unhandledRejection (push)', async function (t) { + function handleRejection () { + t.fail('unhandledRejection') + } + process.once('unhandledRejection', handleRejection) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + + q.push(42) + + await immediate() + process.removeListener('unhandledRejection', handleRejection) +}) + +test('no unhandledRejection (unshift)', async function (t) { + function handleRejection () { + t.fail('unhandledRejection') + } + process.once('unhandledRejection', handleRejection) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + + q.unshift(42) + + await immediate() + process.removeListener('unhandledRejection', handleRejection) +}) diff --git a/node_modules/fastq/test/test.js b/node_modules/fastq/test/test.js new file mode 100644 index 0000000..1cc78a5 --- /dev/null +++ b/node_modules/fastq/test/test.js @@ -0,0 +1,566 @@ +'use strict' + +/* eslint-disable no-var */ + +var test = require('tape') +var buildQueue = require('../') + +test('concurrency', function (t) { + t.plan(2) + t.throws(buildQueue.bind(null, worker, 0)) + t.doesNotThrow(buildQueue.bind(null, worker, 1)) + + function worker (arg, cb) { + cb(null, true) + } +}) + +test('worker execution', function (t) { + t.plan(3) + + var queue = buildQueue(worker, 1) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + function worker (arg, cb) { + t.equal(arg, 42) + cb(null, true) + } +}) + +test('limit', function (t) { + t.plan(4) + + var expected = [10, 0] + var queue = buildQueue(worker, 1) + + queue.push(10, result) + queue.push(0, result) + + function result (err, arg) { + t.error(err, 'no error') + t.equal(arg, expected.shift(), 'the result matches') + } + + function worker (arg, cb) { + setTimeout(cb, arg, null, arg) + } +}) + +test('multiple executions', function (t) { + t.plan(15) + + var queue = buildQueue(worker, 1) + var toExec = [1, 2, 3, 4, 5] + var count = 0 + + toExec.forEach(function (task) { + queue.push(task, done) + }) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, toExec[count - 1], 'the result matches') + } + + function worker (arg, cb) { + t.equal(arg, toExec[count], 'arg matches') + count++ + setImmediate(cb, null, arg) + } +}) + +test('multiple executions, one after another', function (t) { + t.plan(15) + + var queue = buildQueue(worker, 1) + var toExec = [1, 2, 3, 4, 5] + var count = 0 + + queue.push(toExec[0], done) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, toExec[count - 1], 'the result matches') + if (count < toExec.length) { + queue.push(toExec[count], done) + } + } + + function worker (arg, cb) { + t.equal(arg, toExec[count], 'arg matches') + count++ + setImmediate(cb, null, arg) + } +}) + +test('set this', function (t) { + t.plan(3) + + var that = {} + var queue = buildQueue(that, worker, 1) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(this, that, 'this matches') + }) + + function worker (arg, cb) { + t.equal(this, that, 'this matches') + cb(null, true) + } +}) + +test('drain', function (t) { + t.plan(4) + + var queue = buildQueue(worker, 1) + var worked = false + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + queue.drain = function () { + t.equal(true, worked, 'drained') + } + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + setImmediate(cb, null, true) + } +}) + +test('pause && resume', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + var worked = false + + t.notOk(queue.paused, 'it should not be paused') + + queue.pause() + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + t.notOk(worked, 'it should be paused') + t.ok(queue.paused, 'it should be paused') + + queue.resume() + queue.resume() // second resume is a no-op + + t.notOk(queue.paused, 'it should not be paused') + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + cb(null, true) + } +}) + +test('pause in flight && resume', function (t) { + t.plan(9) + + var queue = buildQueue(worker, 1) + var expected = [42, 24] + + t.notOk(queue.paused, 'it should not be paused') + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.ok(queue.paused, 'it should be paused') + process.nextTick(function () { queue.resume() }) + }) + + queue.push(24, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.notOk(queue.paused, 'it should not be paused') + }) + + queue.pause() + + function worker (arg, cb) { + t.equal(arg, expected.shift()) + process.nextTick(function () { cb(null, true) }) + } +}) + +test('altering concurrency', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + var count = 0 + + queue.pause() + + queue.push(24, workDone) + queue.push(24, workDone) + + queue.concurrency = 2 + + queue.resume() + + t.equal(queue.running(), 2, '2 jobs running') + + function workDone (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + } + + function worker (arg, cb) { + t.equal(0, count, 'works in parallel') + setImmediate(function () { + count++ + cb(null, true) + }) + } +}) + +test('idle()', function (t) { + t.plan(12) + + var queue = buildQueue(worker, 1) + + t.ok(queue.idle(), 'queue is idle') + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.notOk(queue.idle(), 'queue is not idle') + }) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + // it will go idle after executing this function + setImmediate(function () { + t.ok(queue.idle(), 'queue is now idle') + }) + }) + + t.notOk(queue.idle(), 'queue is not idle') + + function worker (arg, cb) { + t.notOk(queue.idle(), 'queue is not idle') + t.equal(arg, 42) + setImmediate(cb, null, true) + } +}) + +test('saturated', function (t) { + t.plan(9) + + var queue = buildQueue(worker, 1) + var preworked = 0 + var worked = 0 + + queue.saturated = function () { + t.pass('saturated') + t.equal(preworked, 1, 'started 1 task') + t.equal(worked, 0, 'worked zero task') + } + + queue.push(42, done) + queue.push(42, done) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + } + + function worker (arg, cb) { + t.equal(arg, 42) + preworked++ + setImmediate(function () { + worked++ + cb(null, true) + }) + } +}) + +test('length', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + + t.equal(queue.length(), 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.length(), 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.length(), 1, 'one task waiting') + queue.push(42, done) + t.equal(queue.length(), 2, 'two tasks waiting') + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('getQueue', function (t) { + t.plan(10) + + var queue = buildQueue(worker, 1) + + t.equal(queue.getQueue().length, 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.getQueue().length, 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.getQueue().length, 1, 'one task waiting') + t.equal(queue.getQueue()[0], 42, 'should be equal') + queue.push(43, done) + t.equal(queue.getQueue().length, 2, 'two tasks waiting') + t.equal(queue.getQueue()[0], 42, 'should be equal') + t.equal(queue.getQueue()[1], 43, 'should be equal') + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('unshift', function (t) { + t.plan(8) + + var queue = buildQueue(worker, 1) + var expected = [1, 2, 3, 4] + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('unshift && empty', function (t) { + t.plan(2) + + var queue = buildQueue(worker, 1) + var completed = false + + queue.pause() + + queue.empty = function () { + t.notOk(completed, 'the task has not completed yet') + } + + queue.unshift(1, done) + + queue.resume() + + function done (err, result) { + completed = true + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('push && empty', function (t) { + t.plan(2) + + var queue = buildQueue(worker, 1) + var completed = false + + queue.pause() + + queue.empty = function () { + t.notOk(completed, 'the task has not completed yet') + } + + queue.push(1, done) + + queue.resume() + + function done (err, result) { + completed = true + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('kill', function (t) { + t.plan(5) + + var queue = buildQueue(worker, 1) + var expected = [1] + + var predrain = queue.drain + + queue.drain = function drain () { + t.fail('drain should never be called') + } + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + queue.kill() + + function done (err, result) { + t.error(err, 'no error') + setImmediate(function () { + t.equal(queue.length(), 0, 'no queued tasks') + t.equal(queue.running(), 0, 'no running tasks') + t.equal(queue.drain, predrain, 'drain is back to default') + }) + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('killAndDrain', function (t) { + t.plan(6) + + var queue = buildQueue(worker, 1) + var expected = [1] + + var predrain = queue.drain + + queue.drain = function drain () { + t.pass('drain has been called') + } + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + queue.killAndDrain() + + function done (err, result) { + t.error(err, 'no error') + setImmediate(function () { + t.equal(queue.length(), 0, 'no queued tasks') + t.equal(queue.running(), 0, 'no running tasks') + t.equal(queue.drain, predrain, 'drain is back to default') + }) + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('pause && idle', function (t) { + t.plan(11) + + var queue = buildQueue(worker, 1) + var worked = false + + t.notOk(queue.paused, 'it should not be paused') + t.ok(queue.idle(), 'should be idle') + + queue.pause() + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + t.notOk(worked, 'it should be paused') + t.ok(queue.paused, 'it should be paused') + t.notOk(queue.idle(), 'should not be idle') + + queue.resume() + + t.notOk(queue.paused, 'it should not be paused') + t.notOk(queue.idle(), 'it should not be idle') + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + process.nextTick(cb.bind(null, null, true)) + process.nextTick(function () { + t.ok(queue.idle(), 'is should be idle') + }) + } +}) + +test('push without cb', function (t) { + t.plan(1) + + var queue = buildQueue(worker, 1) + + queue.push(42) + + function worker (arg, cb) { + t.equal(arg, 42) + cb() + } +}) + +test('unshift without cb', function (t) { + t.plan(1) + + var queue = buildQueue(worker, 1) + + queue.unshift(42) + + function worker (arg, cb) { + t.equal(arg, 42) + cb() + } +}) + +test('push with worker throwing error', function (t) { + t.plan(5) + var q = buildQueue(function (task, cb) { + cb(new Error('test error'), null) + }, 1) + q.error(function (err, task) { + t.ok(err instanceof Error, 'global error handler should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + t.equal(task, 42, 'The task executed should be passed') + }) + q.push(42, function (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + }) +}) diff --git a/node_modules/fastq/test/tsconfig.json b/node_modules/fastq/test/tsconfig.json new file mode 100644 index 0000000..66e16e9 --- /dev/null +++ b/node_modules/fastq/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "noEmit": true, + "strict": true + }, + "files": [ + "./example.ts" + ] +} diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/fill-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/fill-range/README.md b/node_modules/fill-range/README.md new file mode 100644 index 0000000..8d756fe --- /dev/null +++ b/node_modules/fill-range/README.md @@ -0,0 +1,237 @@ +# fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range) + +> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save fill-range +``` + +## Usage + +Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_. + +```js +const fill = require('fill-range'); +// fill(from, to[, step, options]); + +console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] +console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10 +``` + +**Params** + +* `from`: **{String|Number}** the number or letter to start with +* `to`: **{String|Number}** the number or letter to end with +* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use. +* `options`: **{Object|Function}**: See all available [options](#options) + +## Examples + +By default, an array of values is returned. + +**Alphabetical ranges** + +```js +console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e'] +console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ] +``` + +**Numerical ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ] +``` + +**Negative ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ] +console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ] +``` + +**Steps (increments)** + +```js +// numerical ranges with increments +console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ] +console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ] +console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ] + +// alphabetical ranges with increments +console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ] +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ] +``` + +## Options + +### options.step + +**Type**: `number` (formatted as a string or number) + +**Default**: `undefined` + +**Description**: The increment to use for the range. Can be used with letters or numbers. + +**Example(s)** + +```js +// numbers +console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ] +console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ] +console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ] + +// letters +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ] +console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ] +``` + +### options.strictRanges + +**Type**: `boolean` + +**Default**: `false` + +**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges. + +**Example(s)** + +The following are all invalid: + +```js +fill('1.1', '2'); // decimals not supported in ranges +fill('a', '2'); // incompatible range values +fill(1, 10, 'foo'); // invalid "step" argument +``` + +### options.stringify + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Cast all returned values to strings. By default, integers are returned as numbers. + +**Example(s)** + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ] +``` + +### options.toRegex + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Create a regex-compatible source string, instead of expanding values to an array. + +**Example(s)** + +```js +// alphabetical range +console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]' +// alphabetical with step +console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y' +// numerical range +console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100' +// numerical range with zero padding +console.log(fill('000001', '100000', { toRegex: true })); +//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000' +``` + +### options.transform + +**Type**: `function` + +**Default**: `undefined` + +**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_. + +**Example(s)** + +```js +// add zero padding +console.log(fill(1, 5, value => String(value).padStart(4, '0'))); +//=> ['0001', '0002', '0003', '0004', '0005'] +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 116 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [paulmillr](https://github.com/paulmillr) | +| 2 | [realityking](https://github.com/realityking) | +| 2 | [bluelovers](https://github.com/bluelovers) | +| 1 | [edorivai](https://github.com/edorivai) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/node_modules/fill-range/index.js b/node_modules/fill-range/index.js new file mode 100644 index 0000000..97ce35a --- /dev/null +++ b/node_modules/fill-range/index.js @@ -0,0 +1,249 @@ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ + +'use strict'; + +const util = require('util'); +const toRegexRange = require('to-regex-range'); + +const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber = num => Number.isInteger(+num); + +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; + +const stringify = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); + } + if (toNumber === false) { + return String(input); + } + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.join('|'); + } + + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; + } + + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + + if (options.wrap) { + return `(${prefix}${result})`; + } + + return result; +}; + +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange(start, end, options); +}; + +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util.inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } + + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; + + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options) + : toRegex(range, null, { wrap: false, ...options }); + } + + return range; +}; + +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { + return invalidRange(start, end, options); + } + + + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; +}; + +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + + if (typeof step === 'function') { + return fill(start, end, 1, { transform: step }); + } + + if (isObject(step)) { + return fill(start, end, 0, step); + } + + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; + + if (!isNumber(step)) { + if (step != null && !isObject(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } + + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +module.exports = fill; diff --git a/node_modules/fill-range/package.json b/node_modules/fill-range/package.json new file mode 100644 index 0000000..07d3076 --- /dev/null +++ b/node_modules/fill-range/package.json @@ -0,0 +1,69 @@ +{ + "name": "fill-range", + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", + "version": "7.0.1", + "homepage": "https://github.com/jonschlinkert/fill-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Edo Rivai (edo.rivai.nl)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Paul Miller (paulmillr.com)", + "Rouven Weßling (www.rouvenwessling.de)", + "(https://github.com/wtgtybhertgeghgtwtg)" + ], + "repository": "jonschlinkert/fill-range", + "bugs": { + "url": "https://github.com/jonschlinkert/fill-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "devDependencies": { + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "array", + "bash", + "brace", + "expand", + "expansion", + "fill", + "glob", + "match", + "matches", + "matching", + "number", + "numerical", + "range", + "ranges", + "regex", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/fraction.js/LICENSE b/node_modules/fraction.js/LICENSE new file mode 100644 index 0000000..49057d3 --- /dev/null +++ b/node_modules/fraction.js/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Robert Eisele + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/fraction.js/README.md b/node_modules/fraction.js/README.md new file mode 100644 index 0000000..8ae1963 --- /dev/null +++ b/node_modules/fraction.js/README.md @@ -0,0 +1,492 @@ +# Fraction.js - ℚ in JavaScript + +[![NPM Package](https://nodei.co/npm-dl/fraction.js.png?months=6&height=1)](https://npmjs.org/package/fraction.js) + +[![Build Status](https://travis-ci.org/infusion/Fraction.js.svg?branch=master)](https://travis-ci.org/infusion/Fraction.js) +[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT) + + +Tired of inprecise numbers represented by doubles, which have to store rational and irrational numbers like PI or sqrt(2) the same way? Obviously the following problem is preventable: + +```javascript +1 / 98 * 98 // = 0.9999999999999999 +``` + +If you need more precision or just want a fraction as a result, have a look at *Fraction.js*: + +```javascript +var Fraction = require('fraction.js'); + +Fraction(1).div(98).mul(98) // = 1 +``` + +Internally, numbers are represented as *numerator / denominator*, which adds just a little overhead. However, the library is written with performance in mind and outperforms any other implementation, as you can see [here](http://jsperf.com/convert-a-rational-number-to-a-babylonian-fractions/28). This basic data-type makes it the perfect basis for [Polynomial.js](https://github.com/infusion/Polynomial.js) and [Math.js](https://github.com/josdejong/mathjs). + +Convert decimal to fraction +=== +The simplest job for fraction.js is to get a fraction out of a decimal: +```javascript +var x = new Fraction(1.88); +var res = x.toFraction(true); // String "1 22/25" +``` + +Examples / Motivation +=== +A simple example might be + +```javascript +var f = new Fraction("9.4'31'"); // 9.4313131313131... +f.mul([-4, 3]).mod("4.'8'"); // 4.88888888888888... +``` +The result is + +```javascript +console.log(f.toFraction()); // -4154 / 1485 +``` +You could of course also access the sign (s), numerator (n) and denominator (d) on your own: +```javascript +f.s * f.n / f.d = -1 * 4154 / 1485 = -2.797306... +``` + +If you would try to calculate it yourself, you would come up with something like: + +```javascript +(9.4313131 * (-4 / 3)) % 4.888888 = -2.797308133... +``` + +Quite okay, but yea - not as accurate as it could be. + + +Laplace Probability +=== +Simple example. What's the probability of throwing a 3, and 1 or 4, and 2 or 4 or 6 with a fair dice? + +P({3}): +```javascript +var p = new Fraction([3].length, 6).toString(); // 0.1(6) +``` + +P({1, 4}): +```javascript +var p = new Fraction([1, 4].length, 6).toString(); // 0.(3) +``` + +P({2, 4, 6}): +```javascript +var p = new Fraction([2, 4, 6].length, 6).toString(); // 0.5 +``` + +Convert degrees/minutes/seconds to precise rational representation: +=== + +57+45/60+17/3600 +```javascript +var deg = 57; // 57° +var min = 45; // 45 Minutes +var sec = 17; // 17 Seconds + +new Fraction(deg).add(min, 60).add(sec, 3600).toString() // -> 57.7547(2) +``` + +Rounding a fraction to the closest tape measure value +=== + +A tape measure is usually divided in parts of `1/16`. Rounding a given fraction to the closest value on a tape measure can be determined by + +```javascript +function closestTapeMeasure(frac) { + + /* + k/16 ≤ a/b < (k+1)/16 + ⇔ k ≤ 16*a/b < (k+1) + ⇔ k = floor(16*a/b) + */ + return new Fraction(Math.round(16 * Fraction(frac).valueOf()), 16); +} +// closestTapeMeasure("1/3") // 5/16 +``` + +Rational approximation of irrational numbers +=== + +Now it's getting messy ;d To approximate a number like *sqrt(5) - 2* with a numerator and denominator, you can reformat the equation as follows: *pow(n / d + 2, 2) = 5*. + +Then the following algorithm will generate the rational number besides the binary representation. + +```javascript +var x = "/", s = ""; + +var a = new Fraction(0), + b = new Fraction(1); +for (var n = 0; n <= 10; n++) { + + var c = a.add(b).div(2); + + console.log(n + "\t" + a + "\t" + b + "\t" + c + "\t" + x); + + if (c.add(2).pow(2) < 5) { + a = c; + x = "1"; + } else { + b = c; + x = "0"; + } + s+= x; +} +console.log(s) +``` + +The result is + +``` +n a[n] b[n] c[n] x[n] +0 0/1 1/1 1/2 / +1 0/1 1/2 1/4 0 +2 0/1 1/4 1/8 0 +3 1/8 1/4 3/16 1 +4 3/16 1/4 7/32 1 +5 7/32 1/4 15/64 1 +6 15/64 1/4 31/128 1 +7 15/64 31/128 61/256 0 +8 15/64 61/256 121/512 0 +9 15/64 121/512 241/1024 0 +10 241/1024 121/512 483/2048 1 +``` +Thus the approximation after 11 iterations of the bisection method is *483 / 2048* and the binary representation is 0.00111100011 (see [WolframAlpha](http://www.wolframalpha.com/input/?i=sqrt%285%29-2+binary)) + + +I published another example on how to approximate PI with fraction.js on my [blog](http://www.xarg.org/2014/03/precise-calculations-in-javascript/) (Still not the best idea to approximate irrational numbers, but it illustrates the capabilities of Fraction.js perfectly). + + +Get the exact fractional part of a number +--- +```javascript +var f = new Fraction("-6.(3416)"); +console.log("" + f.mod(1).abs()); // Will print 0.(3416) +``` + +Mathematical correct modulo +--- +The behaviour on negative congruences is different to most modulo implementations in computer science. Even the *mod()* function of Fraction.js behaves in the typical way. To solve the problem of having the mathematical correct modulo with Fraction.js you could come up with this: + +```javascript +var a = -1; +var b = 10.99; + +console.log(new Fraction(a) + .mod(b)); // Not correct, usual Modulo + +console.log(new Fraction(a) + .mod(b).add(b).mod(b)); // Correct! Mathematical Modulo +``` + +fmod() impreciseness circumvented +--- +It turns out that Fraction.js outperforms almost any fmod() implementation, including JavaScript itself, [php.js](http://phpjs.org/functions/fmod/), C++, Python, Java and even Wolframalpha due to the fact that numbers like 0.05, 0.1, ... are infinite decimal in base 2. + +The equation *fmod(4.55, 0.05)* gives *0.04999999999999957*, wolframalpha says *1/20*. The correct answer should be **zero**, as 0.05 divides 4.55 without any remainder. + + +Parser +=== + +Any function (see below) as well as the constructor of the *Fraction* class parses its input and reduce it to the smallest term. + +You can pass either Arrays, Objects, Integers, Doubles or Strings. + +Arrays / Objects +--- +```javascript +new Fraction(numerator, denominator); +new Fraction([numerator, denominator]); +new Fraction({n: numerator, d: denominator}); +``` + +Integers +--- +```javascript +new Fraction(123); +``` + +Doubles +--- +```javascript +new Fraction(55.4); +``` + +**Note:** If you pass a double as it is, Fraction.js will perform a number analysis based on Farey Sequences. If you concern performance, cache Fraction.js objects and pass arrays/objects. + +The method is really precise, but too large exact numbers, like 1234567.9991829 will result in a wrong approximation. If you want to keep the number as it is, convert it to a string, as the string parser will not perform any further observations. If you have problems with the approximation, in the file `examples/approx.js` is a different approximation algorithm, which might work better in some more specific use-cases. + + +Strings +--- +```javascript +new Fraction("123.45"); +new Fraction("123/45"); // A rational number represented as two decimals, separated by a slash +new Fraction("123:45"); // A rational number represented as two decimals, separated by a colon +new Fraction("4 123/45"); // A rational number represented as a whole number and a fraction +new Fraction("123.'456'"); // Note the quotes, see below! +new Fraction("123.(456)"); // Note the brackets, see below! +new Fraction("123.45'6'"); // Note the quotes, see below! +new Fraction("123.45(6)"); // Note the brackets, see below! +``` + +Two arguments +--- +```javascript +new Fraction(3, 2); // 3/2 = 1.5 +``` + +Repeating decimal places +--- +*Fraction.js* can easily handle repeating decimal places. For example *1/3* is *0.3333...*. There is only one repeating digit. As you can see in the examples above, you can pass a number like *1/3* as "0.'3'" or "0.(3)", which are synonym. There are no tests to parse something like 0.166666666 to 1/6! If you really want to handle this number, wrap around brackets on your own with the function below for example: 0.1(66666666) + +Assume you want to divide 123.32 / 33.6(567). [WolframAlpha](http://www.wolframalpha.com/input/?i=123.32+%2F+%2812453%2F370%29) states that you'll get a period of 1776 digits. *Fraction.js* comes to the same result. Give it a try: + +```javascript +var f = new Fraction("123.32"); +console.log("Bam: " + f.div("33.6(567)")); +``` + +To automatically make a number like "0.123123123" to something more Fraction.js friendly like "0.(123)", I hacked this little brute force algorithm in a 10 minutes. Improvements are welcome... + +```javascript +function formatDecimal(str) { + + var comma, pre, offset, pad, times, repeat; + + if (-1 === (comma = str.indexOf("."))) + return str; + + pre = str.substr(0, comma + 1); + str = str.substr(comma + 1); + + for (var i = 0; i < str.length; i++) { + + offset = str.substr(0, i); + + for (var j = 0; j < 5; j++) { + + pad = str.substr(i, j + 1); + + times = Math.ceil((str.length - offset.length) / pad.length); + + repeat = new Array(times + 1).join(pad); // Silly String.repeat hack + + if (0 === (offset + repeat).indexOf(str)) { + return pre + offset + "(" + pad + ")"; + } + } + } + return null; +} + +var f, x = formatDecimal("13.0123123123"); // = 13.0(123) +if (x !== null) { + f = new Fraction(x); +} +``` + +Attributes +=== + +The Fraction object allows direct access to the numerator, denominator and sign attributes. It is ensured that only the sign-attribute holds sign information so that a sign comparison is only necessary against this attribute. + +```javascript +var f = new Fraction('-1/2'); +console.log(f.n); // Numerator: 1 +console.log(f.d); // Denominator: 2 +console.log(f.s); // Sign: -1 +``` + + +Functions +=== + +Fraction abs() +--- +Returns the actual number without any sign information + +Fraction neg() +--- +Returns the actual number with flipped sign in order to get the additive inverse + +Fraction add(n) +--- +Returns the sum of the actual number and the parameter n + +Fraction sub(n) +--- +Returns the difference of the actual number and the parameter n + +Fraction mul(n) +--- +Returns the product of the actual number and the parameter n + +Fraction div(n) +--- +Returns the quotient of the actual number and the parameter n + +Fraction pow(exp) +--- +Returns the power of the actual number, raised to an possible rational exponent. If the result becomes non-rational the function returns `null`. + +Fraction mod(n) +--- +Returns the modulus (rest of the division) of the actual object and n (this % n). It's a much more precise [fmod()](#fmod-impreciseness-circumvented) if you will. Please note that *mod()* is just like the modulo operator of most programming languages. If you want a mathematical correct modulo, see [here](#mathematical-correct-modulo). + +Fraction mod() +--- +Returns the modulus (rest of the division) of the actual object (numerator mod denominator) + +Fraction gcd(n) +--- +Returns the fractional greatest common divisor + +Fraction lcm(n) +--- +Returns the fractional least common multiple + +Fraction ceil([places=0-16]) +--- +Returns the ceiling of a rational number with Math.ceil + +Fraction floor([places=0-16]) +--- +Returns the floor of a rational number with Math.floor + +Fraction round([places=0-16]) +--- +Returns the rational number rounded with Math.round + +Fraction inverse() +--- +Returns the multiplicative inverse of the actual number (n / d becomes d / n) in order to get the reciprocal + +Fraction simplify([eps=0.001]) +--- +Simplifies the rational number under a certain error threshold. Ex. `0.333` will be `1/3` with `eps=0.001` + +boolean equals(n) +--- +Check if two numbers are equal + +int compare(n) +--- +Compare two numbers. +``` +result < 0: n is greater than actual number +result > 0: n is smaller than actual number +result = 0: n is equal to the actual number +``` + +boolean divisible(n) +--- +Check if two numbers are divisible (n divides this) + +double valueOf() +--- +Returns a decimal representation of the fraction + +String toString([decimalPlaces=15]) +--- +Generates an exact string representation of the actual object. For repeated decimal places all digits are collected within brackets, like `1/3 = "0.(3)"`. For all other numbers, up to `decimalPlaces` significant digits are collected - which includes trailing zeros if the number is getting truncated. However, `1/2 = "0.5"` without trailing zeros of course. + +**Note:** As `valueOf()` and `toString()` are provided, `toString()` is only called implicitly in a real string context. Using the plus-operator like `"123" + new Fraction` will call valueOf(), because JavaScript tries to combine two primitives first and concatenates them later, as string will be the more dominant type. `alert(new Fraction)` or `String(new Fraction)` on the other hand will do what you expect. If you really want to have control, you should call `toString()` or `valueOf()` explicitly! + +String toLatex(excludeWhole=false) +--- +Generates an exact LaTeX representation of the actual object. You can see a [live demo](http://www.xarg.org/2014/03/precise-calculations-in-javascript/) on my blog. + +The optional boolean parameter indicates if you want to exclude the whole part. "1 1/3" instead of "4/3" + +String toFraction(excludeWhole=false) +--- +Gets a string representation of the fraction + +The optional boolean parameter indicates if you want to exclude the whole part. "1 1/3" instead of "4/3" + +Array toContinued() +--- +Gets an array of the fraction represented as a continued fraction. The first element always contains the whole part. + +```javascript +var f = new Fraction('88/33'); +var c = f.toContinued(); // [2, 1, 2] +``` + +Fraction clone() +--- +Creates a copy of the actual Fraction object + + +Exceptions +=== +If a really hard error occurs (parsing error, division by zero), *fraction.js* throws exceptions! Please make sure you handle them correctly. + + + +Installation +=== +Installing fraction.js is as easy as cloning this repo or use one of the following commands: + +``` +bower install fraction.js +``` +or + +``` +npm install fraction.js +``` + +Using Fraction.js with the browser +=== +```html + + +``` + +Using Fraction.js with require.js +=== +```html + + +``` + +Using Fraction.js with TypeScript +=== +```js +import Fraction from "fraction.js"; +console.log(Fraction("123/456")); +``` + +Coding Style +=== +As every library I publish, fraction.js is also built to be as small as possible after compressing it with Google Closure Compiler in advanced mode. Thus the coding style orientates a little on maxing-out the compression rate. Please make sure you keep this style if you plan to extend the library. + + +Precision +=== +Fraction.js tries to circumvent floating point errors, by having an internal representation of numerator and denominator. As it relies on JavaScript, there is also a limit. The biggest number representable is `Number.MAX_SAFE_INTEGER / 1` and the smallest is `-1 / Number.MAX_SAFE_INTEGER`, with `Number.MAX_SAFE_INTEGER=9007199254740991`. If this is not enough, there is `bigfraction.js` shipped experimentally, which relies on `BigInt` and should become the new Fraction.js eventually. + +Testing +=== +If you plan to enhance the library, make sure you add test cases and all the previous tests are passing. You can test the library with + +``` +npm test +``` + + +Copyright and licensing +=== +Copyright (c) 2014-2019, [Robert Eisele](https://www.xarg.org/) +Dual licensed under the MIT or GPL Version 2 licenses. diff --git a/node_modules/fraction.js/bigfraction.js b/node_modules/fraction.js/bigfraction.js new file mode 100644 index 0000000..2e504d7 --- /dev/null +++ b/node_modules/fraction.js/bigfraction.js @@ -0,0 +1,895 @@ +/** + * @license Fraction.js v4.2.0 23/05/2021 + * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2021, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/ + + +/** + * + * This class offers the possibility to calculate fractions. + * You can pass a fraction in different formats. Either as array, as double, as string or as an integer. + * + * Array/Object form + * [ 0 => , 1 => ] + * [ n => , d => ] + * + * Integer form + * - Single integer value + * + * Double form + * - Single double value + * + * String form + * 123.456 - a simple double + * 123/456 - a string fraction + * 123.'456' - a double with repeating decimal places + * 123.(456) - synonym + * 123.45'6' - a double with repeating last place + * 123.45(6) - synonym + * + * Example: + * + * let f = new Fraction("9.4'31'"); + * f.mul([-4, 3]).div(4.9); + * + */ + +(function(root) { + + "use strict"; + + // Set Identity function to downgrade BigInt to Number if needed + if (!BigInt) BigInt = function(n) { if (isNaN(n)) throw new Error(""); return n; }; + + const C_ONE = BigInt(1); + const C_ZERO = BigInt(0); + const C_TEN = BigInt(10); + const C_TWO = BigInt(2); + const C_FIVE = BigInt(5); + + // Maximum search depth for cyclic rational numbers. 2000 should be more than enough. + // Example: 1/7 = 0.(142857) has 6 repeating decimal places. + // If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits + const MAX_CYCLE_LEN = 2000; + + // Parsed data to avoid calling "new" all the time + const P = { + "s": C_ONE, + "n": C_ZERO, + "d": C_ONE + }; + + function assign(n, s) { + + try { + n = BigInt(n); + } catch (e) { + throw Fraction['InvalidParameter']; + } + return n * s; + } + + // Creates a new Fraction internally without the need of the bulky constructor + function newFraction(n, d) { + + if (d === C_ZERO) { + throw Fraction['DivisionByZero']; + } + + const f = Object.create(Fraction.prototype); + f["s"] = n < C_ZERO ? -C_ONE : C_ONE; + + n = n < C_ZERO ? -n : n; + + const a = gcd(n, d); + + f["n"] = n / a; + f["d"] = d / a; + return f; + } + + function factorize(num) { + + const factors = {}; + + let n = num; + let i = C_TWO; + let s = C_FIVE - C_ONE; + + while (s <= n) { + + while (n % i === C_ZERO) { + n/= i; + factors[i] = (factors[i] || C_ZERO) + C_ONE; + } + s+= C_ONE + C_TWO * i++; + } + + if (n !== num) { + if (n > 1) + factors[n] = (factors[n] || C_ZERO) + C_ONE; + } else { + factors[num] = (factors[num] || C_ZERO) + C_ONE; + } + return factors; + } + + const parse = function(p1, p2) { + + let n = C_ZERO, d = C_ONE, s = C_ONE; + + if (p1 === undefined || p1 === null) { + /* void */ + } else if (p2 !== undefined) { + n = BigInt(p1); + d = BigInt(p2); + s = n * d; + + if (n % C_ONE !== C_ZERO || d % C_ONE !== C_ZERO) { + throw Fraction['NonIntegerParameter']; + } + + } else if (typeof p1 === "object") { + if ("d" in p1 && "n" in p1) { + n = BigInt(p1["n"]); + d = BigInt(p1["d"]); + if ("s" in p1) + n*= BigInt(p1["s"]); + } else if (0 in p1) { + n = BigInt(p1[0]); + if (1 in p1) + d = BigInt(p1[1]); + } else if (p1 instanceof BigInt) { + n = BigInt(p1); + } else { + throw Fraction['InvalidParameter']; + } + s = n * d; + } else if (typeof p1 === "bigint") { + n = p1; + s = p1; + d = BigInt(1); + } else if (typeof p1 === "number") { + + if (isNaN(p1)) { + throw Fraction['InvalidParameter']; + } + + if (p1 < 0) { + s = -C_ONE; + p1 = -p1; + } + + if (p1 % 1 === 0) { + n = BigInt(p1); + } else if (p1 > 0) { // check for != 0, scale would become NaN (log(0)), which converges really slow + + let z = 1; + + let A = 0, B = 1; + let C = 1, D = 1; + + let N = 10000000; + + if (p1 >= 1) { + z = 10 ** Math.floor(1 + Math.log10(p1)); + p1/= z; + } + + // Using Farey Sequences + + while (B <= N && D <= N) { + let M = (A + C) / (B + D); + + if (p1 === M) { + if (B + D <= N) { + n = A + C; + d = B + D; + } else if (D > B) { + n = C; + d = D; + } else { + n = A; + d = B; + } + break; + + } else { + + if (p1 > M) { + A+= C; + B+= D; + } else { + C+= A; + D+= B; + } + + if (B > N) { + n = C; + d = D; + } else { + n = A; + d = B; + } + } + } + n = BigInt(n) * BigInt(z); + d = BigInt(d); + + } + + } else if (typeof p1 === "string") { + + let ndx = 0; + + let v = C_ZERO, w = C_ZERO, x = C_ZERO, y = C_ONE, z = C_ONE; + + let match = p1.match(/\d+|./g); + + if (match === null) + throw Fraction['InvalidParameter']; + + if (match[ndx] === '-') {// Check for minus sign at the beginning + s = -C_ONE; + ndx++; + } else if (match[ndx] === '+') {// Check for plus sign at the beginning + ndx++; + } + + if (match.length === ndx + 1) { // Check if it's just a simple number "1234" + w = assign(match[ndx++], s); + } else if (match[ndx + 1] === '.' || match[ndx] === '.') { // Check if it's a decimal number + + if (match[ndx] !== '.') { // Handle 0.5 and .5 + v = assign(match[ndx++], s); + } + ndx++; + + // Check for decimal places + if (ndx + 1 === match.length || match[ndx + 1] === '(' && match[ndx + 3] === ')' || match[ndx + 1] === "'" && match[ndx + 3] === "'") { + w = assign(match[ndx], s); + y = C_TEN ** BigInt(match[ndx].length); + ndx++; + } + + // Check for repeating places + if (match[ndx] === '(' && match[ndx + 2] === ')' || match[ndx] === "'" && match[ndx + 2] === "'") { + x = assign(match[ndx + 1], s); + z = C_TEN ** BigInt(match[ndx + 1].length) - C_ONE; + ndx+= 3; + } + + } else if (match[ndx + 1] === '/' || match[ndx + 1] === ':') { // Check for a simple fraction "123/456" or "123:456" + w = assign(match[ndx], s); + y = assign(match[ndx + 2], C_ONE); + ndx+= 3; + } else if (match[ndx + 3] === '/' && match[ndx + 1] === ' ') { // Check for a complex fraction "123 1/2" + v = assign(match[ndx], s); + w = assign(match[ndx + 2], s); + y = assign(match[ndx + 4], C_ONE); + ndx+= 5; + } + + if (match.length <= ndx) { // Check for more tokens on the stack + d = y * z; + s = /* void */ + n = x + d * v + z * w; + } else { + throw Fraction['InvalidParameter']; + } + + } else { + throw Fraction['InvalidParameter']; + } + + if (d === C_ZERO) { + throw Fraction['DivisionByZero']; + } + + P["s"] = s < C_ZERO ? -C_ONE : C_ONE; + P["n"] = n < C_ZERO ? -n : n; + P["d"] = d < C_ZERO ? -d : d; + }; + + function modpow(b, e, m) { + + let r = C_ONE; + for (; e > C_ZERO; b = (b * b) % m, e >>= C_ONE) { + + if (e & C_ONE) { + r = (r * b) % m; + } + } + return r; + } + + function cycleLen(n, d) { + + for (; d % C_TWO === C_ZERO; + d/= C_TWO) { + } + + for (; d % C_FIVE === C_ZERO; + d/= C_FIVE) { + } + + if (d === C_ONE) // Catch non-cyclic numbers + return C_ZERO; + + // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem: + // 10^(d-1) % d == 1 + // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone, + // as we want to translate the numbers to strings. + + let rem = C_TEN % d; + let t = 1; + + for (; rem !== C_ONE; t++) { + rem = rem * C_TEN % d; + + if (t > MAX_CYCLE_LEN) + return C_ZERO; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1` + } + return BigInt(t); + } + + function cycleStart(n, d, len) { + + let rem1 = C_ONE; + let rem2 = modpow(C_TEN, len, d); + + for (let t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE) + // Solve 10^s == 10^(s+t) (mod d) + + if (rem1 === rem2) + return BigInt(t); + + rem1 = rem1 * C_TEN % d; + rem2 = rem2 * C_TEN % d; + } + return 0; + } + + function gcd(a, b) { + + if (!a) + return b; + if (!b) + return a; + + while (1) { + a%= b; + if (!a) + return b; + b%= a; + if (!b) + return a; + } + } + + /** + * Module constructor + * + * @constructor + * @param {number|Fraction=} a + * @param {number=} b + */ + function Fraction(a, b) { + + parse(a, b); + + if (this instanceof Fraction) { + a = gcd(P["d"], P["n"]); // Abuse a + this["s"] = P["s"]; + this["n"] = P["n"] / a; + this["d"] = P["d"] / a; + } else { + return newFraction(P['s'] * P['n'], P['d']); + } + } + + Fraction['DivisionByZero'] = new Error("Division by Zero"); + Fraction['InvalidParameter'] = new Error("Invalid argument"); + Fraction['NonIntegerParameter'] = new Error("Parameters must be integer"); + + Fraction.prototype = { + + "s": C_ONE, + "n": C_ZERO, + "d": C_ONE, + + /** + * Calculates the absolute value + * + * Ex: new Fraction(-4).abs() => 4 + **/ + "abs": function() { + + return newFraction(this["n"], this["d"]); + }, + + /** + * Inverts the sign of the current fraction + * + * Ex: new Fraction(-4).neg() => 4 + **/ + "neg": function() { + + return newFraction(-this["s"] * this["n"], this["d"]); + }, + + /** + * Adds two rational numbers + * + * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30 + **/ + "add": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * this["n"] * P["d"] + P["s"] * this["d"] * P["n"], + this["d"] * P["d"] + ); + }, + + /** + * Subtracts two rational numbers + * + * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30 + **/ + "sub": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * this["n"] * P["d"] - P["s"] * this["d"] * P["n"], + this["d"] * P["d"] + ); + }, + + /** + * Multiplies two rational numbers + * + * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111 + **/ + "mul": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * P["s"] * this["n"] * P["n"], + this["d"] * P["d"] + ); + }, + + /** + * Divides two rational numbers + * + * Ex: new Fraction("-17.(345)").inverse().div(3) + **/ + "div": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * P["s"] * this["n"] * P["d"], + this["d"] * P["n"] + ); + }, + + /** + * Clones the actual object + * + * Ex: new Fraction("-17.(345)").clone() + **/ + "clone": function() { + return newFraction(this['s'] * this['n'], this['d']); + }, + + /** + * Calculates the modulo of two rational numbers - a more precise fmod + * + * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6) + **/ + "mod": function(a, b) { + + if (a === undefined) { + return newFraction(this["s"] * this["n"] % this["d"], C_ONE); + } + + parse(a, b); + if (0 === P["n"] && 0 === this["d"]) { + throw Fraction['DivisionByZero']; + } + + /* + * First silly attempt, kinda slow + * + return that["sub"]({ + "n": num["n"] * Math.floor((this.n / this.d) / (num.n / num.d)), + "d": num["d"], + "s": this["s"] + });*/ + + /* + * New attempt: a1 / b1 = a2 / b2 * q + r + * => b2 * a1 = a2 * b1 * q + b1 * b2 * r + * => (b2 * a1 % a2 * b1) / (b1 * b2) + */ + return newFraction( + this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]), + P["d"] * this["d"] + ); + }, + + /** + * Calculates the fractional gcd of two rational numbers + * + * Ex: new Fraction(5,8).gcd(3,7) => 1/56 + */ + "gcd": function(a, b) { + + parse(a, b); + + // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d) + + return newFraction(gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]), P["d"] * this["d"]); + }, + + /** + * Calculates the fractional lcm of two rational numbers + * + * Ex: new Fraction(5,8).lcm(3,7) => 15 + */ + "lcm": function(a, b) { + + parse(a, b); + + // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d) + + if (P["n"] === C_ZERO && this["n"] === C_ZERO) { + return newFraction(C_ZERO, C_ONE); + } + return newFraction(P["n"] * this["n"], gcd(P["n"], this["n"]) * gcd(P["d"], this["d"])); + }, + + /** + * Gets the inverse of the fraction, means numerator and denominator are exchanged + * + * Ex: new Fraction([-3, 4]).inverse() => -4 / 3 + **/ + "inverse": function() { + return newFraction(this["s"] * this["d"], this["n"]); + }, + + /** + * Calculates the fraction to some integer exponent + * + * Ex: new Fraction(-1,2).pow(-3) => -8 + */ + "pow": function(a, b) { + + parse(a, b); + + // Trivial case when exp is an integer + + if (P['d'] === C_ONE) { + + if (P['s'] < C_ZERO) { + return newFraction((this['s'] * this["d"]) ** P['n'], this["n"] ** P['n']); + } else { + return newFraction((this['s'] * this["n"]) ** P['n'], this["d"] ** P['n']); + } + } + + // Negative roots become complex + // (-a/b)^(c/d) = x + // <=> (-1)^(c/d) * (a/b)^(c/d) = x + // <=> (cos(pi) + i*sin(pi))^(c/d) * (a/b)^(c/d) = x + // <=> (cos(c*pi/d) + i*sin(c*pi/d)) * (a/b)^(c/d) = x # DeMoivre's formula + // From which follows that only for c=0 the root is non-complex + if (this['s'] < C_ZERO) return null; + + // Now prime factor n and d + let N = factorize(this['n']); + let D = factorize(this['d']); + + // Exponentiate and take root for n and d individually + let n = C_ONE; + let d = C_ONE; + for (let k in N) { + if (k === '1') continue; + if (k === '0') { + n = C_ZERO; + break; + } + N[k]*= P['n']; + + if (N[k] % P['d'] === C_ZERO) { + N[k]/= P['d']; + } else return null; + n*= BigInt(k) ** N[k]; + } + + for (let k in D) { + if (k === '1') continue; + D[k]*= P['n']; + + if (D[k] % P['d'] === C_ZERO) { + D[k]/= P['d']; + } else return null; + d*= BigInt(k) ** D[k]; + } + + if (P['s'] < C_ZERO) { + return newFraction(d, n); + } + return newFraction(n, d); + }, + + /** + * Check if two rational numbers are the same + * + * Ex: new Fraction(19.6).equals([98, 5]); + **/ + "equals": function(a, b) { + + parse(a, b); + return this["s"] * this["n"] * P["d"] === P["s"] * P["n"] * this["d"]; // Same as compare() === 0 + }, + + /** + * Check if two rational numbers are the same + * + * Ex: new Fraction(19.6).equals([98, 5]); + **/ + "compare": function(a, b) { + + parse(a, b); + let t = (this["s"] * this["n"] * P["d"] - P["s"] * P["n"] * this["d"]); + + return (C_ZERO < t) - (t < C_ZERO); + }, + + /** + * Calculates the ceil of a rational number + * + * Ex: new Fraction('4.(3)').ceil() => (5 / 1) + **/ + "ceil": function(places) { + + places = C_TEN ** BigInt(places || 0); + + return newFraction(this["s"] * places * this["n"] / this["d"] + + (places * this["n"] % this["d"] > C_ZERO && this["s"] >= C_ZERO ? C_ONE : C_ZERO), + places); + }, + + /** + * Calculates the floor of a rational number + * + * Ex: new Fraction('4.(3)').floor() => (4 / 1) + **/ + "floor": function(places) { + + places = C_TEN ** BigInt(places || 0); + + return newFraction(this["s"] * places * this["n"] / this["d"] - + (places * this["n"] % this["d"] > C_ZERO && this["s"] < C_ZERO ? C_ONE : C_ZERO), + places); + }, + + /** + * Rounds a rational numbers + * + * Ex: new Fraction('4.(3)').round() => (4 / 1) + **/ + "round": function(places) { + + places = C_TEN ** BigInt(places || 0); + + /* Derivation: + + s >= 0: + round(n / d) = trunc(n / d) + (n % d) / d >= 0.5 ? 1 : 0 + = trunc(n / d) + 2(n % d) >= d ? 1 : 0 + s < 0: + round(n / d) =-trunc(n / d) - (n % d) / d > 0.5 ? 1 : 0 + =-trunc(n / d) - 2(n % d) > d ? 1 : 0 + + =>: + + round(s * n / d) = s * trunc(n / d) + s * (C + 2(n % d) > d ? 1 : 0) + where C = s >= 0 ? 1 : 0, to fix the >= for the positve case. + */ + + return newFraction(this["s"] * places * this["n"] / this["d"] + + this["s"] * ((this["s"] >= C_ZERO ? C_ONE : C_ZERO) + C_TWO * (places * this["n"] % this["d"]) > this["d"] ? C_ONE : C_ZERO), + places); + }, + + /** + * Check if two rational numbers are divisible + * + * Ex: new Fraction(19.6).divisible(1.5); + */ + "divisible": function(a, b) { + + parse(a, b); + return !(!(P["n"] * this["d"]) || ((this["n"] * P["d"]) % (P["n"] * this["d"]))); + }, + + /** + * Returns a decimal representation of the fraction + * + * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183 + **/ + 'valueOf': function() { + // Best we can do so far + return Number(this["s"] * this["n"]) / Number(this["d"]); + }, + + /** + * Creates a string representation of a fraction with all digits + * + * Ex: new Fraction("100.'91823'").toString() => "100.(91823)" + **/ + 'toString': function(dec) { + + let N = this["n"]; + let D = this["d"]; + + dec = dec || 15; // 15 = decimal places when no repitation + + let cycLen = cycleLen(N, D); // Cycle length + let cycOff = cycleStart(N, D, cycLen); // Cycle start + + let str = this['s'] < C_ZERO ? "-" : ""; + + // Append integer part + str+= N / D; + + N%= D; + N*= C_TEN; + + if (N) + str+= "."; + + if (cycLen) { + + for (let i = cycOff; i--;) { + str+= N / D; + N%= D; + N*= C_TEN; + } + str+= "("; + for (let i = cycLen; i--;) { + str+= N / D; + N%= D; + N*= C_TEN; + } + str+= ")"; + } else { + for (let i = dec; N && i--;) { + str+= N / D; + N%= D; + N*= C_TEN; + } + } + return str; + }, + + /** + * Returns a string-fraction representation of a Fraction object + * + * Ex: new Fraction("1.'3'").toFraction() => "4 1/3" + **/ + 'toFraction': function(excludeWhole) { + + let n = this["n"]; + let d = this["d"]; + let str = this['s'] < C_ZERO ? "-" : ""; + + if (d === C_ONE) { + str+= n; + } else { + let whole = n / d; + if (excludeWhole && whole > C_ZERO) { + str+= whole; + str+= " "; + n%= d; + } + + str+= n; + str+= '/'; + str+= d; + } + return str; + }, + + /** + * Returns a latex representation of a Fraction object + * + * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}" + **/ + 'toLatex': function(excludeWhole) { + + let n = this["n"]; + let d = this["d"]; + let str = this['s'] < C_ZERO ? "-" : ""; + + if (d === C_ONE) { + str+= n; + } else { + let whole = n / d; + if (excludeWhole && whole > C_ZERO) { + str+= whole; + n%= d; + } + + str+= "\\frac{"; + str+= n; + str+= '}{'; + str+= d; + str+= '}'; + } + return str; + }, + + /** + * Returns an array of continued fraction elements + * + * Ex: new Fraction("7/8").toContinued() => [0,1,7] + */ + 'toContinued': function() { + + let a = this['n']; + let b = this['d']; + let res = []; + + do { + res.push(a / b); + let t = a % b; + a = b; + b = t; + } while (a !== C_ONE); + + return res; + }, + + "simplify": function(eps) { + + eps = eps || 0.001; + + const thisABS = this['abs'](); + const cont = thisABS['toContinued'](); + + for (let i = 1; i < cont.length; i++) { + + let s = newFraction(cont[i - 1], C_ONE); + for (let k = i - 2; k >= 0; k--) { + s = s['inverse']()['add'](cont[k]); + } + + if (s['sub'](thisABS)['abs']().valueOf() < eps) { + return s['mul'](this['s']); + } + } + return this; + } + }; + + if (typeof define === "function" && define["amd"]) { + define([], function() { + return Fraction; + }); + } else if (typeof exports === "object") { + Object.defineProperty(exports, "__esModule", { 'value': true }); + Fraction['default'] = Fraction; + Fraction['Fraction'] = Fraction; + module['exports'] = Fraction; + } else { + root['Fraction'] = Fraction; + } + +})(this); diff --git a/node_modules/fraction.js/fraction.d.ts b/node_modules/fraction.js/fraction.d.ts new file mode 100644 index 0000000..e62cfe1 --- /dev/null +++ b/node_modules/fraction.js/fraction.d.ts @@ -0,0 +1,60 @@ +declare module 'Fraction'; + +export interface NumeratorDenominator { + n: number; + d: number; +} + +type FractionConstructor = { + (fraction: Fraction): Fraction; + (num: number | string): Fraction; + (numerator: number, denominator: number): Fraction; + (numbers: [number | string, number | string]): Fraction; + (fraction: NumeratorDenominator): Fraction; + (firstValue: Fraction | number | string | [number | string, number | string] | NumeratorDenominator, secondValue?: number): Fraction; +}; + +export default class Fraction { + constructor (fraction: Fraction); + constructor (num: number | string); + constructor (numerator: number, denominator: number); + constructor (numbers: [number | string, number | string]); + constructor (fraction: NumeratorDenominator); + constructor (firstValue: Fraction | number | string | [number | string, number | string] | NumeratorDenominator, secondValue?: number); + + s: number; + n: number; + d: number; + + abs(): Fraction; + neg(): Fraction; + + add: FractionConstructor; + sub: FractionConstructor; + mul: FractionConstructor; + div: FractionConstructor; + pow: FractionConstructor; + gcd: FractionConstructor; + lcm: FractionConstructor; + + mod(n?: number | string | Fraction): Fraction; + + ceil(places?: number): Fraction; + floor(places?: number): Fraction; + round(places?: number): Fraction; + + inverse(): Fraction; + + simplify(eps?: number): Fraction; + + equals(n: number | string | Fraction): boolean; + compare(n: number | string | Fraction): number; + divisible(n: number | string | Fraction): boolean; + + valueOf(): number; + toString(decimalPlaces?: number): string; + toLatex(excludeWhole?: boolean): string; + toFraction(excludeWhole?: boolean): string; + toContinued(): number[]; + clone(): Fraction; +} diff --git a/node_modules/fraction.js/fraction.js b/node_modules/fraction.js/fraction.js new file mode 100644 index 0000000..82d05d2 --- /dev/null +++ b/node_modules/fraction.js/fraction.js @@ -0,0 +1,891 @@ +/** + * @license Fraction.js v4.2.0 05/03/2022 + * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2021, Robert Eisele (robert@xarg.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/ + + +/** + * + * This class offers the possibility to calculate fractions. + * You can pass a fraction in different formats. Either as array, as double, as string or as an integer. + * + * Array/Object form + * [ 0 => , 1 => ] + * [ n => , d => ] + * + * Integer form + * - Single integer value + * + * Double form + * - Single double value + * + * String form + * 123.456 - a simple double + * 123/456 - a string fraction + * 123.'456' - a double with repeating decimal places + * 123.(456) - synonym + * 123.45'6' - a double with repeating last place + * 123.45(6) - synonym + * + * Example: + * + * var f = new Fraction("9.4'31'"); + * f.mul([-4, 3]).div(4.9); + * + */ + +(function(root) { + + "use strict"; + + // Maximum search depth for cyclic rational numbers. 2000 should be more than enough. + // Example: 1/7 = 0.(142857) has 6 repeating decimal places. + // If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits + var MAX_CYCLE_LEN = 2000; + + // Parsed data to avoid calling "new" all the time + var P = { + "s": 1, + "n": 0, + "d": 1 + }; + + function assign(n, s) { + + if (isNaN(n = parseInt(n, 10))) { + throw Fraction['InvalidParameter']; + } + return n * s; + } + + // Creates a new Fraction internally without the need of the bulky constructor + function newFraction(n, d) { + + if (d === 0) { + throw Fraction['DivisionByZero']; + } + + var f = Object.create(Fraction.prototype); + f["s"] = n < 0 ? -1 : 1; + + n = n < 0 ? -n : n; + + var a = gcd(n, d); + + f["n"] = n / a; + f["d"] = d / a; + return f; + } + + function factorize(num) { + + var factors = {}; + + var n = num; + var i = 2; + var s = 4; + + while (s <= n) { + + while (n % i === 0) { + n/= i; + factors[i] = (factors[i] || 0) + 1; + } + s+= 1 + 2 * i++; + } + + if (n !== num) { + if (n > 1) + factors[n] = (factors[n] || 0) + 1; + } else { + factors[num] = (factors[num] || 0) + 1; + } + return factors; + } + + var parse = function(p1, p2) { + + var n = 0, d = 1, s = 1; + var v = 0, w = 0, x = 0, y = 1, z = 1; + + var A = 0, B = 1; + var C = 1, D = 1; + + var N = 10000000; + var M; + + if (p1 === undefined || p1 === null) { + /* void */ + } else if (p2 !== undefined) { + n = p1; + d = p2; + s = n * d; + + if (n % 1 !== 0 || d % 1 !== 0) { + throw Fraction['NonIntegerParameter']; + } + + } else + switch (typeof p1) { + + case "object": + { + if ("d" in p1 && "n" in p1) { + n = p1["n"]; + d = p1["d"]; + if ("s" in p1) + n*= p1["s"]; + } else if (0 in p1) { + n = p1[0]; + if (1 in p1) + d = p1[1]; + } else { + throw Fraction['InvalidParameter']; + } + s = n * d; + break; + } + case "number": + { + if (p1 < 0) { + s = p1; + p1 = -p1; + } + + if (p1 % 1 === 0) { + n = p1; + } else if (p1 > 0) { // check for != 0, scale would become NaN (log(0)), which converges really slow + + if (p1 >= 1) { + z = Math.pow(10, Math.floor(1 + Math.log(p1) / Math.LN10)); + p1/= z; + } + + // Using Farey Sequences + // http://www.johndcook.com/blog/2010/10/20/best-rational-approximation/ + + while (B <= N && D <= N) { + M = (A + C) / (B + D); + + if (p1 === M) { + if (B + D <= N) { + n = A + C; + d = B + D; + } else if (D > B) { + n = C; + d = D; + } else { + n = A; + d = B; + } + break; + + } else { + + if (p1 > M) { + A+= C; + B+= D; + } else { + C+= A; + D+= B; + } + + if (B > N) { + n = C; + d = D; + } else { + n = A; + d = B; + } + } + } + n*= z; + } else if (isNaN(p1) || isNaN(p2)) { + d = n = NaN; + } + break; + } + case "string": + { + B = p1.match(/\d+|./g); + + if (B === null) + throw Fraction['InvalidParameter']; + + if (B[A] === '-') {// Check for minus sign at the beginning + s = -1; + A++; + } else if (B[A] === '+') {// Check for plus sign at the beginning + A++; + } + + if (B.length === A + 1) { // Check if it's just a simple number "1234" + w = assign(B[A++], s); + } else if (B[A + 1] === '.' || B[A] === '.') { // Check if it's a decimal number + + if (B[A] !== '.') { // Handle 0.5 and .5 + v = assign(B[A++], s); + } + A++; + + // Check for decimal places + if (A + 1 === B.length || B[A + 1] === '(' && B[A + 3] === ')' || B[A + 1] === "'" && B[A + 3] === "'") { + w = assign(B[A], s); + y = Math.pow(10, B[A].length); + A++; + } + + // Check for repeating places + if (B[A] === '(' && B[A + 2] === ')' || B[A] === "'" && B[A + 2] === "'") { + x = assign(B[A + 1], s); + z = Math.pow(10, B[A + 1].length) - 1; + A+= 3; + } + + } else if (B[A + 1] === '/' || B[A + 1] === ':') { // Check for a simple fraction "123/456" or "123:456" + w = assign(B[A], s); + y = assign(B[A + 2], 1); + A+= 3; + } else if (B[A + 3] === '/' && B[A + 1] === ' ') { // Check for a complex fraction "123 1/2" + v = assign(B[A], s); + w = assign(B[A + 2], s); + y = assign(B[A + 4], 1); + A+= 5; + } + + if (B.length <= A) { // Check for more tokens on the stack + d = y * z; + s = /* void */ + n = x + d * v + z * w; + break; + } + + /* Fall through on error */ + } + default: + throw Fraction['InvalidParameter']; + } + + if (d === 0) { + throw Fraction['DivisionByZero']; + } + + P["s"] = s < 0 ? -1 : 1; + P["n"] = Math.abs(n); + P["d"] = Math.abs(d); + }; + + function modpow(b, e, m) { + + var r = 1; + for (; e > 0; b = (b * b) % m, e >>= 1) { + + if (e & 1) { + r = (r * b) % m; + } + } + return r; + } + + + function cycleLen(n, d) { + + for (; d % 2 === 0; + d/= 2) { + } + + for (; d % 5 === 0; + d/= 5) { + } + + if (d === 1) // Catch non-cyclic numbers + return 0; + + // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem: + // 10^(d-1) % d == 1 + // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone, + // as we want to translate the numbers to strings. + + var rem = 10 % d; + var t = 1; + + for (; rem !== 1; t++) { + rem = rem * 10 % d; + + if (t > MAX_CYCLE_LEN) + return 0; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1` + } + return t; + } + + + function cycleStart(n, d, len) { + + var rem1 = 1; + var rem2 = modpow(10, len, d); + + for (var t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE) + // Solve 10^s == 10^(s+t) (mod d) + + if (rem1 === rem2) + return t; + + rem1 = rem1 * 10 % d; + rem2 = rem2 * 10 % d; + } + return 0; + } + + function gcd(a, b) { + + if (!a) + return b; + if (!b) + return a; + + while (1) { + a%= b; + if (!a) + return b; + b%= a; + if (!b) + return a; + } + }; + + /** + * Module constructor + * + * @constructor + * @param {number|Fraction=} a + * @param {number=} b + */ + function Fraction(a, b) { + + parse(a, b); + + if (this instanceof Fraction) { + a = gcd(P["d"], P["n"]); // Abuse variable a + this["s"] = P["s"]; + this["n"] = P["n"] / a; + this["d"] = P["d"] / a; + } else { + return newFraction(P['s'] * P['n'], P['d']); + } + } + + Fraction['DivisionByZero'] = new Error("Division by Zero"); + Fraction['InvalidParameter'] = new Error("Invalid argument"); + Fraction['NonIntegerParameter'] = new Error("Parameters must be integer"); + + Fraction.prototype = { + + "s": 1, + "n": 0, + "d": 1, + + /** + * Calculates the absolute value + * + * Ex: new Fraction(-4).abs() => 4 + **/ + "abs": function() { + + return newFraction(this["n"], this["d"]); + }, + + /** + * Inverts the sign of the current fraction + * + * Ex: new Fraction(-4).neg() => 4 + **/ + "neg": function() { + + return newFraction(-this["s"] * this["n"], this["d"]); + }, + + /** + * Adds two rational numbers + * + * Ex: new Fraction({n: 2, d: 3}).add("14.9") => 467 / 30 + **/ + "add": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * this["n"] * P["d"] + P["s"] * this["d"] * P["n"], + this["d"] * P["d"] + ); + }, + + /** + * Subtracts two rational numbers + * + * Ex: new Fraction({n: 2, d: 3}).add("14.9") => -427 / 30 + **/ + "sub": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * this["n"] * P["d"] - P["s"] * this["d"] * P["n"], + this["d"] * P["d"] + ); + }, + + /** + * Multiplies two rational numbers + * + * Ex: new Fraction("-17.(345)").mul(3) => 5776 / 111 + **/ + "mul": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * P["s"] * this["n"] * P["n"], + this["d"] * P["d"] + ); + }, + + /** + * Divides two rational numbers + * + * Ex: new Fraction("-17.(345)").inverse().div(3) + **/ + "div": function(a, b) { + + parse(a, b); + return newFraction( + this["s"] * P["s"] * this["n"] * P["d"], + this["d"] * P["n"] + ); + }, + + /** + * Clones the actual object + * + * Ex: new Fraction("-17.(345)").clone() + **/ + "clone": function() { + return newFraction(this['s'] * this['n'], this['d']); + }, + + /** + * Calculates the modulo of two rational numbers - a more precise fmod + * + * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6) + **/ + "mod": function(a, b) { + + if (isNaN(this['n']) || isNaN(this['d'])) { + return new Fraction(NaN); + } + + if (a === undefined) { + return newFraction(this["s"] * this["n"] % this["d"], 1); + } + + parse(a, b); + if (0 === P["n"] && 0 === this["d"]) { + throw Fraction['DivisionByZero']; + } + + /* + * First silly attempt, kinda slow + * + return that["sub"]({ + "n": num["n"] * Math.floor((this.n / this.d) / (num.n / num.d)), + "d": num["d"], + "s": this["s"] + });*/ + + /* + * New attempt: a1 / b1 = a2 / b2 * q + r + * => b2 * a1 = a2 * b1 * q + b1 * b2 * r + * => (b2 * a1 % a2 * b1) / (b1 * b2) + */ + return newFraction( + this["s"] * (P["d"] * this["n"]) % (P["n"] * this["d"]), + P["d"] * this["d"] + ); + }, + + /** + * Calculates the fractional gcd of two rational numbers + * + * Ex: new Fraction(5,8).gcd(3,7) => 1/56 + */ + "gcd": function(a, b) { + + parse(a, b); + + // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d) + + return newFraction(gcd(P["n"], this["n"]) * gcd(P["d"], this["d"]), P["d"] * this["d"]); + }, + + /** + * Calculates the fractional lcm of two rational numbers + * + * Ex: new Fraction(5,8).lcm(3,7) => 15 + */ + "lcm": function(a, b) { + + parse(a, b); + + // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d) + + if (P["n"] === 0 && this["n"] === 0) { + return newFraction(0, 1); + } + return newFraction(P["n"] * this["n"], gcd(P["n"], this["n"]) * gcd(P["d"], this["d"])); + }, + + /** + * Calculates the ceil of a rational number + * + * Ex: new Fraction('4.(3)').ceil() => (5 / 1) + **/ + "ceil": function(places) { + + places = Math.pow(10, places || 0); + + if (isNaN(this["n"]) || isNaN(this["d"])) { + return new Fraction(NaN); + } + return newFraction(Math.ceil(places * this["s"] * this["n"] / this["d"]), places); + }, + + /** + * Calculates the floor of a rational number + * + * Ex: new Fraction('4.(3)').floor() => (4 / 1) + **/ + "floor": function(places) { + + places = Math.pow(10, places || 0); + + if (isNaN(this["n"]) || isNaN(this["d"])) { + return new Fraction(NaN); + } + return newFraction(Math.floor(places * this["s"] * this["n"] / this["d"]), places); + }, + + /** + * Rounds a rational numbers + * + * Ex: new Fraction('4.(3)').round() => (4 / 1) + **/ + "round": function(places) { + + places = Math.pow(10, places || 0); + + if (isNaN(this["n"]) || isNaN(this["d"])) { + return new Fraction(NaN); + } + return newFraction(Math.round(places * this["s"] * this["n"] / this["d"]), places); + }, + + /** + * Gets the inverse of the fraction, means numerator and denominator are exchanged + * + * Ex: new Fraction([-3, 4]).inverse() => -4 / 3 + **/ + "inverse": function() { + + return newFraction(this["s"] * this["d"], this["n"]); + }, + + /** + * Calculates the fraction to some rational exponent, if possible + * + * Ex: new Fraction(-1,2).pow(-3) => -8 + */ + "pow": function(a, b) { + + parse(a, b); + + // Trivial case when exp is an integer + + if (P['d'] === 1) { + + if (P['s'] < 0) { + return newFraction(Math.pow(this['s'] * this["d"], P['n']), Math.pow(this["n"], P['n'])); + } else { + return newFraction(Math.pow(this['s'] * this["n"], P['n']), Math.pow(this["d"], P['n'])); + } + } + + // Negative roots become complex + // (-a/b)^(c/d) = x + // <=> (-1)^(c/d) * (a/b)^(c/d) = x + // <=> (cos(pi) + i*sin(pi))^(c/d) * (a/b)^(c/d) = x # rotate 1 by 180° + // <=> (cos(c*pi/d) + i*sin(c*pi/d)) * (a/b)^(c/d) = x # DeMoivre's formula in Q ( https://proofwiki.org/wiki/De_Moivre%27s_Formula/Rational_Index ) + // From which follows that only for c=0 the root is non-complex. c/d is a reduced fraction, so that sin(c/dpi)=0 occurs for d=1, which is handled by our trivial case. + if (this['s'] < 0) return null; + + // Now prime factor n and d + var N = factorize(this['n']); + var D = factorize(this['d']); + + // Exponentiate and take root for n and d individually + var n = 1; + var d = 1; + for (var k in N) { + if (k === '1') continue; + if (k === '0') { + n = 0; + break; + } + N[k]*= P['n']; + + if (N[k] % P['d'] === 0) { + N[k]/= P['d']; + } else return null; + n*= Math.pow(k, N[k]); + } + + for (var k in D) { + if (k === '1') continue; + D[k]*= P['n']; + + if (D[k] % P['d'] === 0) { + D[k]/= P['d']; + } else return null; + d*= Math.pow(k, D[k]); + } + + if (P['s'] < 0) { + return newFraction(d, n); + } + return newFraction(n, d); + }, + + /** + * Check if two rational numbers are the same + * + * Ex: new Fraction(19.6).equals([98, 5]); + **/ + "equals": function(a, b) { + + parse(a, b); + return this["s"] * this["n"] * P["d"] === P["s"] * P["n"] * this["d"]; // Same as compare() === 0 + }, + + /** + * Check if two rational numbers are the same + * + * Ex: new Fraction(19.6).equals([98, 5]); + **/ + "compare": function(a, b) { + + parse(a, b); + var t = (this["s"] * this["n"] * P["d"] - P["s"] * P["n"] * this["d"]); + return (0 < t) - (t < 0); + }, + + "simplify": function(eps) { + + if (isNaN(this['n']) || isNaN(this['d'])) { + return this; + } + + eps = eps || 0.001; + + var thisABS = this['abs'](); + var cont = thisABS['toContinued'](); + + for (var i = 1; i < cont.length; i++) { + + var s = newFraction(cont[i - 1], 1); + for (var k = i - 2; k >= 0; k--) { + s = s['inverse']()['add'](cont[k]); + } + + if (s['sub'](thisABS)['abs']().valueOf() < eps) { + return s['mul'](this['s']); + } + } + return this; + }, + + /** + * Check if two rational numbers are divisible + * + * Ex: new Fraction(19.6).divisible(1.5); + */ + "divisible": function(a, b) { + + parse(a, b); + return !(!(P["n"] * this["d"]) || ((this["n"] * P["d"]) % (P["n"] * this["d"]))); + }, + + /** + * Returns a decimal representation of the fraction + * + * Ex: new Fraction("100.'91823'").valueOf() => 100.91823918239183 + **/ + 'valueOf': function() { + + return this["s"] * this["n"] / this["d"]; + }, + + /** + * Returns a string-fraction representation of a Fraction object + * + * Ex: new Fraction("1.'3'").toFraction(true) => "4 1/3" + **/ + 'toFraction': function(excludeWhole) { + + var whole, str = ""; + var n = this["n"]; + var d = this["d"]; + if (this["s"] < 0) { + str+= '-'; + } + + if (d === 1) { + str+= n; + } else { + + if (excludeWhole && (whole = Math.floor(n / d)) > 0) { + str+= whole; + str+= " "; + n%= d; + } + + str+= n; + str+= '/'; + str+= d; + } + return str; + }, + + /** + * Returns a latex representation of a Fraction object + * + * Ex: new Fraction("1.'3'").toLatex() => "\frac{4}{3}" + **/ + 'toLatex': function(excludeWhole) { + + var whole, str = ""; + var n = this["n"]; + var d = this["d"]; + if (this["s"] < 0) { + str+= '-'; + } + + if (d === 1) { + str+= n; + } else { + + if (excludeWhole && (whole = Math.floor(n / d)) > 0) { + str+= whole; + n%= d; + } + + str+= "\\frac{"; + str+= n; + str+= '}{'; + str+= d; + str+= '}'; + } + return str; + }, + + /** + * Returns an array of continued fraction elements + * + * Ex: new Fraction("7/8").toContinued() => [0,1,7] + */ + 'toContinued': function() { + + var t; + var a = this['n']; + var b = this['d']; + var res = []; + + if (isNaN(a) || isNaN(b)) { + return res; + } + + do { + res.push(Math.floor(a / b)); + t = a % b; + a = b; + b = t; + } while (a !== 1); + + return res; + }, + + /** + * Creates a string representation of a fraction with all digits + * + * Ex: new Fraction("100.'91823'").toString() => "100.(91823)" + **/ + 'toString': function(dec) { + + var N = this["n"]; + var D = this["d"]; + + if (isNaN(N) || isNaN(D)) { + return "NaN"; + } + + dec = dec || 15; // 15 = decimal places when no repetation + + var cycLen = cycleLen(N, D); // Cycle length + var cycOff = cycleStart(N, D, cycLen); // Cycle start + + var str = this['s'] < 0 ? "-" : ""; + + str+= N / D | 0; + + N%= D; + N*= 10; + + if (N) + str+= "."; + + if (cycLen) { + + for (var i = cycOff; i--;) { + str+= N / D | 0; + N%= D; + N*= 10; + } + str+= "("; + for (var i = cycLen; i--;) { + str+= N / D | 0; + N%= D; + N*= 10; + } + str+= ")"; + } else { + for (var i = dec; N && i--;) { + str+= N / D | 0; + N%= D; + N*= 10; + } + } + return str; + } + }; + + if (typeof define === "function" && define["amd"]) { + define([], function() { + return Fraction; + }); + } else if (typeof exports === "object") { + Object.defineProperty(Fraction, "__esModule", { 'value': true }); + Fraction['default'] = Fraction; + Fraction['Fraction'] = Fraction; + module['exports'] = Fraction; + } else { + root['Fraction'] = Fraction; + } + +})(this); diff --git a/node_modules/fraction.js/fraction.min.js b/node_modules/fraction.js/fraction.min.js new file mode 100644 index 0000000..f0cc9d5 --- /dev/null +++ b/node_modules/fraction.js/fraction.min.js @@ -0,0 +1,19 @@ +/* +Fraction.js v4.2.0 05/03/2022 +https://www.xarg.org/2014/03/rational-numbers-in-javascript/ + +Copyright (c) 2021, Robert Eisele (robert@xarg.org) +Dual licensed under the MIT or GPL Version 2 licenses. +*/ +(function(z){function p(a,c){var b=0,d=1,f=1,l=0,k=0,t=0,x=1,u=1,g=0,h=1,v=1,q=1;if(void 0!==a&&null!==a)if(void 0!==c){if(b=a,d=c,f=b*d,0!==b%1||0!==d%1)throw m.NonIntegerParameter;}else switch(typeof a){case "object":if("d"in a&&"n"in a)b=a.n,d=a.d,"s"in a&&(b*=a.s);else if(0 in a)b=a[0],1 in a&&(d=a[1]);else throw m.InvalidParameter;f=b*d;break;case "number":0>a&&(f=a,a=-a);if(0===a%1)b=a;else if(0=h&&1E7>=q;)if(b=(g+ +v)/(h+q),a===b){1E7>=h+q?(b=g+v,d=h+q):q>h?(b=v,d=q):(b=g,d=h);break}else a>b?(g+=v,h+=q):(v+=g,q+=h),1E7f?-1:1;e.n=Math.abs(b);e.d=Math.abs(d)}function r(a,c){if(isNaN(a=parseInt(a,10)))throw m.InvalidParameter;return a*c}function n(a,c){if(0===c)throw m.DivisionByZero; +var b=Object.create(m.prototype);b.s=0>a?-1:1;a=0>a?-a:a;var d=w(a,c);b.n=a/d;b.d=c/d;return b}function y(a){for(var c={},b=a,d=2,f=4;f<=b;){for(;0===b%d;)b/=d,c[d]=(c[d]||0)+1;f+=1+2*d++}b!==a?1e.s?n(Math.pow(this.s*this.d,e.n),Math.pow(this.n,e.n)):n(Math.pow(this.s*this.n,e.n),Math.pow(this.d, +e.n));if(0>this.s)return null;var b=y(this.n),d=y(this.d),f=1,l=1,k;for(k in b)if("1"!==k){if("0"===k){f=0;break}b[k]*=e.n;if(0===b[k]%e.d)b[k]/=e.d;else return null;f*=Math.pow(k,b[k])}for(k in d)if("1"!==k){d[k]*=e.n;if(0===d[k]%e.d)d[k]/=e.d;else return null;l*=Math.pow(k,d[k])}return 0>e.s?n(l,f):n(f,l)},equals:function(a,c){p(a,c);return this.s*this.n*e.d===e.s*e.n*this.d},compare:function(a,c){p(a,c);var b=this.s*this.n*e.d-e.s*e.n*this.d;return(0b)},simplify:function(a){if(isNaN(this.n)|| +isNaN(this.d))return this;a=a||.001;for(var c=this.abs(),b=c.toContinued(),d=1;dthis.s&&(b+="-");1===f?b+=d:(a&&0<(c=Math.floor(d/f))&&(b=b+c+" ",d%=f),b=b+d+"/",b+=f);return b},toLatex:function(a){var c, +b="",d=this.n,f=this.d;0>this.s&&(b+="-");1===f?b+=d:(a&&0<(c=Math.floor(d/f))&&(b+=c,d%=f),b=b+"\\frac{"+d+"}{"+f,b+="}");return b},toContinued:function(){var a=this.n,c=this.d,b=[];if(isNaN(a)||isNaN(c))return b;do{b.push(Math.floor(a/c));var d=a%c;a=c;c=d}while(1!==a);return b},toString:function(a){var c=this.n,b=this.d;if(isNaN(c)||isNaN(b))return"NaN";var d;a:{for(d=b;0===d%2;d/=2);for(;0===d%5;d/=5);if(1===d)d=0;else{for(var f=10%d,l=1;1!==f;l++)if(f=10*f%d,2E3>=1)k&1&&(t=t*l%b);l=t;for(k=0;300>k;k++){if(f===l){l=k;break a}f=10*f%b;l=10*l%b}l=0}f=0>this.s?"-":"";f+=c/b|0;(c=c%b*10)&&(f+=".");if(d){for(a=l;a--;)f+=c/b|0,c%=b,c*=10;f+="(";for(a=d;a--;)f+=c/b|0,c%=b,c*=10;f+=")"}else for(a=a||15;c&&a--;)f+=c/b|0,c%=b,c*=10;return f}};"function"===typeof define&&define.amd?define([],function(){return m}):"object"===typeof exports?(Object.defineProperty(m,"__esModule",{value:!0}),m["default"]=m,m.Fraction=m,module.exports=m): +z.Fraction=m})(this); \ No newline at end of file diff --git a/node_modules/fraction.js/package.json b/node_modules/fraction.js/package.json new file mode 100644 index 0000000..9be0262 --- /dev/null +++ b/node_modules/fraction.js/package.json @@ -0,0 +1,43 @@ +{ + "name": "fraction.js", + "title": "fraction.js", + "version": "4.2.0", + "homepage": "https://www.xarg.org/2014/03/rational-numbers-in-javascript/", + "bugs": "https://github.com/infusion/Fraction.js/issues", + "description": "A rational number library", + "keywords": [ + "math", + "fraction", + "rational", + "rationals", + "number", + "parser", + "rational numbers" + ], + "author": "Robert Eisele (http://www.xarg.org/)", + "main": "fraction", + "types": "./fraction.d.ts", + "private": false, + "readmeFilename": "README.md", + "directories": { + "example": "examples" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/infusion/Fraction.js.git" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + }, + "engines": { + "node": "*" + }, + "scripts": { + "test": "mocha tests/*.js" + }, + "devDependencies": { + "mocha": "*" + } +} diff --git a/node_modules/fs-extra/LICENSE b/node_modules/fs-extra/LICENSE new file mode 100644 index 0000000..93546df --- /dev/null +++ b/node_modules/fs-extra/LICENSE @@ -0,0 +1,15 @@ +(The MIT License) + +Copyright (c) 2011-2017 JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/fs-extra/README.md b/node_modules/fs-extra/README.md new file mode 100644 index 0000000..6ed8b6a --- /dev/null +++ b/node_modules/fs-extra/README.md @@ -0,0 +1,262 @@ +Node.js: fs-extra +================= + +`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It also uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to prevent `EMFILE` errors. It should be a drop in replacement for `fs`. + +[![npm Package](https://img.shields.io/npm/v/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) +[![License](https://img.shields.io/npm/l/fs-extra.svg)](https://github.com/jprichardson/node-fs-extra/blob/master/LICENSE) +[![build status](https://img.shields.io/github/workflow/status/jprichardson/node-fs-extra/Node.js%20CI/master)](https://github.com/jprichardson/node-fs-extra/actions/workflows/ci.yml?query=branch%3Amaster) +[![downloads per month](http://img.shields.io/npm/dm/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) +[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) + +Why? +---- + +I got tired of including `mkdirp`, `rimraf`, and `ncp` in most of my projects. + + + + +Installation +------------ + + npm install fs-extra + + + +Usage +----- + +`fs-extra` is a drop in replacement for native `fs`. All methods in `fs` are attached to `fs-extra`. All `fs` methods return promises if the callback isn't passed. + +You don't ever need to include the original `fs` module again: + +```js +const fs = require('fs') // this is no longer necessary +``` + +you can now do this: + +```js +const fs = require('fs-extra') +``` + +or if you prefer to make it clear that you're using `fs-extra` and not `fs`, you may want +to name your `fs` variable `fse` like so: + +```js +const fse = require('fs-extra') +``` + +you can also keep both, but it's redundant: + +```js +const fs = require('fs') +const fse = require('fs-extra') +``` + +Sync vs Async vs Async/Await +------------- +Most methods are async by default. All async methods will return a promise if the callback isn't passed. + +Sync methods on the other hand will throw if an error occurs. + +Also Async/Await will throw an error if one occurs. + +Example: + +```js +const fs = require('fs-extra') + +// Async with promises: +fs.copy('/tmp/myfile', '/tmp/mynewfile') + .then(() => console.log('success!')) + .catch(err => console.error(err)) + +// Async with callbacks: +fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { + if (err) return console.error(err) + console.log('success!') +}) + +// Sync: +try { + fs.copySync('/tmp/myfile', '/tmp/mynewfile') + console.log('success!') +} catch (err) { + console.error(err) +} + +// Async/Await: +async function copyFiles () { + try { + await fs.copy('/tmp/myfile', '/tmp/mynewfile') + console.log('success!') + } catch (err) { + console.error(err) + } +} + +copyFiles() +``` + + +Methods +------- + +### Async + +- [copy](docs/copy.md) +- [emptyDir](docs/emptyDir.md) +- [ensureFile](docs/ensureFile.md) +- [ensureDir](docs/ensureDir.md) +- [ensureLink](docs/ensureLink.md) +- [ensureSymlink](docs/ensureSymlink.md) +- [mkdirp](docs/ensureDir.md) +- [mkdirs](docs/ensureDir.md) +- [move](docs/move.md) +- [outputFile](docs/outputFile.md) +- [outputJson](docs/outputJson.md) +- [pathExists](docs/pathExists.md) +- [readJson](docs/readJson.md) +- [remove](docs/remove.md) +- [writeJson](docs/writeJson.md) + +### Sync + +- [copySync](docs/copy-sync.md) +- [emptyDirSync](docs/emptyDir-sync.md) +- [ensureFileSync](docs/ensureFile-sync.md) +- [ensureDirSync](docs/ensureDir-sync.md) +- [ensureLinkSync](docs/ensureLink-sync.md) +- [ensureSymlinkSync](docs/ensureSymlink-sync.md) +- [mkdirpSync](docs/ensureDir-sync.md) +- [mkdirsSync](docs/ensureDir-sync.md) +- [moveSync](docs/move-sync.md) +- [outputFileSync](docs/outputFile-sync.md) +- [outputJsonSync](docs/outputJson-sync.md) +- [pathExistsSync](docs/pathExists-sync.md) +- [readJsonSync](docs/readJson-sync.md) +- [removeSync](docs/remove-sync.md) +- [writeJsonSync](docs/writeJson-sync.md) + + +**NOTE:** You can still use the native Node.js methods. They are promisified and copied over to `fs-extra`. See [notes on `fs.read()`, `fs.write()`, & `fs.writev()`](docs/fs-read-write-writev.md) + +### What happened to `walk()` and `walkSync()`? + +They were removed from `fs-extra` in v2.0.0. If you need the functionality, `walk` and `walkSync` are available as separate packages, [`klaw`](https://github.com/jprichardson/node-klaw) and [`klaw-sync`](https://github.com/manidlou/node-klaw-sync). + + +Third Party +----------- + +### CLI + +[fse-cli](https://www.npmjs.com/package/@atao60/fse-cli) allows you to run `fs-extra` from a console or from [npm](https://www.npmjs.com) scripts. + +### TypeScript + +If you like TypeScript, you can use `fs-extra` with it: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fs-extra + + +### File / Directory Watching + +If you want to watch for changes to files or directories, then you should use [chokidar](https://github.com/paulmillr/chokidar). + +### Obtain Filesystem (Devices, Partitions) Information + +[fs-filesystem](https://github.com/arthurintelligence/node-fs-filesystem) allows you to read the state of the filesystem of the host on which it is run. It returns information about both the devices and the partitions (volumes) of the system. + +### Misc. + +- [fs-extra-debug](https://github.com/jdxcode/fs-extra-debug) - Send your fs-extra calls to [debug](https://npmjs.org/package/debug). +- [mfs](https://github.com/cadorn/mfs) - Monitor your fs-extra calls. + + + +Hacking on fs-extra +------------------- + +Wanna hack on `fs-extra`? Great! Your help is needed! [fs-extra is one of the most depended upon Node.js packages](http://nodei.co/npm/fs-extra.png?downloads=true&downloadRank=true&stars=true). This project +uses [JavaScript Standard Style](https://github.com/feross/standard) - if the name or style choices bother you, +you're gonna have to get over it :) If `standard` is good enough for `npm`, it's good enough for `fs-extra`. + +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +What's needed? +- First, take a look at existing issues. Those are probably going to be where the priority lies. +- More tests for edge cases. Specifically on different platforms. There can never be enough tests. +- Improve test coverage. + +Note: If you make any big changes, **you should definitely file an issue for discussion first.** + +### Running the Test Suite + +fs-extra contains hundreds of tests. + +- `npm run lint`: runs the linter ([standard](http://standardjs.com/)) +- `npm run unit`: runs the unit tests +- `npm test`: runs both the linter and the tests + + +### Windows + +If you run the tests on the Windows and receive a lot of symbolic link `EPERM` permission errors, it's +because on Windows you need elevated privilege to create symbolic links. You can add this to your Windows's +account by following the instructions here: http://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7 +However, I didn't have much luck doing this. + +Since I develop on Mac OS X, I use VMWare Fusion for Windows testing. I create a shared folder that I map to a drive on Windows. +I open the `Node.js command prompt` and run as `Administrator`. I then map the network drive running the following command: + + net use z: "\\vmware-host\Shared Folders" + +I can then navigate to my `fs-extra` directory and run the tests. + + +Naming +------ + +I put a lot of thought into the naming of these functions. Inspired by @coolaj86's request. So he deserves much of the credit for raising the issue. See discussion(s) here: + +* https://github.com/jprichardson/node-fs-extra/issues/2 +* https://github.com/flatiron/utile/issues/11 +* https://github.com/ryanmcgrath/wrench-js/issues/29 +* https://github.com/substack/node-mkdirp/issues/17 + +First, I believe that in as many cases as possible, the [Node.js naming schemes](http://nodejs.org/api/fs.html) should be chosen. However, there are problems with the Node.js own naming schemes. + +For example, `fs.readFile()` and `fs.readdir()`: the **F** is capitalized in *File* and the **d** is not capitalized in *dir*. Perhaps a bit pedantic, but they should still be consistent. Also, Node.js has chosen a lot of POSIX naming schemes, which I believe is great. See: `fs.mkdir()`, `fs.rmdir()`, `fs.chown()`, etc. + +We have a dilemma though. How do you consistently name methods that perform the following POSIX commands: `cp`, `cp -r`, `mkdir -p`, and `rm -rf`? + +My perspective: when in doubt, err on the side of simplicity. A directory is just a hierarchical grouping of directories and files. Consider that for a moment. So when you want to copy it or remove it, in most cases you'll want to copy or remove all of its contents. When you want to create a directory, if the directory that it's suppose to be contained in does not exist, then in most cases you'll want to create that too. + +So, if you want to remove a file or a directory regardless of whether it has contents, just call `fs.remove(path)`. If you want to copy a file or a directory whether it has contents, just call `fs.copy(source, destination)`. If you want to create a directory regardless of whether its parent directories exist, just call `fs.mkdirs(path)` or `fs.mkdirp(path)`. + + +Credit +------ + +`fs-extra` wouldn't be possible without using the modules from the following authors: + +- [Isaac Shlueter](https://github.com/isaacs) +- [Charlie McConnel](https://github.com/avianflu) +- [James Halliday](https://github.com/substack) +- [Andrew Kelley](https://github.com/andrewrk) + + + + +License +------- + +Licensed under MIT + +Copyright (c) 2011-2017 [JP Richardson](https://github.com/jprichardson) + +[1]: http://nodejs.org/docs/latest/api/fs.html + + +[jsonfile]: https://github.com/jprichardson/node-jsonfile diff --git a/node_modules/fs-extra/lib/copy/copy-sync.js b/node_modules/fs-extra/lib/copy/copy-sync.js new file mode 100644 index 0000000..551abe0 --- /dev/null +++ b/node_modules/fs-extra/lib/copy/copy-sync.js @@ -0,0 +1,169 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdirsSync = require('../mkdirs').mkdirsSync +const utimesMillisSync = require('../util/utimes').utimesMillisSync +const stat = require('../util/stat') + +function copySync (src, dest, opts) { + if (typeof opts === 'function') { + opts = { filter: opts } + } + + opts = opts || {} + opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now + opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber + + // Warn about using preserveTimestamps on 32-bit node + if (opts.preserveTimestamps && process.arch === 'ia32') { + process.emitWarning( + 'Using the preserveTimestamps option in 32-bit node is not recommended;\n\n' + + '\tsee https://github.com/jprichardson/node-fs-extra/issues/269', + 'Warning', 'fs-extra-WARN0002' + ) + } + + const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts) + stat.checkParentPathsSync(src, srcStat, dest, 'copy') + return handleFilterAndCopy(destStat, src, dest, opts) +} + +function handleFilterAndCopy (destStat, src, dest, opts) { + if (opts.filter && !opts.filter(src, dest)) return + const destParent = path.dirname(dest) + if (!fs.existsSync(destParent)) mkdirsSync(destParent) + return getStats(destStat, src, dest, opts) +} + +function startCopy (destStat, src, dest, opts) { + if (opts.filter && !opts.filter(src, dest)) return + return getStats(destStat, src, dest, opts) +} + +function getStats (destStat, src, dest, opts) { + const statSync = opts.dereference ? fs.statSync : fs.lstatSync + const srcStat = statSync(src) + + if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts) + else if (srcStat.isFile() || + srcStat.isCharacterDevice() || + srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts) + else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts) + else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`) + else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`) + throw new Error(`Unknown file: ${src}`) +} + +function onFile (srcStat, destStat, src, dest, opts) { + if (!destStat) return copyFile(srcStat, src, dest, opts) + return mayCopyFile(srcStat, src, dest, opts) +} + +function mayCopyFile (srcStat, src, dest, opts) { + if (opts.overwrite) { + fs.unlinkSync(dest) + return copyFile(srcStat, src, dest, opts) + } else if (opts.errorOnExist) { + throw new Error(`'${dest}' already exists`) + } +} + +function copyFile (srcStat, src, dest, opts) { + fs.copyFileSync(src, dest) + if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest) + return setDestMode(dest, srcStat.mode) +} + +function handleTimestamps (srcMode, src, dest) { + // Make sure the file is writable before setting the timestamp + // otherwise open fails with EPERM when invoked with 'r+' + // (through utimes call) + if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode) + return setDestTimestamps(src, dest) +} + +function fileIsNotWritable (srcMode) { + return (srcMode & 0o200) === 0 +} + +function makeFileWritable (dest, srcMode) { + return setDestMode(dest, srcMode | 0o200) +} + +function setDestMode (dest, srcMode) { + return fs.chmodSync(dest, srcMode) +} + +function setDestTimestamps (src, dest) { + // The initial srcStat.atime cannot be trusted + // because it is modified by the read(2) system call + // (See https://nodejs.org/api/fs.html#fs_stat_time_values) + const updatedSrcStat = fs.statSync(src) + return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime) +} + +function onDir (srcStat, destStat, src, dest, opts) { + if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts) + return copyDir(src, dest, opts) +} + +function mkDirAndCopy (srcMode, src, dest, opts) { + fs.mkdirSync(dest) + copyDir(src, dest, opts) + return setDestMode(dest, srcMode) +} + +function copyDir (src, dest, opts) { + fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts)) +} + +function copyDirItem (item, src, dest, opts) { + const srcItem = path.join(src, item) + const destItem = path.join(dest, item) + const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts) + return startCopy(destStat, srcItem, destItem, opts) +} + +function onLink (destStat, src, dest, opts) { + let resolvedSrc = fs.readlinkSync(src) + if (opts.dereference) { + resolvedSrc = path.resolve(process.cwd(), resolvedSrc) + } + + if (!destStat) { + return fs.symlinkSync(resolvedSrc, dest) + } else { + let resolvedDest + try { + resolvedDest = fs.readlinkSync(dest) + } catch (err) { + // dest exists and is a regular file or directory, + // Windows may throw UNKNOWN error. If dest already exists, + // fs throws error anyway, so no need to guard against it here. + if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest) + throw err + } + if (opts.dereference) { + resolvedDest = path.resolve(process.cwd(), resolvedDest) + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`) + } + + // prevent copy if src is a subdir of dest since unlinking + // dest in this case would result in removing src contents + // and therefore a broken symlink would be created. + if (fs.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`) + } + return copyLink(resolvedSrc, dest) + } +} + +function copyLink (resolvedSrc, dest) { + fs.unlinkSync(dest) + return fs.symlinkSync(resolvedSrc, dest) +} + +module.exports = copySync diff --git a/node_modules/fs-extra/lib/copy/copy.js b/node_modules/fs-extra/lib/copy/copy.js new file mode 100644 index 0000000..09d53df --- /dev/null +++ b/node_modules/fs-extra/lib/copy/copy.js @@ -0,0 +1,235 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdirs = require('../mkdirs').mkdirs +const pathExists = require('../path-exists').pathExists +const utimesMillis = require('../util/utimes').utimesMillis +const stat = require('../util/stat') + +function copy (src, dest, opts, cb) { + if (typeof opts === 'function' && !cb) { + cb = opts + opts = {} + } else if (typeof opts === 'function') { + opts = { filter: opts } + } + + cb = cb || function () {} + opts = opts || {} + + opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now + opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber + + // Warn about using preserveTimestamps on 32-bit node + if (opts.preserveTimestamps && process.arch === 'ia32') { + process.emitWarning( + 'Using the preserveTimestamps option in 32-bit node is not recommended;\n\n' + + '\tsee https://github.com/jprichardson/node-fs-extra/issues/269', + 'Warning', 'fs-extra-WARN0001' + ) + } + + stat.checkPaths(src, dest, 'copy', opts, (err, stats) => { + if (err) return cb(err) + const { srcStat, destStat } = stats + stat.checkParentPaths(src, srcStat, dest, 'copy', err => { + if (err) return cb(err) + if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb) + return checkParentDir(destStat, src, dest, opts, cb) + }) + }) +} + +function checkParentDir (destStat, src, dest, opts, cb) { + const destParent = path.dirname(dest) + pathExists(destParent, (err, dirExists) => { + if (err) return cb(err) + if (dirExists) return getStats(destStat, src, dest, opts, cb) + mkdirs(destParent, err => { + if (err) return cb(err) + return getStats(destStat, src, dest, opts, cb) + }) + }) +} + +function handleFilter (onInclude, destStat, src, dest, opts, cb) { + Promise.resolve(opts.filter(src, dest)).then(include => { + if (include) return onInclude(destStat, src, dest, opts, cb) + return cb() + }, error => cb(error)) +} + +function startCopy (destStat, src, dest, opts, cb) { + if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb) + return getStats(destStat, src, dest, opts, cb) +} + +function getStats (destStat, src, dest, opts, cb) { + const stat = opts.dereference ? fs.stat : fs.lstat + stat(src, (err, srcStat) => { + if (err) return cb(err) + + if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb) + else if (srcStat.isFile() || + srcStat.isCharacterDevice() || + srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb) + else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb) + else if (srcStat.isSocket()) return cb(new Error(`Cannot copy a socket file: ${src}`)) + else if (srcStat.isFIFO()) return cb(new Error(`Cannot copy a FIFO pipe: ${src}`)) + return cb(new Error(`Unknown file: ${src}`)) + }) +} + +function onFile (srcStat, destStat, src, dest, opts, cb) { + if (!destStat) return copyFile(srcStat, src, dest, opts, cb) + return mayCopyFile(srcStat, src, dest, opts, cb) +} + +function mayCopyFile (srcStat, src, dest, opts, cb) { + if (opts.overwrite) { + fs.unlink(dest, err => { + if (err) return cb(err) + return copyFile(srcStat, src, dest, opts, cb) + }) + } else if (opts.errorOnExist) { + return cb(new Error(`'${dest}' already exists`)) + } else return cb() +} + +function copyFile (srcStat, src, dest, opts, cb) { + fs.copyFile(src, dest, err => { + if (err) return cb(err) + if (opts.preserveTimestamps) return handleTimestampsAndMode(srcStat.mode, src, dest, cb) + return setDestMode(dest, srcStat.mode, cb) + }) +} + +function handleTimestampsAndMode (srcMode, src, dest, cb) { + // Make sure the file is writable before setting the timestamp + // otherwise open fails with EPERM when invoked with 'r+' + // (through utimes call) + if (fileIsNotWritable(srcMode)) { + return makeFileWritable(dest, srcMode, err => { + if (err) return cb(err) + return setDestTimestampsAndMode(srcMode, src, dest, cb) + }) + } + return setDestTimestampsAndMode(srcMode, src, dest, cb) +} + +function fileIsNotWritable (srcMode) { + return (srcMode & 0o200) === 0 +} + +function makeFileWritable (dest, srcMode, cb) { + return setDestMode(dest, srcMode | 0o200, cb) +} + +function setDestTimestampsAndMode (srcMode, src, dest, cb) { + setDestTimestamps(src, dest, err => { + if (err) return cb(err) + return setDestMode(dest, srcMode, cb) + }) +} + +function setDestMode (dest, srcMode, cb) { + return fs.chmod(dest, srcMode, cb) +} + +function setDestTimestamps (src, dest, cb) { + // The initial srcStat.atime cannot be trusted + // because it is modified by the read(2) system call + // (See https://nodejs.org/api/fs.html#fs_stat_time_values) + fs.stat(src, (err, updatedSrcStat) => { + if (err) return cb(err) + return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb) + }) +} + +function onDir (srcStat, destStat, src, dest, opts, cb) { + if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts, cb) + return copyDir(src, dest, opts, cb) +} + +function mkDirAndCopy (srcMode, src, dest, opts, cb) { + fs.mkdir(dest, err => { + if (err) return cb(err) + copyDir(src, dest, opts, err => { + if (err) return cb(err) + return setDestMode(dest, srcMode, cb) + }) + }) +} + +function copyDir (src, dest, opts, cb) { + fs.readdir(src, (err, items) => { + if (err) return cb(err) + return copyDirItems(items, src, dest, opts, cb) + }) +} + +function copyDirItems (items, src, dest, opts, cb) { + const item = items.pop() + if (!item) return cb() + return copyDirItem(items, item, src, dest, opts, cb) +} + +function copyDirItem (items, item, src, dest, opts, cb) { + const srcItem = path.join(src, item) + const destItem = path.join(dest, item) + stat.checkPaths(srcItem, destItem, 'copy', opts, (err, stats) => { + if (err) return cb(err) + const { destStat } = stats + startCopy(destStat, srcItem, destItem, opts, err => { + if (err) return cb(err) + return copyDirItems(items, src, dest, opts, cb) + }) + }) +} + +function onLink (destStat, src, dest, opts, cb) { + fs.readlink(src, (err, resolvedSrc) => { + if (err) return cb(err) + if (opts.dereference) { + resolvedSrc = path.resolve(process.cwd(), resolvedSrc) + } + + if (!destStat) { + return fs.symlink(resolvedSrc, dest, cb) + } else { + fs.readlink(dest, (err, resolvedDest) => { + if (err) { + // dest exists and is a regular file or directory, + // Windows may throw UNKNOWN error. If dest already exists, + // fs throws error anyway, so no need to guard against it here. + if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb) + return cb(err) + } + if (opts.dereference) { + resolvedDest = path.resolve(process.cwd(), resolvedDest) + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)) + } + + // do not copy if src is a subdir of dest since unlinking + // dest in this case would result in removing src contents + // and therefore a broken symlink would be created. + if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)) + } + return copyLink(resolvedSrc, dest, cb) + }) + } + }) +} + +function copyLink (resolvedSrc, dest, cb) { + fs.unlink(dest, err => { + if (err) return cb(err) + return fs.symlink(resolvedSrc, dest, cb) + }) +} + +module.exports = copy diff --git a/node_modules/fs-extra/lib/copy/index.js b/node_modules/fs-extra/lib/copy/index.js new file mode 100644 index 0000000..45c07a2 --- /dev/null +++ b/node_modules/fs-extra/lib/copy/index.js @@ -0,0 +1,7 @@ +'use strict' + +const u = require('universalify').fromCallback +module.exports = { + copy: u(require('./copy')), + copySync: require('./copy-sync') +} diff --git a/node_modules/fs-extra/lib/empty/index.js b/node_modules/fs-extra/lib/empty/index.js new file mode 100644 index 0000000..b4a2e82 --- /dev/null +++ b/node_modules/fs-extra/lib/empty/index.js @@ -0,0 +1,39 @@ +'use strict' + +const u = require('universalify').fromPromise +const fs = require('../fs') +const path = require('path') +const mkdir = require('../mkdirs') +const remove = require('../remove') + +const emptyDir = u(async function emptyDir (dir) { + let items + try { + items = await fs.readdir(dir) + } catch { + return mkdir.mkdirs(dir) + } + + return Promise.all(items.map(item => remove.remove(path.join(dir, item)))) +}) + +function emptyDirSync (dir) { + let items + try { + items = fs.readdirSync(dir) + } catch { + return mkdir.mkdirsSync(dir) + } + + items.forEach(item => { + item = path.join(dir, item) + remove.removeSync(item) + }) +} + +module.exports = { + emptyDirSync, + emptydirSync: emptyDirSync, + emptyDir, + emptydir: emptyDir +} diff --git a/node_modules/fs-extra/lib/ensure/file.js b/node_modules/fs-extra/lib/ensure/file.js new file mode 100644 index 0000000..15cc473 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/file.js @@ -0,0 +1,69 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const mkdir = require('../mkdirs') + +function createFile (file, callback) { + function makeFile () { + fs.writeFile(file, '', err => { + if (err) return callback(err) + callback() + }) + } + + fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err + if (!err && stats.isFile()) return callback() + const dir = path.dirname(file) + fs.stat(dir, (err, stats) => { + if (err) { + // if the directory doesn't exist, make it + if (err.code === 'ENOENT') { + return mkdir.mkdirs(dir, err => { + if (err) return callback(err) + makeFile() + }) + } + return callback(err) + } + + if (stats.isDirectory()) makeFile() + else { + // parent is not a directory + // This is just to cause an internal ENOTDIR error to be thrown + fs.readdir(dir, err => { + if (err) return callback(err) + }) + } + }) + }) +} + +function createFileSync (file) { + let stats + try { + stats = fs.statSync(file) + } catch {} + if (stats && stats.isFile()) return + + const dir = path.dirname(file) + try { + if (!fs.statSync(dir).isDirectory()) { + // parent is not a directory + // This is just to cause an internal ENOTDIR error to be thrown + fs.readdirSync(dir) + } + } catch (err) { + // If the stat call above failed because the directory doesn't exist, create it + if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir) + else throw err + } + + fs.writeFileSync(file, '') +} + +module.exports = { + createFile: u(createFile), + createFileSync +} diff --git a/node_modules/fs-extra/lib/ensure/index.js b/node_modules/fs-extra/lib/ensure/index.js new file mode 100644 index 0000000..ecbcdd0 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/index.js @@ -0,0 +1,23 @@ +'use strict' + +const { createFile, createFileSync } = require('./file') +const { createLink, createLinkSync } = require('./link') +const { createSymlink, createSymlinkSync } = require('./symlink') + +module.exports = { + // file + createFile, + createFileSync, + ensureFile: createFile, + ensureFileSync: createFileSync, + // link + createLink, + createLinkSync, + ensureLink: createLink, + ensureLinkSync: createLinkSync, + // symlink + createSymlink, + createSymlinkSync, + ensureSymlink: createSymlink, + ensureSymlinkSync: createSymlinkSync +} diff --git a/node_modules/fs-extra/lib/ensure/link.js b/node_modules/fs-extra/lib/ensure/link.js new file mode 100644 index 0000000..f6d6748 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/link.js @@ -0,0 +1,64 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists +const { areIdentical } = require('../util/stat') + +function createLink (srcpath, dstpath, callback) { + function makeLink (srcpath, dstpath) { + fs.link(srcpath, dstpath, err => { + if (err) return callback(err) + callback(null) + }) + } + + fs.lstat(dstpath, (_, dstStat) => { + fs.lstat(srcpath, (err, srcStat) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureLink') + return callback(err) + } + if (dstStat && areIdentical(srcStat, dstStat)) return callback(null) + + const dir = path.dirname(dstpath) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return makeLink(srcpath, dstpath) + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + makeLink(srcpath, dstpath) + }) + }) + }) + }) +} + +function createLinkSync (srcpath, dstpath) { + let dstStat + try { + dstStat = fs.lstatSync(dstpath) + } catch {} + + try { + const srcStat = fs.lstatSync(srcpath) + if (dstStat && areIdentical(srcStat, dstStat)) return + } catch (err) { + err.message = err.message.replace('lstat', 'ensureLink') + throw err + } + + const dir = path.dirname(dstpath) + const dirExists = fs.existsSync(dir) + if (dirExists) return fs.linkSync(srcpath, dstpath) + mkdir.mkdirsSync(dir) + + return fs.linkSync(srcpath, dstpath) +} + +module.exports = { + createLink: u(createLink), + createLinkSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink-paths.js b/node_modules/fs-extra/lib/ensure/symlink-paths.js new file mode 100644 index 0000000..33cd760 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink-paths.js @@ -0,0 +1,99 @@ +'use strict' + +const path = require('path') +const fs = require('graceful-fs') +const pathExists = require('../path-exists').pathExists + +/** + * Function that returns two types of paths, one relative to symlink, and one + * relative to the current working directory. Checks if path is absolute or + * relative. If the path is relative, this function checks if the path is + * relative to symlink or relative to current working directory. This is an + * initiative to find a smarter `srcpath` to supply when building symlinks. + * This allows you to determine which path to use out of one of three possible + * types of source paths. The first is an absolute path. This is detected by + * `path.isAbsolute()`. When an absolute path is provided, it is checked to + * see if it exists. If it does it's used, if not an error is returned + * (callback)/ thrown (sync). The other two options for `srcpath` are a + * relative url. By default Node's `fs.symlink` works by creating a symlink + * using `dstpath` and expects the `srcpath` to be relative to the newly + * created symlink. If you provide a `srcpath` that does not exist on the file + * system it results in a broken symlink. To minimize this, the function + * checks to see if the 'relative to symlink' source file exists, and if it + * does it will use it. If it does not, it checks if there's a file that + * exists that is relative to the current working directory, if does its used. + * This preserves the expectations of the original fs.symlink spec and adds + * the ability to pass in `relative to current working direcotry` paths. + */ + +function symlinkPaths (srcpath, dstpath, callback) { + if (path.isAbsolute(srcpath)) { + return fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureSymlink') + return callback(err) + } + return callback(null, { + toCwd: srcpath, + toDst: srcpath + }) + }) + } else { + const dstdir = path.dirname(dstpath) + const relativeToDst = path.join(dstdir, srcpath) + return pathExists(relativeToDst, (err, exists) => { + if (err) return callback(err) + if (exists) { + return callback(null, { + toCwd: relativeToDst, + toDst: srcpath + }) + } else { + return fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureSymlink') + return callback(err) + } + return callback(null, { + toCwd: srcpath, + toDst: path.relative(dstdir, srcpath) + }) + }) + } + }) + } +} + +function symlinkPathsSync (srcpath, dstpath) { + let exists + if (path.isAbsolute(srcpath)) { + exists = fs.existsSync(srcpath) + if (!exists) throw new Error('absolute srcpath does not exist') + return { + toCwd: srcpath, + toDst: srcpath + } + } else { + const dstdir = path.dirname(dstpath) + const relativeToDst = path.join(dstdir, srcpath) + exists = fs.existsSync(relativeToDst) + if (exists) { + return { + toCwd: relativeToDst, + toDst: srcpath + } + } else { + exists = fs.existsSync(srcpath) + if (!exists) throw new Error('relative srcpath does not exist') + return { + toCwd: srcpath, + toDst: path.relative(dstdir, srcpath) + } + } + } +} + +module.exports = { + symlinkPaths, + symlinkPathsSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink-type.js b/node_modules/fs-extra/lib/ensure/symlink-type.js new file mode 100644 index 0000000..42dc0ce --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink-type.js @@ -0,0 +1,31 @@ +'use strict' + +const fs = require('graceful-fs') + +function symlinkType (srcpath, type, callback) { + callback = (typeof type === 'function') ? type : callback + type = (typeof type === 'function') ? false : type + if (type) return callback(null, type) + fs.lstat(srcpath, (err, stats) => { + if (err) return callback(null, 'file') + type = (stats && stats.isDirectory()) ? 'dir' : 'file' + callback(null, type) + }) +} + +function symlinkTypeSync (srcpath, type) { + let stats + + if (type) return type + try { + stats = fs.lstatSync(srcpath) + } catch { + return 'file' + } + return (stats && stats.isDirectory()) ? 'dir' : 'file' +} + +module.exports = { + symlinkType, + symlinkTypeSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink.js b/node_modules/fs-extra/lib/ensure/symlink.js new file mode 100644 index 0000000..2b93052 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink.js @@ -0,0 +1,82 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('../fs') +const _mkdirs = require('../mkdirs') +const mkdirs = _mkdirs.mkdirs +const mkdirsSync = _mkdirs.mkdirsSync + +const _symlinkPaths = require('./symlink-paths') +const symlinkPaths = _symlinkPaths.symlinkPaths +const symlinkPathsSync = _symlinkPaths.symlinkPathsSync + +const _symlinkType = require('./symlink-type') +const symlinkType = _symlinkType.symlinkType +const symlinkTypeSync = _symlinkType.symlinkTypeSync + +const pathExists = require('../path-exists').pathExists + +const { areIdentical } = require('../util/stat') + +function createSymlink (srcpath, dstpath, type, callback) { + callback = (typeof type === 'function') ? type : callback + type = (typeof type === 'function') ? false : type + + fs.lstat(dstpath, (err, stats) => { + if (!err && stats.isSymbolicLink()) { + Promise.all([ + fs.stat(srcpath), + fs.stat(dstpath) + ]).then(([srcStat, dstStat]) => { + if (areIdentical(srcStat, dstStat)) return callback(null) + _createSymlink(srcpath, dstpath, type, callback) + }) + } else _createSymlink(srcpath, dstpath, type, callback) + }) +} + +function _createSymlink (srcpath, dstpath, type, callback) { + symlinkPaths(srcpath, dstpath, (err, relative) => { + if (err) return callback(err) + srcpath = relative.toDst + symlinkType(relative.toCwd, type, (err, type) => { + if (err) return callback(err) + const dir = path.dirname(dstpath) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return fs.symlink(srcpath, dstpath, type, callback) + mkdirs(dir, err => { + if (err) return callback(err) + fs.symlink(srcpath, dstpath, type, callback) + }) + }) + }) + }) +} + +function createSymlinkSync (srcpath, dstpath, type) { + let stats + try { + stats = fs.lstatSync(dstpath) + } catch {} + if (stats && stats.isSymbolicLink()) { + const srcStat = fs.statSync(srcpath) + const dstStat = fs.statSync(dstpath) + if (areIdentical(srcStat, dstStat)) return + } + + const relative = symlinkPathsSync(srcpath, dstpath) + srcpath = relative.toDst + type = symlinkTypeSync(relative.toCwd, type) + const dir = path.dirname(dstpath) + const exists = fs.existsSync(dir) + if (exists) return fs.symlinkSync(srcpath, dstpath, type) + mkdirsSync(dir) + return fs.symlinkSync(srcpath, dstpath, type) +} + +module.exports = { + createSymlink: u(createSymlink), + createSymlinkSync +} diff --git a/node_modules/fs-extra/lib/fs/index.js b/node_modules/fs-extra/lib/fs/index.js new file mode 100644 index 0000000..7b025e2 --- /dev/null +++ b/node_modules/fs-extra/lib/fs/index.js @@ -0,0 +1,128 @@ +'use strict' +// This is adapted from https://github.com/normalize/mz +// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors +const u = require('universalify').fromCallback +const fs = require('graceful-fs') + +const api = [ + 'access', + 'appendFile', + 'chmod', + 'chown', + 'close', + 'copyFile', + 'fchmod', + 'fchown', + 'fdatasync', + 'fstat', + 'fsync', + 'ftruncate', + 'futimes', + 'lchmod', + 'lchown', + 'link', + 'lstat', + 'mkdir', + 'mkdtemp', + 'open', + 'opendir', + 'readdir', + 'readFile', + 'readlink', + 'realpath', + 'rename', + 'rm', + 'rmdir', + 'stat', + 'symlink', + 'truncate', + 'unlink', + 'utimes', + 'writeFile' +].filter(key => { + // Some commands are not available on some systems. Ex: + // fs.opendir was added in Node.js v12.12.0 + // fs.rm was added in Node.js v14.14.0 + // fs.lchown is not available on at least some Linux + return typeof fs[key] === 'function' +}) + +// Export cloned fs: +Object.assign(exports, fs) + +// Universalify async methods: +api.forEach(method => { + exports[method] = u(fs[method]) +}) + +// We differ from mz/fs in that we still ship the old, broken, fs.exists() +// since we are a drop-in replacement for the native module +exports.exists = function (filename, callback) { + if (typeof callback === 'function') { + return fs.exists(filename, callback) + } + return new Promise(resolve => { + return fs.exists(filename, resolve) + }) +} + +// fs.read(), fs.write(), & fs.writev() need special treatment due to multiple callback args + +exports.read = function (fd, buffer, offset, length, position, callback) { + if (typeof callback === 'function') { + return fs.read(fd, buffer, offset, length, position, callback) + } + return new Promise((resolve, reject) => { + fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => { + if (err) return reject(err) + resolve({ bytesRead, buffer }) + }) + }) +} + +// Function signature can be +// fs.write(fd, buffer[, offset[, length[, position]]], callback) +// OR +// fs.write(fd, string[, position[, encoding]], callback) +// We need to handle both cases, so we use ...args +exports.write = function (fd, buffer, ...args) { + if (typeof args[args.length - 1] === 'function') { + return fs.write(fd, buffer, ...args) + } + + return new Promise((resolve, reject) => { + fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => { + if (err) return reject(err) + resolve({ bytesWritten, buffer }) + }) + }) +} + +// fs.writev only available in Node v12.9.0+ +if (typeof fs.writev === 'function') { + // Function signature is + // s.writev(fd, buffers[, position], callback) + // We need to handle the optional arg, so we use ...args + exports.writev = function (fd, buffers, ...args) { + if (typeof args[args.length - 1] === 'function') { + return fs.writev(fd, buffers, ...args) + } + + return new Promise((resolve, reject) => { + fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => { + if (err) return reject(err) + resolve({ bytesWritten, buffers }) + }) + }) + } +} + +// fs.realpath.native sometimes not available if fs is monkey-patched +if (typeof fs.realpath.native === 'function') { + exports.realpath.native = u(fs.realpath.native) +} else { + process.emitWarning( + 'fs.realpath.native is not a function. Is fs being monkey-patched?', + 'Warning', 'fs-extra-WARN0003' + ) +} diff --git a/node_modules/fs-extra/lib/index.js b/node_modules/fs-extra/lib/index.js new file mode 100644 index 0000000..da6711a --- /dev/null +++ b/node_modules/fs-extra/lib/index.js @@ -0,0 +1,16 @@ +'use strict' + +module.exports = { + // Export promiseified graceful-fs: + ...require('./fs'), + // Export extra methods: + ...require('./copy'), + ...require('./empty'), + ...require('./ensure'), + ...require('./json'), + ...require('./mkdirs'), + ...require('./move'), + ...require('./output-file'), + ...require('./path-exists'), + ...require('./remove') +} diff --git a/node_modules/fs-extra/lib/json/index.js b/node_modules/fs-extra/lib/json/index.js new file mode 100644 index 0000000..900126a --- /dev/null +++ b/node_modules/fs-extra/lib/json/index.js @@ -0,0 +1,16 @@ +'use strict' + +const u = require('universalify').fromPromise +const jsonFile = require('./jsonfile') + +jsonFile.outputJson = u(require('./output-json')) +jsonFile.outputJsonSync = require('./output-json-sync') +// aliases +jsonFile.outputJSON = jsonFile.outputJson +jsonFile.outputJSONSync = jsonFile.outputJsonSync +jsonFile.writeJSON = jsonFile.writeJson +jsonFile.writeJSONSync = jsonFile.writeJsonSync +jsonFile.readJSON = jsonFile.readJson +jsonFile.readJSONSync = jsonFile.readJsonSync + +module.exports = jsonFile diff --git a/node_modules/fs-extra/lib/json/jsonfile.js b/node_modules/fs-extra/lib/json/jsonfile.js new file mode 100644 index 0000000..f11d34d --- /dev/null +++ b/node_modules/fs-extra/lib/json/jsonfile.js @@ -0,0 +1,11 @@ +'use strict' + +const jsonFile = require('jsonfile') + +module.exports = { + // jsonfile exports + readJson: jsonFile.readFile, + readJsonSync: jsonFile.readFileSync, + writeJson: jsonFile.writeFile, + writeJsonSync: jsonFile.writeFileSync +} diff --git a/node_modules/fs-extra/lib/json/output-json-sync.js b/node_modules/fs-extra/lib/json/output-json-sync.js new file mode 100644 index 0000000..d4e564f --- /dev/null +++ b/node_modules/fs-extra/lib/json/output-json-sync.js @@ -0,0 +1,12 @@ +'use strict' + +const { stringify } = require('jsonfile/utils') +const { outputFileSync } = require('../output-file') + +function outputJsonSync (file, data, options) { + const str = stringify(data, options) + + outputFileSync(file, str, options) +} + +module.exports = outputJsonSync diff --git a/node_modules/fs-extra/lib/json/output-json.js b/node_modules/fs-extra/lib/json/output-json.js new file mode 100644 index 0000000..0afdeb6 --- /dev/null +++ b/node_modules/fs-extra/lib/json/output-json.js @@ -0,0 +1,12 @@ +'use strict' + +const { stringify } = require('jsonfile/utils') +const { outputFile } = require('../output-file') + +async function outputJson (file, data, options = {}) { + const str = stringify(data, options) + + await outputFile(file, str, options) +} + +module.exports = outputJson diff --git a/node_modules/fs-extra/lib/mkdirs/index.js b/node_modules/fs-extra/lib/mkdirs/index.js new file mode 100644 index 0000000..9edecee --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/index.js @@ -0,0 +1,14 @@ +'use strict' +const u = require('universalify').fromPromise +const { makeDir: _makeDir, makeDirSync } = require('./make-dir') +const makeDir = u(_makeDir) + +module.exports = { + mkdirs: makeDir, + mkdirsSync: makeDirSync, + // alias + mkdirp: makeDir, + mkdirpSync: makeDirSync, + ensureDir: makeDir, + ensureDirSync: makeDirSync +} diff --git a/node_modules/fs-extra/lib/mkdirs/make-dir.js b/node_modules/fs-extra/lib/mkdirs/make-dir.js new file mode 100644 index 0000000..45ece64 --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/make-dir.js @@ -0,0 +1,27 @@ +'use strict' +const fs = require('../fs') +const { checkPath } = require('./utils') + +const getMode = options => { + const defaults = { mode: 0o777 } + if (typeof options === 'number') return options + return ({ ...defaults, ...options }).mode +} + +module.exports.makeDir = async (dir, options) => { + checkPath(dir) + + return fs.mkdir(dir, { + mode: getMode(options), + recursive: true + }) +} + +module.exports.makeDirSync = (dir, options) => { + checkPath(dir) + + return fs.mkdirSync(dir, { + mode: getMode(options), + recursive: true + }) +} diff --git a/node_modules/fs-extra/lib/mkdirs/utils.js b/node_modules/fs-extra/lib/mkdirs/utils.js new file mode 100644 index 0000000..a4059ad --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/utils.js @@ -0,0 +1,21 @@ +// Adapted from https://github.com/sindresorhus/make-dir +// Copyright (c) Sindre Sorhus (sindresorhus.com) +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +'use strict' +const path = require('path') + +// https://github.com/nodejs/node/issues/8987 +// https://github.com/libuv/libuv/pull/1088 +module.exports.checkPath = function checkPath (pth) { + if (process.platform === 'win32') { + const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')) + + if (pathHasInvalidWinCharacters) { + const error = new Error(`Path contains invalid characters: ${pth}`) + error.code = 'EINVAL' + throw error + } + } +} diff --git a/node_modules/fs-extra/lib/move/index.js b/node_modules/fs-extra/lib/move/index.js new file mode 100644 index 0000000..fcee73c --- /dev/null +++ b/node_modules/fs-extra/lib/move/index.js @@ -0,0 +1,7 @@ +'use strict' + +const u = require('universalify').fromCallback +module.exports = { + move: u(require('./move')), + moveSync: require('./move-sync') +} diff --git a/node_modules/fs-extra/lib/move/move-sync.js b/node_modules/fs-extra/lib/move/move-sync.js new file mode 100644 index 0000000..8453366 --- /dev/null +++ b/node_modules/fs-extra/lib/move/move-sync.js @@ -0,0 +1,54 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const copySync = require('../copy').copySync +const removeSync = require('../remove').removeSync +const mkdirpSync = require('../mkdirs').mkdirpSync +const stat = require('../util/stat') + +function moveSync (src, dest, opts) { + opts = opts || {} + const overwrite = opts.overwrite || opts.clobber || false + + const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, 'move', opts) + stat.checkParentPathsSync(src, srcStat, dest, 'move') + if (!isParentRoot(dest)) mkdirpSync(path.dirname(dest)) + return doRename(src, dest, overwrite, isChangingCase) +} + +function isParentRoot (dest) { + const parent = path.dirname(dest) + const parsedPath = path.parse(parent) + return parsedPath.root === parent +} + +function doRename (src, dest, overwrite, isChangingCase) { + if (isChangingCase) return rename(src, dest, overwrite) + if (overwrite) { + removeSync(dest) + return rename(src, dest, overwrite) + } + if (fs.existsSync(dest)) throw new Error('dest already exists.') + return rename(src, dest, overwrite) +} + +function rename (src, dest, overwrite) { + try { + fs.renameSync(src, dest) + } catch (err) { + if (err.code !== 'EXDEV') throw err + return moveAcrossDevice(src, dest, overwrite) + } +} + +function moveAcrossDevice (src, dest, overwrite) { + const opts = { + overwrite, + errorOnExist: true + } + copySync(src, dest, opts) + return removeSync(src) +} + +module.exports = moveSync diff --git a/node_modules/fs-extra/lib/move/move.js b/node_modules/fs-extra/lib/move/move.js new file mode 100644 index 0000000..7dc6ecd --- /dev/null +++ b/node_modules/fs-extra/lib/move/move.js @@ -0,0 +1,75 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const copy = require('../copy').copy +const remove = require('../remove').remove +const mkdirp = require('../mkdirs').mkdirp +const pathExists = require('../path-exists').pathExists +const stat = require('../util/stat') + +function move (src, dest, opts, cb) { + if (typeof opts === 'function') { + cb = opts + opts = {} + } + + opts = opts || {} + + const overwrite = opts.overwrite || opts.clobber || false + + stat.checkPaths(src, dest, 'move', opts, (err, stats) => { + if (err) return cb(err) + const { srcStat, isChangingCase = false } = stats + stat.checkParentPaths(src, srcStat, dest, 'move', err => { + if (err) return cb(err) + if (isParentRoot(dest)) return doRename(src, dest, overwrite, isChangingCase, cb) + mkdirp(path.dirname(dest), err => { + if (err) return cb(err) + return doRename(src, dest, overwrite, isChangingCase, cb) + }) + }) + }) +} + +function isParentRoot (dest) { + const parent = path.dirname(dest) + const parsedPath = path.parse(parent) + return parsedPath.root === parent +} + +function doRename (src, dest, overwrite, isChangingCase, cb) { + if (isChangingCase) return rename(src, dest, overwrite, cb) + if (overwrite) { + return remove(dest, err => { + if (err) return cb(err) + return rename(src, dest, overwrite, cb) + }) + } + pathExists(dest, (err, destExists) => { + if (err) return cb(err) + if (destExists) return cb(new Error('dest already exists.')) + return rename(src, dest, overwrite, cb) + }) +} + +function rename (src, dest, overwrite, cb) { + fs.rename(src, dest, err => { + if (!err) return cb() + if (err.code !== 'EXDEV') return cb(err) + return moveAcrossDevice(src, dest, overwrite, cb) + }) +} + +function moveAcrossDevice (src, dest, overwrite, cb) { + const opts = { + overwrite, + errorOnExist: true + } + copy(src, dest, opts, err => { + if (err) return cb(err) + return remove(src, cb) + }) +} + +module.exports = move diff --git a/node_modules/fs-extra/lib/output-file/index.js b/node_modules/fs-extra/lib/output-file/index.js new file mode 100644 index 0000000..92297ca --- /dev/null +++ b/node_modules/fs-extra/lib/output-file/index.js @@ -0,0 +1,40 @@ +'use strict' + +const u = require('universalify').fromCallback +const fs = require('graceful-fs') +const path = require('path') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists + +function outputFile (file, data, encoding, callback) { + if (typeof encoding === 'function') { + callback = encoding + encoding = 'utf8' + } + + const dir = path.dirname(file) + pathExists(dir, (err, itDoes) => { + if (err) return callback(err) + if (itDoes) return fs.writeFile(file, data, encoding, callback) + + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + + fs.writeFile(file, data, encoding, callback) + }) + }) +} + +function outputFileSync (file, ...args) { + const dir = path.dirname(file) + if (fs.existsSync(dir)) { + return fs.writeFileSync(file, ...args) + } + mkdir.mkdirsSync(dir) + fs.writeFileSync(file, ...args) +} + +module.exports = { + outputFile: u(outputFile), + outputFileSync +} diff --git a/node_modules/fs-extra/lib/path-exists/index.js b/node_modules/fs-extra/lib/path-exists/index.js new file mode 100644 index 0000000..ddd9bc7 --- /dev/null +++ b/node_modules/fs-extra/lib/path-exists/index.js @@ -0,0 +1,12 @@ +'use strict' +const u = require('universalify').fromPromise +const fs = require('../fs') + +function pathExists (path) { + return fs.access(path).then(() => true).catch(() => false) +} + +module.exports = { + pathExists: u(pathExists), + pathExistsSync: fs.existsSync +} diff --git a/node_modules/fs-extra/lib/remove/index.js b/node_modules/fs-extra/lib/remove/index.js new file mode 100644 index 0000000..4428e59 --- /dev/null +++ b/node_modules/fs-extra/lib/remove/index.js @@ -0,0 +1,22 @@ +'use strict' + +const fs = require('graceful-fs') +const u = require('universalify').fromCallback +const rimraf = require('./rimraf') + +function remove (path, callback) { + // Node 14.14.0+ + if (fs.rm) return fs.rm(path, { recursive: true, force: true }, callback) + rimraf(path, callback) +} + +function removeSync (path) { + // Node 14.14.0+ + if (fs.rmSync) return fs.rmSync(path, { recursive: true, force: true }) + rimraf.sync(path) +} + +module.exports = { + remove: u(remove), + removeSync +} diff --git a/node_modules/fs-extra/lib/remove/rimraf.js b/node_modules/fs-extra/lib/remove/rimraf.js new file mode 100644 index 0000000..2c77102 --- /dev/null +++ b/node_modules/fs-extra/lib/remove/rimraf.js @@ -0,0 +1,302 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const assert = require('assert') + +const isWindows = (process.platform === 'win32') + +function defaults (options) { + const methods = [ + 'unlink', + 'chmod', + 'stat', + 'lstat', + 'rmdir', + 'readdir' + ] + methods.forEach(m => { + options[m] = options[m] || fs[m] + m = m + 'Sync' + options[m] = options[m] || fs[m] + }) + + options.maxBusyTries = options.maxBusyTries || 3 +} + +function rimraf (p, options, cb) { + let busyTries = 0 + + if (typeof options === 'function') { + cb = options + options = {} + } + + assert(p, 'rimraf: missing path') + assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') + assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required') + assert(options, 'rimraf: invalid options argument provided') + assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') + + defaults(options) + + rimraf_(p, options, function CB (er) { + if (er) { + if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') && + busyTries < options.maxBusyTries) { + busyTries++ + const time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(() => rimraf_(p, options, CB), time) + } + + // already gone + if (er.code === 'ENOENT') er = null + } + + cb(er) + }) +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // sunos lets the root user unlink directories, which is... weird. + // so we have to lstat here and make sure it's not a dir. + options.lstat(p, (er, st) => { + if (er && er.code === 'ENOENT') { + return cb(null) + } + + // Windows can EPERM on stat. Life is suffering. + if (er && er.code === 'EPERM' && isWindows) { + return fixWinEPERM(p, options, er, cb) + } + + if (st && st.isDirectory()) { + return rmdir(p, options, er, cb) + } + + options.unlink(p, er => { + if (er) { + if (er.code === 'ENOENT') { + return cb(null) + } + if (er.code === 'EPERM') { + return (isWindows) + ? fixWinEPERM(p, options, er, cb) + : rmdir(p, options, er, cb) + } + if (er.code === 'EISDIR') { + return rmdir(p, options, er, cb) + } + } + return cb(er) + }) + }) +} + +function fixWinEPERM (p, options, er, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.chmod(p, 0o666, er2 => { + if (er2) { + cb(er2.code === 'ENOENT' ? null : er) + } else { + options.stat(p, (er3, stats) => { + if (er3) { + cb(er3.code === 'ENOENT' ? null : er) + } else if (stats.isDirectory()) { + rmdir(p, options, er, cb) + } else { + options.unlink(p, cb) + } + }) + } + }) +} + +function fixWinEPERMSync (p, options, er) { + let stats + + assert(p) + assert(options) + + try { + options.chmodSync(p, 0o666) + } catch (er2) { + if (er2.code === 'ENOENT') { + return + } else { + throw er + } + } + + try { + stats = options.statSync(p) + } catch (er3) { + if (er3.code === 'ENOENT') { + return + } else { + throw er + } + } + + if (stats.isDirectory()) { + rmdirSync(p, options, er) + } else { + options.unlinkSync(p) + } +} + +function rmdir (p, options, originalEr, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + options.rmdir(p, er => { + if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) { + rmkids(p, options, cb) + } else if (er && er.code === 'ENOTDIR') { + cb(originalEr) + } else { + cb(er) + } + }) +} + +function rmkids (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.readdir(p, (er, files) => { + if (er) return cb(er) + + let n = files.length + let errState + + if (n === 0) return options.rmdir(p, cb) + + files.forEach(f => { + rimraf(path.join(p, f), options, er => { + if (errState) { + return + } + if (er) return cb(errState = er) + if (--n === 0) { + options.rmdir(p, cb) + } + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p, options) { + let st + + options = options || {} + defaults(options) + + assert(p, 'rimraf: missing path') + assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') + + try { + st = options.lstatSync(p) + } catch (er) { + if (er.code === 'ENOENT') { + return + } + + // Windows can EPERM on stat. Life is suffering. + if (er.code === 'EPERM' && isWindows) { + fixWinEPERMSync(p, options, er) + } + } + + try { + // sunos lets the root user unlink directories, which is... weird. + if (st && st.isDirectory()) { + rmdirSync(p, options, null) + } else { + options.unlinkSync(p) + } + } catch (er) { + if (er.code === 'ENOENT') { + return + } else if (er.code === 'EPERM') { + return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) + } else if (er.code !== 'EISDIR') { + throw er + } + rmdirSync(p, options, er) + } +} + +function rmdirSync (p, options, originalEr) { + assert(p) + assert(options) + + try { + options.rmdirSync(p) + } catch (er) { + if (er.code === 'ENOTDIR') { + throw originalEr + } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') { + rmkidsSync(p, options) + } else if (er.code !== 'ENOENT') { + throw er + } + } +} + +function rmkidsSync (p, options) { + assert(p) + assert(options) + options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)) + + if (isWindows) { + // We only end up here once we got ENOTEMPTY at least once, and + // at this point, we are guaranteed to have removed all the kids. + // So, we know that it won't be ENOENT or ENOTDIR or anything else. + // try really hard to delete stuff on windows, because it has a + // PROFOUNDLY annoying habit of not closing handles promptly when + // files are deleted, resulting in spurious ENOTEMPTY errors. + const startTime = Date.now() + do { + try { + const ret = options.rmdirSync(p, options) + return ret + } catch {} + } while (Date.now() - startTime < 500) // give up after 500ms + } else { + const ret = options.rmdirSync(p, options) + return ret + } +} + +module.exports = rimraf +rimraf.sync = rimrafSync diff --git a/node_modules/fs-extra/lib/util/stat.js b/node_modules/fs-extra/lib/util/stat.js new file mode 100644 index 0000000..0ed5aec --- /dev/null +++ b/node_modules/fs-extra/lib/util/stat.js @@ -0,0 +1,154 @@ +'use strict' + +const fs = require('../fs') +const path = require('path') +const util = require('util') + +function getStats (src, dest, opts) { + const statFunc = opts.dereference + ? (file) => fs.stat(file, { bigint: true }) + : (file) => fs.lstat(file, { bigint: true }) + return Promise.all([ + statFunc(src), + statFunc(dest).catch(err => { + if (err.code === 'ENOENT') return null + throw err + }) + ]).then(([srcStat, destStat]) => ({ srcStat, destStat })) +} + +function getStatsSync (src, dest, opts) { + let destStat + const statFunc = opts.dereference + ? (file) => fs.statSync(file, { bigint: true }) + : (file) => fs.lstatSync(file, { bigint: true }) + const srcStat = statFunc(src) + try { + destStat = statFunc(dest) + } catch (err) { + if (err.code === 'ENOENT') return { srcStat, destStat: null } + throw err + } + return { srcStat, destStat } +} + +function checkPaths (src, dest, funcName, opts, cb) { + util.callbackify(getStats)(src, dest, opts, (err, stats) => { + if (err) return cb(err) + const { srcStat, destStat } = stats + + if (destStat) { + if (areIdentical(srcStat, destStat)) { + const srcBaseName = path.basename(src) + const destBaseName = path.basename(dest) + if (funcName === 'move' && + srcBaseName !== destBaseName && + srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { + return cb(null, { srcStat, destStat, isChangingCase: true }) + } + return cb(new Error('Source and destination must not be the same.')) + } + if (srcStat.isDirectory() && !destStat.isDirectory()) { + return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)) + } + if (!srcStat.isDirectory() && destStat.isDirectory()) { + return cb(new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)) + } + } + + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return cb(null, { srcStat, destStat }) + }) +} + +function checkPathsSync (src, dest, funcName, opts) { + const { srcStat, destStat } = getStatsSync(src, dest, opts) + + if (destStat) { + if (areIdentical(srcStat, destStat)) { + const srcBaseName = path.basename(src) + const destBaseName = path.basename(dest) + if (funcName === 'move' && + srcBaseName !== destBaseName && + srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { + return { srcStat, destStat, isChangingCase: true } + } + throw new Error('Source and destination must not be the same.') + } + if (srcStat.isDirectory() && !destStat.isDirectory()) { + throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`) + } + if (!srcStat.isDirectory() && destStat.isDirectory()) { + throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`) + } + } + + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + throw new Error(errMsg(src, dest, funcName)) + } + return { srcStat, destStat } +} + +// recursively check if dest parent is a subdirectory of src. +// It works for all file types including symlinks since it +// checks the src and dest inodes. It starts from the deepest +// parent and stops once it reaches the src parent or the root path. +function checkParentPaths (src, srcStat, dest, funcName, cb) { + const srcParent = path.resolve(path.dirname(src)) + const destParent = path.resolve(path.dirname(dest)) + if (destParent === srcParent || destParent === path.parse(destParent).root) return cb() + fs.stat(destParent, { bigint: true }, (err, destStat) => { + if (err) { + if (err.code === 'ENOENT') return cb() + return cb(err) + } + if (areIdentical(srcStat, destStat)) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return checkParentPaths(src, srcStat, destParent, funcName, cb) + }) +} + +function checkParentPathsSync (src, srcStat, dest, funcName) { + const srcParent = path.resolve(path.dirname(src)) + const destParent = path.resolve(path.dirname(dest)) + if (destParent === srcParent || destParent === path.parse(destParent).root) return + let destStat + try { + destStat = fs.statSync(destParent, { bigint: true }) + } catch (err) { + if (err.code === 'ENOENT') return + throw err + } + if (areIdentical(srcStat, destStat)) { + throw new Error(errMsg(src, dest, funcName)) + } + return checkParentPathsSync(src, srcStat, destParent, funcName) +} + +function areIdentical (srcStat, destStat) { + return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev +} + +// return true if dest is a subdir of src, otherwise false. +// It only checks the path strings. +function isSrcSubdir (src, dest) { + const srcArr = path.resolve(src).split(path.sep).filter(i => i) + const destArr = path.resolve(dest).split(path.sep).filter(i => i) + return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true) +} + +function errMsg (src, dest, funcName) { + return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.` +} + +module.exports = { + checkPaths, + checkPathsSync, + checkParentPaths, + checkParentPathsSync, + isSrcSubdir, + areIdentical +} diff --git a/node_modules/fs-extra/lib/util/utimes.js b/node_modules/fs-extra/lib/util/utimes.js new file mode 100644 index 0000000..75395de --- /dev/null +++ b/node_modules/fs-extra/lib/util/utimes.js @@ -0,0 +1,26 @@ +'use strict' + +const fs = require('graceful-fs') + +function utimesMillis (path, atime, mtime, callback) { + // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback) + fs.open(path, 'r+', (err, fd) => { + if (err) return callback(err) + fs.futimes(fd, atime, mtime, futimesErr => { + fs.close(fd, closeErr => { + if (callback) callback(futimesErr || closeErr) + }) + }) + }) +} + +function utimesMillisSync (path, atime, mtime) { + const fd = fs.openSync(path, 'r+') + fs.futimesSync(fd, atime, mtime) + return fs.closeSync(fd) +} + +module.exports = { + utimesMillis, + utimesMillisSync +} diff --git a/node_modules/fs-extra/package.json b/node_modules/fs-extra/package.json new file mode 100644 index 0000000..059000e --- /dev/null +++ b/node_modules/fs-extra/package.json @@ -0,0 +1,67 @@ +{ + "name": "fs-extra", + "version": "10.1.0", + "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.", + "engines": { + "node": ">=12" + }, + "homepage": "https://github.com/jprichardson/node-fs-extra", + "repository": { + "type": "git", + "url": "https://github.com/jprichardson/node-fs-extra" + }, + "keywords": [ + "fs", + "file", + "file system", + "copy", + "directory", + "extra", + "mkdirp", + "mkdir", + "mkdirs", + "recursive", + "json", + "read", + "write", + "extra", + "delete", + "remove", + "touch", + "create", + "text", + "output", + "move", + "promise" + ], + "author": "JP Richardson ", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "devDependencies": { + "at-least-node": "^1.0.0", + "klaw": "^2.1.1", + "klaw-sync": "^3.0.2", + "minimist": "^1.1.1", + "mocha": "^5.0.5", + "nyc": "^15.0.0", + "proxyquire": "^2.0.1", + "read-dir-files": "^0.1.1", + "standard": "^16.0.3" + }, + "main": "./lib/index.js", + "files": [ + "lib/", + "!lib/**/__tests__/" + ], + "scripts": { + "lint": "standard", + "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha", + "test": "npm run lint && npm run unit", + "unit": "nyc node test.js" + }, + "sideEffects": false +} diff --git a/node_modules/get-caller-file/LICENSE.md b/node_modules/get-caller-file/LICENSE.md new file mode 100644 index 0000000..bf3e1c0 --- /dev/null +++ b/node_modules/get-caller-file/LICENSE.md @@ -0,0 +1,6 @@ +ISC License (ISC) +Copyright 2018 Stefan Penner + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/get-caller-file/README.md b/node_modules/get-caller-file/README.md new file mode 100644 index 0000000..a7d8c07 --- /dev/null +++ b/node_modules/get-caller-file/README.md @@ -0,0 +1,41 @@ +# get-caller-file + +[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) +[![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master) + +This is a utility, which allows a function to figure out from which file it was invoked. It does so by inspecting v8's stack trace at the time it is invoked. + +Inspired by http://stackoverflow.com/questions/13227489 + +*note: this relies on Node/V8 specific APIs, as such other runtimes may not work* + +## Installation + +```bash +yarn add get-caller-file +``` + +## Usage + +Given: + +```js +// ./foo.js +const getCallerFile = require('get-caller-file'); + +module.exports = function() { + return getCallerFile(); // figures out who called it +}; +``` + +```js +// index.js +const foo = require('./foo'); + +foo() // => /full/path/to/this/file/index.js +``` + + +## Options: + +* `getCallerFile(position = 2)`: where position is stack frame whos fileName we want. diff --git a/node_modules/get-caller-file/index.d.ts b/node_modules/get-caller-file/index.d.ts new file mode 100644 index 0000000..babed69 --- /dev/null +++ b/node_modules/get-caller-file/index.d.ts @@ -0,0 +1,2 @@ +declare const _default: (position?: number) => any; +export = _default; diff --git a/node_modules/get-caller-file/index.js b/node_modules/get-caller-file/index.js new file mode 100644 index 0000000..57304f8 --- /dev/null +++ b/node_modules/get-caller-file/index.js @@ -0,0 +1,22 @@ +"use strict"; +// Call this function in a another function to find out the file from +// which that function was called from. (Inspects the v8 stack trace) +// +// Inspired by http://stackoverflow.com/questions/13227489 +module.exports = function getCallerFile(position) { + if (position === void 0) { position = 2; } + if (position >= Error.stackTraceLimit) { + throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`'); + } + var oldPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = function (_, stack) { return stack; }; + var stack = new Error().stack; + Error.prepareStackTrace = oldPrepareStackTrace; + if (stack !== null && typeof stack === 'object') { + // stack[0] holds this file + // stack[1] holds where this function was called + // stack[2] holds the file we're interested in + return stack[position] ? stack[position].getFileName() : undefined; + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/get-caller-file/index.js.map b/node_modules/get-caller-file/index.js.map new file mode 100644 index 0000000..89c655c --- /dev/null +++ b/node_modules/get-caller-file/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,qEAAqE;AACrE,EAAE;AACF,0DAA0D;AAE1D,iBAAS,SAAS,aAAa,CAAC,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAC1C,IAAI,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,kGAAkG,GAAG,QAAQ,GAAG,oCAAoC,GAAG,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;KACzM;IAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,CAAC,iBAAiB,GAAG,UAAC,CAAC,EAAE,KAAK,IAAM,OAAA,KAAK,EAAL,CAAK,CAAC;IAC/C,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAG/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC/C,2BAA2B;QAC3B,gDAAgD;QAChD,8CAA8C;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAQ,CAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KAC7E;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/get-caller-file/package.json b/node_modules/get-caller-file/package.json new file mode 100644 index 0000000..b0dd571 --- /dev/null +++ b/node_modules/get-caller-file/package.json @@ -0,0 +1,42 @@ +{ + "name": "get-caller-file", + "version": "2.0.5", + "description": "", + "main": "index.js", + "directories": { + "test": "tests" + }, + "files": [ + "index.js", + "index.js.map", + "index.d.ts" + ], + "scripts": { + "prepare": "tsc", + "test": "mocha test", + "test:debug": "mocha test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/stefanpenner/get-caller-file.git" + }, + "author": "Stefan Penner", + "license": "ISC", + "bugs": { + "url": "https://github.com/stefanpenner/get-caller-file/issues" + }, + "homepage": "https://github.com/stefanpenner/get-caller-file#readme", + "devDependencies": { + "@types/chai": "^4.1.7", + "@types/ensure-posix-path": "^1.0.0", + "@types/mocha": "^5.2.6", + "@types/node": "^11.10.5", + "chai": "^4.1.2", + "ensure-posix-path": "^1.0.1", + "mocha": "^5.2.0", + "typescript": "^3.3.3333" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } +} diff --git a/node_modules/get-stdin/index.d.ts b/node_modules/get-stdin/index.d.ts new file mode 100644 index 0000000..c2a0605 --- /dev/null +++ b/node_modules/get-stdin/index.d.ts @@ -0,0 +1,29 @@ +declare const getStdin: { + /** + Get [`stdin`](https://nodejs.org/api/process.html#process_process_stdin) as a `string`. + + @returns A promise that is resolved when the `end` event fires on the `stdin` stream, indicating that there is no more data to be read. In a TTY context, an empty `string` is returned. + + @example + ``` + // example.ts + import getStdin from 'get-stdin'; + + console.log(await getStdin()); + //=> 'unicorns' + + // $ echo unicorns | ts-node example.ts + // unicorns + ``` + */ + (): Promise; + + /** + Get [`stdin`](https://nodejs.org/api/process.html#process_process_stdin) as a `Buffer`. + + @returns A promise that is resolved when the `end` event fires on the `stdin` stream, indicating that there is no more data to be read. In a TTY context, an empty `Buffer` is returned. + */ + buffer(): Promise; +}; + +export default getStdin; diff --git a/node_modules/get-stdin/index.js b/node_modules/get-stdin/index.js new file mode 100644 index 0000000..e8182da --- /dev/null +++ b/node_modules/get-stdin/index.js @@ -0,0 +1,33 @@ +const {stdin} = process; + +export default async function getStdin() { + let result = ''; + + if (stdin.isTTY) { + return result; + } + + stdin.setEncoding('utf8'); + + for await (const chunk of stdin) { + result += chunk; + } + + return result; +} + +getStdin.buffer = async () => { + const result = []; + let length = 0; + + if (stdin.isTTY) { + return Buffer.concat([]); + } + + for await (const chunk of stdin) { + result.push(chunk); + length += chunk.length; + } + + return Buffer.concat(result, length); +}; diff --git a/node_modules/get-stdin/license b/node_modules/get-stdin/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/get-stdin/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/get-stdin/package.json b/node_modules/get-stdin/package.json new file mode 100644 index 0000000..bd758aa --- /dev/null +++ b/node_modules/get-stdin/package.json @@ -0,0 +1,42 @@ +{ + "name": "get-stdin", + "version": "9.0.0", + "description": "Get stdin as a string or buffer", + "license": "MIT", + "repository": "sindresorhus/get-stdin", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "test": "xo && ava test.js test-buffer.js && echo unicorns | node test-real.js && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "std", + "stdin", + "stdio", + "concat", + "buffer", + "stream", + "process", + "read" + ], + "devDependencies": { + "@types/node": "^14.14.41", + "ava": "^3.15.0", + "delay": "^5.0.0", + "tsd": "^0.14.0", + "xo": "^0.38.2" + } +} diff --git a/node_modules/get-stdin/readme.md b/node_modules/get-stdin/readme.md new file mode 100644 index 0000000..ede347a --- /dev/null +++ b/node_modules/get-stdin/readme.md @@ -0,0 +1,56 @@ +# get-stdin + +> Get [stdin](https://nodejs.org/api/process.html#process_process_stdin) as a string or buffer + +## Install + +``` +$ npm install get-stdin +``` + +## Usage + +```js +// example.js +import getStdin from 'get-stdin'; + +console.log(await getStdin()); +//=> 'unicorns' +``` + +``` +$ echo unicorns | node example.js +unicorns +``` + +## API + +Both methods returns a promise that is resolved when the `end` event fires on the `stdin` stream, indicating that there is no more data to be read. + +### getStdin() + +Get `stdin` as a `string`. + +In a TTY context, a promise that resolves to an empty `string` is returned. + +### getStdin.buffer() + +Get `stdin` as a `Buffer`. + +In a TTY context, a promise that resolves to an empty `Buffer` is returned. + +## Related + +- [get-stream](https://github.com/sindresorhus/get-stream) - Get a stream as a string or buffer + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/glob-parent/CHANGELOG.md b/node_modules/glob-parent/CHANGELOG.md new file mode 100644 index 0000000..fb9de96 --- /dev/null +++ b/node_modules/glob-parent/CHANGELOG.md @@ -0,0 +1,110 @@ +### [5.1.2](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2) (2021-03-06) + + +### Bug Fixes + +* eliminate ReDoS ([#36](https://github.com/gulpjs/glob-parent/issues/36)) ([f923116](https://github.com/gulpjs/glob-parent/commit/f9231168b0041fea3f8f954b3cceb56269fc6366)) + +### [5.1.1](https://github.com/gulpjs/glob-parent/compare/v5.1.0...v5.1.1) (2021-01-27) + + +### Bug Fixes + +* unescape exclamation mark ([#26](https://github.com/gulpjs/glob-parent/issues/26)) ([a98874f](https://github.com/gulpjs/glob-parent/commit/a98874f1a59e407f4fb1beb0db4efa8392da60bb)) + +## [5.1.0](https://github.com/gulpjs/glob-parent/compare/v5.0.0...v5.1.0) (2021-01-27) + + +### Features + +* add `flipBackslashes` option to disable auto conversion of slashes (closes [#24](https://github.com/gulpjs/glob-parent/issues/24)) ([#25](https://github.com/gulpjs/glob-parent/issues/25)) ([eecf91d](https://github.com/gulpjs/glob-parent/commit/eecf91d5e3834ed78aee39c4eaaae654d76b87b3)) + +## [5.0.0](https://github.com/gulpjs/glob-parent/compare/v4.0.0...v5.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* Drop support for node <6 & bump dependencies + +### Miscellaneous Chores + +* Drop support for node <6 & bump dependencies ([896c0c0](https://github.com/gulpjs/glob-parent/commit/896c0c00b4e7362f60b96e7fc295ae929245255a)) + +## [4.0.0](https://github.com/gulpjs/glob-parent/compare/v3.1.0...v4.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* question marks are valid path characters on Windows so avoid flagging as a glob when alone +* Update is-glob dependency + +### Features + +* hoist regexps and strings for performance gains ([4a80667](https://github.com/gulpjs/glob-parent/commit/4a80667c69355c76a572a5892b0f133c8e1f457e)) +* question marks are valid path characters on Windows so avoid flagging as a glob when alone ([2a551dd](https://github.com/gulpjs/glob-parent/commit/2a551dd0dc3235e78bf3c94843d4107072d17841)) +* Update is-glob dependency ([e41fcd8](https://github.com/gulpjs/glob-parent/commit/e41fcd895d1f7bc617dba45c9d935a7949b9c281)) + +## [3.1.0](https://github.com/gulpjs/glob-parent/compare/v3.0.1...v3.1.0) (2021-01-27) + + +### Features + +* allow basic win32 backslash use ([272afa5](https://github.com/gulpjs/glob-parent/commit/272afa5fd070fc0f796386a5993d4ee4a846988b)) +* handle extglobs (parentheses) containing separators ([7db1bdb](https://github.com/gulpjs/glob-parent/commit/7db1bdb0756e55fd14619e8ce31aa31b17b117fd)) +* new approach to braces/brackets handling ([8269bd8](https://github.com/gulpjs/glob-parent/commit/8269bd89290d99fac9395a354fb56fdcdb80f0be)) +* pre-process braces/brackets sections ([9ef8a87](https://github.com/gulpjs/glob-parent/commit/9ef8a87f66b1a43d0591e7a8e4fc5a18415ee388)) +* preserve escaped brace/bracket at end of string ([8cfb0ba](https://github.com/gulpjs/glob-parent/commit/8cfb0ba84202d51571340dcbaf61b79d16a26c76)) + + +### Bug Fixes + +* trailing escaped square brackets ([99ec9fe](https://github.com/gulpjs/glob-parent/commit/99ec9fecc60ee488ded20a94dd4f18b4f55c4ccf)) + +### [3.0.1](https://github.com/gulpjs/glob-parent/compare/v3.0.0...v3.0.1) (2021-01-27) + + +### Features + +* use path-dirname ponyfill ([cdbea5f](https://github.com/gulpjs/glob-parent/commit/cdbea5f32a58a54e001a75ddd7c0fccd4776aacc)) + + +### Bug Fixes + +* unescape glob-escaped dirnames on output ([598c533](https://github.com/gulpjs/glob-parent/commit/598c533bdf49c1428bc063aa9b8db40c5a86b030)) + +## [3.0.0](https://github.com/gulpjs/glob-parent/compare/v2.0.0...v3.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* update is-glob dependency + +### Features + +* update is-glob dependency ([5c5f8ef](https://github.com/gulpjs/glob-parent/commit/5c5f8efcee362a8e7638cf8220666acd8784f6bd)) + +## [2.0.0](https://github.com/gulpjs/glob-parent/compare/v1.3.0...v2.0.0) (2021-01-27) + + +### Features + +* move up to dirname regardless of glob characters ([f97fb83](https://github.com/gulpjs/glob-parent/commit/f97fb83be2e0a9fc8d3b760e789d2ecadd6aa0c2)) + +## [1.3.0](https://github.com/gulpjs/glob-parent/compare/v1.2.0...v1.3.0) (2021-01-27) + +## [1.2.0](https://github.com/gulpjs/glob-parent/compare/v1.1.0...v1.2.0) (2021-01-27) + + +### Reverts + +* feat: make regex test strings smaller ([dc80fa9](https://github.com/gulpjs/glob-parent/commit/dc80fa9658dca20549cfeba44bbd37d5246fcce0)) + +## [1.1.0](https://github.com/gulpjs/glob-parent/compare/v1.0.0...v1.1.0) (2021-01-27) + + +### Features + +* make regex test strings smaller ([cd83220](https://github.com/gulpjs/glob-parent/commit/cd832208638f45169f986d80fcf66e401f35d233)) + +## 1.0.0 (2021-01-27) + diff --git a/node_modules/glob-parent/LICENSE b/node_modules/glob-parent/LICENSE new file mode 100644 index 0000000..63222d7 --- /dev/null +++ b/node_modules/glob-parent/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/glob-parent/README.md b/node_modules/glob-parent/README.md new file mode 100644 index 0000000..36a2793 --- /dev/null +++ b/node_modules/glob-parent/README.md @@ -0,0 +1,137 @@ +

+ + + +

+ +# glob-parent + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] + +Extract the non-magic parent path from a glob string. + +## Usage + +```js +var globParent = require('glob-parent'); + +globParent('path/to/*.js'); // 'path/to' +globParent('/root/path/to/*.js'); // '/root/path/to' +globParent('/*.js'); // '/' +globParent('*.js'); // '.' +globParent('**/*.js'); // '.' +globParent('path/{to,from}'); // 'path' +globParent('path/!(to|from)'); // 'path' +globParent('path/?(to|from)'); // 'path' +globParent('path/+(to|from)'); // 'path' +globParent('path/*(to|from)'); // 'path' +globParent('path/@(to|from)'); // 'path' +globParent('path/**/*'); // 'path' + +// if provided a non-glob path, returns the nearest dir +globParent('path/foo/bar.js'); // 'path/foo' +globParent('path/foo/'); // 'path/foo' +globParent('path/foo'); // 'path' (see issue #3 for details) +``` + +## API + +### `globParent(maybeGlobString, [options])` + +Takes a string and returns the part of the path before the glob begins. Be aware of Escaping rules and Limitations below. + +#### options + +```js +{ + // Disables the automatic conversion of slashes for Windows + flipBackslashes: true +} +``` + +## Escaping + +The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters: + +- `?` (question mark) unless used as a path segment alone +- `*` (asterisk) +- `|` (pipe) +- `(` (opening parenthesis) +- `)` (closing parenthesis) +- `{` (opening curly brace) +- `}` (closing curly brace) +- `[` (opening bracket) +- `]` (closing bracket) + +**Example** + +```js +globParent('foo/[bar]/') // 'foo' +globParent('foo/\\[bar]/') // 'foo/[bar]' +``` + +## Limitations + +### Braces & Brackets +This library attempts a quick and imperfect method of determining which path +parts have glob magic without fully parsing/lexing the pattern. There are some +advanced use cases that can trip it up, such as nested braces where the outer +pair is escaped and the inner one contains a path separator. If you find +yourself in the unlikely circumstance of being affected by this or need to +ensure higher-fidelity glob handling in your library, it is recommended that you +pre-process your input with [expand-braces] and/or [expand-brackets]. + +### Windows +Backslashes are not valid path separators for globs. If a path with backslashes +is provided anyway, for simple cases, glob-parent will replace the path +separator for you and return the non-glob parent path (now with +forward-slashes, which are still valid as Windows path separators). + +This cannot be used in conjunction with escape characters. + +```js +// BAD +globParent('C:\\Program Files \\(x86\\)\\*.ext') // 'C:/Program Files /(x86/)' + +// GOOD +globParent('C:/Program Files\\(x86\\)/*.ext') // 'C:/Program Files (x86)' +``` + +If you are using escape characters for a pattern without path parts (i.e. +relative to `cwd`), prefix with `./` to avoid confusing glob-parent. + +```js +// BAD +globParent('foo \\[bar]') // 'foo ' +globParent('foo \\[bar]*') // 'foo ' + +// GOOD +globParent('./foo \\[bar]') // 'foo [bar]' +globParent('./foo \\[bar]*') // '.' +``` + +## License + +ISC + +[expand-braces]: https://github.com/jonschlinkert/expand-braces +[expand-brackets]: https://github.com/jonschlinkert/expand-brackets + +[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg +[npm-url]: https://www.npmjs.com/package/glob-parent +[npm-image]: https://img.shields.io/npm/v/glob-parent.svg + +[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=2&branchName=master +[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/glob-parent?branchName=master + +[travis-url]: https://travis-ci.org/gulpjs/glob-parent +[travis-image]: https://img.shields.io/travis/gulpjs/glob-parent.svg?label=travis-ci + +[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-parent +[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-parent.svg?label=appveyor + +[coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg + +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js new file mode 100644 index 0000000..09e257e --- /dev/null +++ b/node_modules/glob-parent/index.js @@ -0,0 +1,42 @@ +'use strict'; + +var isGlob = require('is-glob'); +var pathPosixDirname = require('path').posix.dirname; +var isWin32 = require('os').platform() === 'win32'; + +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} + */ +module.exports = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); + + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } + + // preserves full path in case of trailing path separator + str += 'a'; + + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; diff --git a/node_modules/glob-parent/package.json b/node_modules/glob-parent/package.json new file mode 100644 index 0000000..125c971 --- /dev/null +++ b/node_modules/glob-parent/package.json @@ -0,0 +1,48 @@ +{ + "name": "glob-parent", + "version": "5.1.2", + "description": "Extract the non-magic parent path from a glob string.", + "author": "Gulp Team (https://gulpjs.com/)", + "contributors": [ + "Elan Shanker (https://github.com/es128)", + "Blaine Bublitz " + ], + "repository": "gulpjs/glob-parent", + "license": "ISC", + "engines": { + "node": ">= 6" + }, + "main": "index.js", + "files": [ + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "nyc mocha --async-only", + "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "dependencies": { + "is-glob": "^4.0.1" + }, + "devDependencies": { + "coveralls": "^3.0.11", + "eslint": "^2.13.1", + "eslint-config-gulp": "^3.0.1", + "expect": "^1.20.2", + "mocha": "^6.0.2", + "nyc": "^13.3.0" + }, + "keywords": [ + "glob", + "parent", + "strip", + "path", + "dirname", + "directory", + "base", + "wildcard" + ] +} diff --git a/node_modules/globby/gitignore.js b/node_modules/globby/gitignore.js new file mode 100644 index 0000000..dc26aa2 --- /dev/null +++ b/node_modules/globby/gitignore.js @@ -0,0 +1,108 @@ +import process from 'node:process'; +import fs from 'node:fs'; +import path from 'node:path'; +import fastGlob from 'fast-glob'; +import gitIgnore from 'ignore'; +import slash from 'slash'; +import toPath from './to-path.js'; + +const DEFAULT_IGNORE = [ + '**/node_modules/**', + '**/flow-typed/**', + '**/coverage/**', + '**/.git', +]; + +const mapGitIgnorePatternTo = base => ignore => { + if (ignore.startsWith('!')) { + return '!' + path.posix.join(base, ignore.slice(1)); + } + + return path.posix.join(base, ignore); +}; + +const parseGitIgnore = (content, options) => { + const base = slash(path.relative(options.cwd, path.dirname(options.fileName))); + + return content + .split(/\r?\n/) + .filter(Boolean) + .filter(line => !line.startsWith('#')) + .map(mapGitIgnorePatternTo(base)); +}; + +const reduceIgnore = files => { + const ignores = gitIgnore(); + for (const file of files) { + ignores.add(parseGitIgnore(file.content, { + cwd: file.cwd, + fileName: file.filePath, + })); + } + + return ignores; +}; + +const ensureAbsolutePathForCwd = (cwd, p) => { + cwd = slash(cwd); + if (path.isAbsolute(p)) { + if (slash(p).startsWith(cwd)) { + return p; + } + + throw new Error(`Path ${p} is not in cwd ${cwd}`); + } + + return path.join(cwd, p); +}; + +const getIsIgnoredPredicate = (ignores, cwd) => p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, toPath(p.path || p))))); + +const getFile = async (file, cwd) => { + const filePath = path.join(cwd, file); + const content = await fs.promises.readFile(filePath, 'utf8'); + + return { + cwd, + filePath, + content, + }; +}; + +const getFileSync = (file, cwd) => { + const filePath = path.join(cwd, file); + const content = fs.readFileSync(filePath, 'utf8'); + + return { + cwd, + filePath, + content, + }; +}; + +const normalizeOptions = ({ + ignore = [], + cwd = slash(process.cwd()), +} = {}) => ({ignore: [...DEFAULT_IGNORE, ...ignore], cwd: toPath(cwd)}); + +export const isGitIgnored = async options => { + options = normalizeOptions(options); + + const paths = await fastGlob('**/.gitignore', options); + + const files = await Promise.all(paths.map(file => getFile(file, options.cwd))); + const ignores = reduceIgnore(files); + + return getIsIgnoredPredicate(ignores, options.cwd); +}; + +export const isGitIgnoredSync = options => { + options = normalizeOptions(options); + + const paths = fastGlob.sync('**/.gitignore', options); + + const files = paths.map(file => getFileSync(file, options.cwd)); + const ignores = reduceIgnore(files); + + return getIsIgnoredPredicate(ignores, options.cwd); +}; diff --git a/node_modules/globby/index.d.ts b/node_modules/globby/index.d.ts new file mode 100644 index 0000000..b9571a6 --- /dev/null +++ b/node_modules/globby/index.d.ts @@ -0,0 +1,188 @@ +import {URL} from 'node:url'; // TODO: Remove this when https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34960 is fixed. +import {Options as FastGlobOptions, Entry} from 'fast-glob'; + +export type GlobEntry = Entry; + +export interface GlobTask { + readonly pattern: string; + readonly options: Options; +} + +export type ExpandDirectoriesOption = + | boolean + | readonly string[] + | {files?: readonly string[]; extensions?: readonly string[]}; + +type FastGlobOptionsWithoutCwd = Omit; + +export interface Options extends FastGlobOptionsWithoutCwd { + /** + If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. + + Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. + + @default true + + @example + ``` + import {globby} from 'globby'; + + const paths = await globby('images', { + expandDirectories: { + files: ['cat', 'unicorn', '*.jpg'], + extensions: ['png'] + } + }); + + console.log(paths); + //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] + ``` + */ + readonly expandDirectories?: ExpandDirectoriesOption; + + /** + Respect ignore patterns in `.gitignore` files that apply to the globbed files. + + @default false + */ + readonly gitignore?: boolean; + + /** + The current working directory in which to search. + + @default process.cwd() + */ + readonly cwd?: URL | string; +} + +export interface GitignoreOptions { + readonly cwd?: URL | string; + readonly ignore?: readonly string[]; +} + +export type GlobbyFilterFunction = (path: URL | string) => boolean; + +/** +Find files and directories using glob patterns. + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns The matching paths. + +@example +``` +import {globby} from 'globby'; + +const paths = await globby(['*', '!cake']); + +console.log(paths); +//=> ['unicorn', 'rainbow'] +``` +*/ +export function globby( + patterns: string | readonly string[], + options: Options & {objectMode: true} +): Promise; +export function globby( + patterns: string | readonly string[], + options?: Options +): Promise; + +/** +Find files and directories using glob patterns. + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns The matching paths. +*/ +export function globbySync( + patterns: string | readonly string[], + options: Options & {objectMode: true} +): GlobEntry[]; +export function globbySync( + patterns: string | readonly string[], + options?: Options +): string[]; + +/** +Find files and directories using glob patterns. + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns The stream of matching paths. + +@example +``` +import {globbyStream} from 'globby'; + +for await (const path of globbyStream('*.tmp')) { + console.log(path); +} +``` +*/ +export function globbyStream( + patterns: string | readonly string[], + options?: Options +): NodeJS.ReadableStream; + +/** +Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns An object in the format `{pattern: string, options: object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. +*/ +export function generateGlobTasks( + patterns: string | readonly string[], + options?: Options +): GlobTask[]; + +/** +Note that the options affect the results. + +This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3). +@returns Whether there are any special glob characters in the `patterns`. +*/ +export function isDynamicPattern( + patterns: string | readonly string[], + options?: FastGlobOptionsWithoutCwd & { + /** + The current working directory in which to search. + + @default process.cwd() + */ + readonly cwd?: URL | string; + } +): boolean; + +/** +`.gitignore` files matched by the ignore config are not used for the resulting filter function. + +@returns A filter function indicating whether a given path is ignored via a `.gitignore` file. + +@example +``` +import {isGitIgnored} from 'globby'; + +const isIgnored = await isGitIgnored(); + +console.log(isIgnored('some/file')); +``` +*/ +export function isGitIgnored(options?: GitignoreOptions): Promise; + +/** +@see isGitIgnored + +@returns A filter function indicating whether a given path is ignored via a `.gitignore` file. +*/ +export function isGitIgnoredSync(options?: GitignoreOptions): GlobbyFilterFunction; diff --git a/node_modules/globby/index.js b/node_modules/globby/index.js new file mode 100644 index 0000000..1ebc172 --- /dev/null +++ b/node_modules/globby/index.js @@ -0,0 +1,197 @@ +import fs from 'node:fs'; +import arrayUnion from 'array-union'; +import merge2 from 'merge2'; +import fastGlob from 'fast-glob'; +import dirGlob from 'dir-glob'; +import toPath from './to-path.js'; +import {isGitIgnored, isGitIgnoredSync} from './gitignore.js'; +import {FilterStream, UniqueStream} from './stream-utils.js'; + +const DEFAULT_FILTER = () => false; + +const isNegative = pattern => pattern[0] === '!'; + +const assertPatternsInput = patterns => { + if (!patterns.every(pattern => typeof pattern === 'string')) { + throw new TypeError('Patterns must be a string or an array of strings'); + } +}; + +const checkCwdOption = options => { + if (!options.cwd) { + return; + } + + let stat; + try { + stat = fs.statSync(options.cwd); + } catch { + return; + } + + if (!stat.isDirectory()) { + throw new Error('The `cwd` option must be a path to a directory'); + } +}; + +const getPathString = p => p.stats instanceof fs.Stats ? p.path : p; + +export const generateGlobTasks = (patterns, taskOptions = {}) => { + patterns = arrayUnion([patterns].flat()); + assertPatternsInput(patterns); + + const globTasks = []; + + taskOptions = { + ignore: [], + expandDirectories: true, + ...taskOptions, + cwd: toPath(taskOptions.cwd), + }; + + checkCwdOption(taskOptions); + + for (const [index, pattern] of patterns.entries()) { + if (isNegative(pattern)) { + continue; + } + + const ignore = patterns + .slice(index) + .filter(pattern => isNegative(pattern)) + .map(pattern => pattern.slice(1)); + + const options = { + ...taskOptions, + ignore: [...taskOptions.ignore, ...ignore], + }; + + globTasks.push({pattern, options}); + } + + return globTasks; +}; + +const globDirectories = (task, fn) => { + let options = {}; + if (task.options.cwd) { + options.cwd = task.options.cwd; + } + + if (Array.isArray(task.options.expandDirectories)) { + options = { + ...options, + files: task.options.expandDirectories, + }; + } else if (typeof task.options.expandDirectories === 'object') { + options = { + ...options, + ...task.options.expandDirectories, + }; + } + + return fn(task.pattern, options); +}; + +const getPattern = (task, fn) => task.options.expandDirectories ? globDirectories(task, fn) : [task.pattern]; + +const getFilterSync = options => options && options.gitignore + ? isGitIgnoredSync({cwd: options.cwd, ignore: options.ignore}) + : DEFAULT_FILTER; + +const globToTask = task => async glob => { + const {options} = task; + if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { + options.ignore = await dirGlob(options.ignore); + } + + return { + pattern: glob, + options, + }; +}; + +const globToTaskSync = task => glob => { + const {options} = task; + if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { + options.ignore = dirGlob.sync(options.ignore); + } + + return { + pattern: glob, + options, + }; +}; + +export const globby = async (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const getFilter = async () => options && options.gitignore + ? isGitIgnored({cwd: options.cwd, ignore: options.ignore}) + : DEFAULT_FILTER; + + const getTasks = async () => { + const tasks = await Promise.all(globTasks.map(async task => { + const globs = await getPattern(task, dirGlob); + return Promise.all(globs.map(globToTask(task))); + })); + + return arrayUnion(...tasks); + }; + + const [filter, tasks] = await Promise.all([getFilter(), getTasks()]); + const paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options))); + + return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_))); +}; + +export const globbySync = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const tasks = []; + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTaskSync(task)); + tasks.push(...newTask); + } + + const filter = getFilterSync(options); + + let matches = []; + for (const task of tasks) { + matches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options)); + } + + return matches.filter(path_ => !filter(path_)); +}; + +export const globbyStream = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const tasks = []; + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTaskSync(task)); + tasks.push(...newTask); + } + + const filter = getFilterSync(options); + const filterStream = new FilterStream(p => !filter(p)); + const uniqueStream = new UniqueStream(); + + return merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options))) + .pipe(filterStream) + .pipe(uniqueStream); +}; + +export const isDynamicPattern = (patterns, options = {}) => { + options = { + ...options, + cwd: toPath(options.cwd), + }; + + return [patterns].flat().some(pattern => fastGlob.isDynamicPattern(pattern, options)); +}; + +export { + isGitIgnored, + isGitIgnoredSync, +} from './gitignore.js'; diff --git a/node_modules/globby/license b/node_modules/globby/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/globby/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/globby/package.json b/node_modules/globby/package.json new file mode 100644 index 0000000..97dc494 --- /dev/null +++ b/node_modules/globby/package.json @@ -0,0 +1,87 @@ +{ + "name": "globby", + "version": "12.2.0", + "description": "User-friendly glob matching", + "license": "MIT", + "repository": "sindresorhus/globby", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "scripts": { + "bench": "npm update glob-stream fast-glob && matcha bench.js", + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "gitignore.js", + "stream-utils.js", + "to-path.js" + ], + "keywords": [ + "all", + "array", + "directories", + "expand", + "files", + "filesystem", + "filter", + "find", + "fnmatch", + "folders", + "fs", + "glob", + "globbing", + "globs", + "gulpfriendly", + "match", + "matcher", + "minimatch", + "multi", + "multiple", + "paths", + "pattern", + "patterns", + "traverse", + "util", + "utility", + "wildcard", + "wildcards", + "promise", + "gitignore", + "git" + ], + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "devDependencies": { + "@types/node": "^16.11.11", + "ava": "^3.15.0", + "get-stream": "^6.0.1", + "glob-stream": "^7.0.0", + "globby": "sindresorhus/globby#main", + "matcha": "^0.7.0", + "rimraf": "^3.0.2", + "tsd": "^0.19.0", + "typescript": "^4.5.2", + "xo": "^0.47.0" + }, + "xo": { + "ignores": [ + "fixtures" + ] + } +} diff --git a/node_modules/globby/readme.md b/node_modules/globby/readme.md new file mode 100644 index 0000000..315a53b --- /dev/null +++ b/node_modules/globby/readme.md @@ -0,0 +1,168 @@ +# globby + +> User-friendly glob matching + +Based on [`fast-glob`](https://github.com/mrmlnc/fast-glob) but adds a bunch of useful features. + +## Features + +- Promise API +- Multiple patterns +- Negated patterns: `['foo*', '!foobar']` +- Expands directories: `foo` → `foo/**/*` +- Supports `.gitignore` +- Supports `URL` as `cwd` + +## Install + +``` +$ npm install globby +``` + +## Usage + +``` +├── unicorn +├── cake +└── rainbow +``` + +```js +import {globby} from 'globby'; + +const paths = await globby(['*', '!cake']); + +console.log(paths); +//=> ['unicorn', 'rainbow'] +``` + +## API + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +### globby(patterns, options?) + +Returns a `Promise` of matching paths. + +#### patterns + +Type: `string | string[]` + +See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). + +#### options + +Type: `object` + +See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones below. + +##### expandDirectories + +Type: `boolean | string[] | object`\ +Default: `true` + +If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `object` with `files` and `extensions` like below: + +```js +import {globby} from 'globby'; + +(async () => { + const paths = await globby('images', { + expandDirectories: { + files: ['cat', 'unicorn', '*.jpg'], + extensions: ['png'] + } + }); + + console.log(paths); + //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] +})(); +``` + +Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. + +##### gitignore + +Type: `boolean`\ +Default: `false` + +Respect ignore patterns in `.gitignore` files that apply to the globbed files. + +### globbySync(patterns, options?) + +Returns `string[]` of matching paths. + +### globbyStream(patterns, options?) + +Returns a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_readable_streams) of matching paths. + +Since Node.js 10, [readable streams are iterable](https://nodejs.org/api/stream.html#stream_readable_symbol_asynciterator), so you can loop over glob matches in a [`for await...of` loop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) like this: + +```js +import {globbyStream} from 'globby'; + +(async () => { + for await (const path of globbyStream('*.tmp')) { + console.log(path); + } +})(); +``` + +### generateGlobTasks(patterns, options?) + +Returns an `object[]` in the format `{pattern: string, options: Object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. + +Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. + +### isDynamicPattern(patterns, options?) + +Returns a `boolean` of whether there are any special glob characters in the `patterns`. + +Note that the options affect the results. + +This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). + +### isGitIgnored(options?) + +Returns a `Promise<(path: URL | string) => boolean>` indicating whether a given path is ignored via a `.gitignore` file. + +Takes `cwd?: URL | string` and `ignore?: string[]` as options. `.gitignore` files matched by the ignore config are not used for the resulting filter function. + +```js +import {isGitIgnored} from 'globby'; + +const isIgnored = await isGitIgnored(); + +console.log(isIgnored('some/file')); +``` + +### isGitIgnoredSync(options?) + +Returns a `(path: URL | string) => boolean` indicating whether a given path is ignored via a `.gitignore` file. + +Takes the same options as `isGitIgnored`. + +## Globbing patterns + +Just a quick overview. + +- `*` matches any number of characters, but not `/` +- `?` matches a single character, but not `/` +- `**` matches any number of characters, including `/`, as long as it's the only thing in a path part +- `{}` allows for a comma-separated list of "or" expressions +- `!` at the beginning of a pattern will negate the match + +[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/main/test/test.js) + +## globby for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of globby and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-globby?utm_source=npm-globby&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [multimatch](https://github.com/sindresorhus/multimatch) - Match against a list instead of the filesystem +- [matcher](https://github.com/sindresorhus/matcher) - Simple wildcard matching +- [del](https://github.com/sindresorhus/del) - Delete files and directories +- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed diff --git a/node_modules/globby/stream-utils.js b/node_modules/globby/stream-utils.js new file mode 100644 index 0000000..91a99bb --- /dev/null +++ b/node_modules/globby/stream-utils.js @@ -0,0 +1,40 @@ +import {Transform} from 'node:stream'; + +class ObjectTransform extends Transform { + constructor() { + super({ + objectMode: true, + }); + } +} + +export class FilterStream extends ObjectTransform { + constructor(filter) { + super(); + this._filter = filter; + } + + _transform(data, encoding, callback) { + if (this._filter(data)) { + this.push(data); + } + + callback(); + } +} + +export class UniqueStream extends ObjectTransform { + constructor() { + super(); + this._pushed = new Set(); + } + + _transform(data, encoding, callback) { + if (!this._pushed.has(data)) { + this.push(data); + this._pushed.add(data); + } + + callback(); + } +} diff --git a/node_modules/globby/to-path.js b/node_modules/globby/to-path.js new file mode 100644 index 0000000..3914433 --- /dev/null +++ b/node_modules/globby/to-path.js @@ -0,0 +1,15 @@ +import {fileURLToPath} from 'node:url'; + +const toPath = urlOrPath => { + if (!urlOrPath) { + return urlOrPath; + } + + if (urlOrPath instanceof URL) { + urlOrPath = urlOrPath.href; + } + + return urlOrPath.startsWith('file://') ? fileURLToPath(urlOrPath) : urlOrPath; +}; + +export default toPath; diff --git a/node_modules/graceful-fs/LICENSE b/node_modules/graceful-fs/LICENSE new file mode 100644 index 0000000..e906a25 --- /dev/null +++ b/node_modules/graceful-fs/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/graceful-fs/README.md b/node_modules/graceful-fs/README.md new file mode 100644 index 0000000..82d6e4d --- /dev/null +++ b/node_modules/graceful-fs/README.md @@ -0,0 +1,143 @@ +# graceful-fs + +graceful-fs functions as a drop-in replacement for the fs module, +making various improvements. + +The improvements are meant to normalize behavior across different +platforms and environments, and to make filesystem access more +resilient to errors. + +## Improvements over [fs module](https://nodejs.org/api/fs.html) + +* Queues up `open` and `readdir` calls, and retries them once + something closes if there is an EMFILE error from too many file + descriptors. +* fixes `lchmod` for Node versions prior to 0.6.2. +* implements `fs.lutimes` if possible. Otherwise it becomes a noop. +* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or + `lchown` if the user isn't root. +* makes `lchmod` and `lchown` become noops, if not available. +* retries reading a file if `read` results in EAGAIN error. + +On Windows, it retries renaming a file for up to one second if `EACCESS` +or `EPERM` error occurs, likely because antivirus software has locked +the directory. + +## USAGE + +```javascript +// use just like fs +var fs = require('graceful-fs') + +// now go and do stuff with it... +fs.readFile('some-file-or-whatever', (err, data) => { + // Do stuff here. +}) +``` + +## Sync methods + +This module cannot intercept or handle `EMFILE` or `ENFILE` errors from sync +methods. If you use sync methods which open file descriptors then you are +responsible for dealing with any errors. + +This is a known limitation, not a bug. + +## Global Patching + +If you want to patch the global fs module (or any other fs-like +module) you can do this: + +```javascript +// Make sure to read the caveat below. +var realFs = require('fs') +var gracefulFs = require('graceful-fs') +gracefulFs.gracefulify(realFs) +``` + +This should only ever be done at the top-level application layer, in +order to delay on EMFILE errors from any fs-using dependencies. You +should **not** do this in a library, because it can cause unexpected +delays in other parts of the program. + +## Changes + +This module is fairly stable at this point, and used by a lot of +things. That being said, because it implements a subtle behavior +change in a core part of the node API, even modest changes can be +extremely breaking, and the versioning is thus biased towards +bumping the major when in doubt. + +The main change between major versions has been switching between +providing a fully-patched `fs` module vs monkey-patching the node core +builtin, and the approach by which a non-monkey-patched `fs` was +created. + +The goal is to trade `EMFILE` errors for slower fs operations. So, if +you try to open a zillion files, rather than crashing, `open` +operations will be queued up and wait for something else to `close`. + +There are advantages to each approach. Monkey-patching the fs means +that no `EMFILE` errors can possibly occur anywhere in your +application, because everything is using the same core `fs` module, +which is patched. However, it can also obviously cause undesirable +side-effects, especially if the module is loaded multiple times. + +Implementing a separate-but-identical patched `fs` module is more +surgical (and doesn't run the risk of patching multiple times), but +also imposes the challenge of keeping in sync with the core module. + +The current approach loads the `fs` module, and then creates a +lookalike object that has all the same methods, except a few that are +patched. It is safe to use in all versions of Node from 0.8 through +7.0. + +### v4 + +* Do not monkey-patch the fs module. This module may now be used as a + drop-in dep, and users can opt into monkey-patching the fs builtin + if their app requires it. + +### v3 + +* Monkey-patch fs, because the eval approach no longer works on recent + node. +* fixed possible type-error throw if rename fails on windows +* verify that we *never* get EMFILE errors +* Ignore ENOSYS from chmod/chown +* clarify that graceful-fs must be used as a drop-in + +### v2.1.0 + +* Use eval rather than monkey-patching fs. +* readdir: Always sort the results +* win32: requeue a file if error has an OK status + +### v2.0 + +* A return to monkey patching +* wrap process.cwd + +### v1.1 + +* wrap readFile +* Wrap fs.writeFile. +* readdir protection +* Don't clobber the fs builtin +* Handle fs.read EAGAIN errors by trying again +* Expose the curOpen counter +* No-op lchown/lchmod if not implemented +* fs.rename patch only for win32 +* Patch fs.rename to handle AV software on Windows +* Close #4 Chown should not fail on einval or eperm if non-root +* Fix isaacs/fstream#1 Only wrap fs one time +* Fix #3 Start at 1024 max files, then back off on EMFILE +* lutimes that doens't blow up on Linux +* A full on-rewrite using a queue instead of just swallowing the EMFILE error +* Wrap Read/Write streams as well + +### 1.0 + +* Update engines for node 0.6 +* Be lstat-graceful on Windows +* first diff --git a/node_modules/graceful-fs/clone.js b/node_modules/graceful-fs/clone.js new file mode 100644 index 0000000..dff3cc8 --- /dev/null +++ b/node_modules/graceful-fs/clone.js @@ -0,0 +1,23 @@ +'use strict' + +module.exports = clone + +var getPrototypeOf = Object.getPrototypeOf || function (obj) { + return obj.__proto__ +} + +function clone (obj) { + if (obj === null || typeof obj !== 'object') + return obj + + if (obj instanceof Object) + var copy = { __proto__: getPrototypeOf(obj) } + else + var copy = Object.create(null) + + Object.getOwnPropertyNames(obj).forEach(function (key) { + Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) + }) + + return copy +} diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js new file mode 100644 index 0000000..8d5b89e --- /dev/null +++ b/node_modules/graceful-fs/graceful-fs.js @@ -0,0 +1,448 @@ +var fs = require('fs') +var polyfills = require('./polyfills.js') +var legacy = require('./legacy-streams.js') +var clone = require('./clone.js') + +var util = require('util') + +/* istanbul ignore next - node 0.x polyfill */ +var gracefulQueue +var previousSymbol + +/* istanbul ignore else - node 0.x polyfill */ +if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { + gracefulQueue = Symbol.for('graceful-fs.queue') + // This is used in testing by future versions + previousSymbol = Symbol.for('graceful-fs.previous') +} else { + gracefulQueue = '___graceful-fs.queue' + previousSymbol = '___graceful-fs.previous' +} + +function noop () {} + +function publishQueue(context, queue) { + Object.defineProperty(context, gracefulQueue, { + get: function() { + return queue + } + }) +} + +var debug = noop +if (util.debuglog) + debug = util.debuglog('gfs4') +else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) + debug = function() { + var m = util.format.apply(util, arguments) + m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') + console.error(m) + } + +// Once time initialization +if (!fs[gracefulQueue]) { + // This queue can be shared by multiple loaded instances + var queue = global[gracefulQueue] || [] + publishQueue(fs, queue) + + // Patch fs.close/closeSync to shared queue version, because we need + // to retry() whenever a close happens *anywhere* in the program. + // This is essential when multiple graceful-fs instances are + // in play at the same time. + fs.close = (function (fs$close) { + function close (fd, cb) { + return fs$close.call(fs, fd, function (err) { + // This function uses the graceful-fs shared queue + if (!err) { + resetQueue() + } + + if (typeof cb === 'function') + cb.apply(this, arguments) + }) + } + + Object.defineProperty(close, previousSymbol, { + value: fs$close + }) + return close + })(fs.close) + + fs.closeSync = (function (fs$closeSync) { + function closeSync (fd) { + // This function uses the graceful-fs shared queue + fs$closeSync.apply(fs, arguments) + resetQueue() + } + + Object.defineProperty(closeSync, previousSymbol, { + value: fs$closeSync + }) + return closeSync + })(fs.closeSync) + + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug(fs[gracefulQueue]) + require('assert').equal(fs[gracefulQueue].length, 0) + }) + } +} + +if (!global[gracefulQueue]) { + publishQueue(global, fs[gracefulQueue]); +} + +module.exports = patch(clone(fs)) +if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { + module.exports = patch(fs) + fs.__patched = true; +} + +function patch (fs) { + // Everything that references the open() function needs to be in here + polyfills(fs) + fs.gracefulify = patch + + fs.createReadStream = createReadStream + fs.createWriteStream = createWriteStream + var fs$readFile = fs.readFile + fs.readFile = readFile + function readFile (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readFile(path, options, cb) + + function go$readFile (path, options, cb, startTime) { + return fs$readFile(path, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$writeFile = fs.writeFile + fs.writeFile = writeFile + function writeFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$writeFile(path, data, options, cb) + + function go$writeFile (path, data, options, cb, startTime) { + return fs$writeFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$appendFile = fs.appendFile + if (fs$appendFile) + fs.appendFile = appendFile + function appendFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$appendFile(path, data, options, cb) + + function go$appendFile (path, data, options, cb, startTime) { + return fs$appendFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$copyFile = fs.copyFile + if (fs$copyFile) + fs.copyFile = copyFile + function copyFile (src, dest, flags, cb) { + if (typeof flags === 'function') { + cb = flags + flags = 0 + } + return go$copyFile(src, dest, flags, cb) + + function go$copyFile (src, dest, flags, cb, startTime) { + return fs$copyFile(src, dest, flags, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$readdir = fs.readdir + fs.readdir = readdir + var noReaddirOptionVersions = /^v[0-5]\./ + function readdir (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + var go$readdir = noReaddirOptionVersions.test(process.version) + ? function go$readdir (path, options, cb, startTime) { + return fs$readdir(path, fs$readdirCallback( + path, options, cb, startTime + )) + } + : function go$readdir (path, options, cb, startTime) { + return fs$readdir(path, options, fs$readdirCallback( + path, options, cb, startTime + )) + } + + return go$readdir(path, options, cb) + + function fs$readdirCallback (path, options, cb, startTime) { + return function (err, files) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([ + go$readdir, + [path, options, cb], + err, + startTime || Date.now(), + Date.now() + ]) + else { + if (files && files.sort) + files.sort() + + if (typeof cb === 'function') + cb.call(this, err, files) + } + } + } + } + + if (process.version.substr(0, 4) === 'v0.8') { + var legStreams = legacy(fs) + ReadStream = legStreams.ReadStream + WriteStream = legStreams.WriteStream + } + + var fs$ReadStream = fs.ReadStream + if (fs$ReadStream) { + ReadStream.prototype = Object.create(fs$ReadStream.prototype) + ReadStream.prototype.open = ReadStream$open + } + + var fs$WriteStream = fs.WriteStream + if (fs$WriteStream) { + WriteStream.prototype = Object.create(fs$WriteStream.prototype) + WriteStream.prototype.open = WriteStream$open + } + + Object.defineProperty(fs, 'ReadStream', { + get: function () { + return ReadStream + }, + set: function (val) { + ReadStream = val + }, + enumerable: true, + configurable: true + }) + Object.defineProperty(fs, 'WriteStream', { + get: function () { + return WriteStream + }, + set: function (val) { + WriteStream = val + }, + enumerable: true, + configurable: true + }) + + // legacy names + var FileReadStream = ReadStream + Object.defineProperty(fs, 'FileReadStream', { + get: function () { + return FileReadStream + }, + set: function (val) { + FileReadStream = val + }, + enumerable: true, + configurable: true + }) + var FileWriteStream = WriteStream + Object.defineProperty(fs, 'FileWriteStream', { + get: function () { + return FileWriteStream + }, + set: function (val) { + FileWriteStream = val + }, + enumerable: true, + configurable: true + }) + + function ReadStream (path, options) { + if (this instanceof ReadStream) + return fs$ReadStream.apply(this, arguments), this + else + return ReadStream.apply(Object.create(ReadStream.prototype), arguments) + } + + function ReadStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + if (that.autoClose) + that.destroy() + + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + that.read() + } + }) + } + + function WriteStream (path, options) { + if (this instanceof WriteStream) + return fs$WriteStream.apply(this, arguments), this + else + return WriteStream.apply(Object.create(WriteStream.prototype), arguments) + } + + function WriteStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + that.destroy() + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + } + }) + } + + function createReadStream (path, options) { + return new fs.ReadStream(path, options) + } + + function createWriteStream (path, options) { + return new fs.WriteStream(path, options) + } + + var fs$open = fs.open + fs.open = open + function open (path, flags, mode, cb) { + if (typeof mode === 'function') + cb = mode, mode = null + + return go$open(path, flags, mode, cb) + + function go$open (path, flags, mode, cb, startTime) { + return fs$open(path, flags, mode, function (err, fd) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + return fs +} + +function enqueue (elem) { + debug('ENQUEUE', elem[0].name, elem[1]) + fs[gracefulQueue].push(elem) + retry() +} + +// keep track of the timeout between retry() calls +var retryTimer + +// reset the startTime and lastTime to now +// this resets the start of the 60 second overall timeout as well as the +// delay between attempts so that we'll retry these jobs sooner +function resetQueue () { + var now = Date.now() + for (var i = 0; i < fs[gracefulQueue].length; ++i) { + // entries that are only a length of 2 are from an older version, don't + // bother modifying those since they'll be retried anyway. + if (fs[gracefulQueue][i].length > 2) { + fs[gracefulQueue][i][3] = now // startTime + fs[gracefulQueue][i][4] = now // lastTime + } + } + // call retry to make sure we're actively processing the queue + retry() +} + +function retry () { + // clear the timer and remove it to help prevent unintended concurrency + clearTimeout(retryTimer) + retryTimer = undefined + + if (fs[gracefulQueue].length === 0) + return + + var elem = fs[gracefulQueue].shift() + var fn = elem[0] + var args = elem[1] + // these items may be unset if they were added by an older graceful-fs + var err = elem[2] + var startTime = elem[3] + var lastTime = elem[4] + + // if we don't have a startTime we have no way of knowing if we've waited + // long enough, so go ahead and retry this item now + if (startTime === undefined) { + debug('RETRY', fn.name, args) + fn.apply(null, args) + } else if (Date.now() - startTime >= 60000) { + // it's been more than 60 seconds total, bail now + debug('TIMEOUT', fn.name, args) + var cb = args.pop() + if (typeof cb === 'function') + cb.call(null, err) + } else { + // the amount of time between the last attempt and right now + var sinceAttempt = Date.now() - lastTime + // the amount of time between when we first tried, and when we last tried + // rounded up to at least 1 + var sinceStart = Math.max(lastTime - startTime, 1) + // backoff. wait longer than the total time we've been retrying, but only + // up to a maximum of 100ms + var desiredDelay = Math.min(sinceStart * 1.2, 100) + // it's been long enough since the last retry, do it again + if (sinceAttempt >= desiredDelay) { + debug('RETRY', fn.name, args) + fn.apply(null, args.concat([startTime])) + } else { + // if we can't do this job yet, push it to the end of the queue + // and let the next iteration check again + fs[gracefulQueue].push(elem) + } + } + + // schedule our next run if one isn't already scheduled + if (retryTimer === undefined) { + retryTimer = setTimeout(retry, 0) + } +} diff --git a/node_modules/graceful-fs/legacy-streams.js b/node_modules/graceful-fs/legacy-streams.js new file mode 100644 index 0000000..d617b50 --- /dev/null +++ b/node_modules/graceful-fs/legacy-streams.js @@ -0,0 +1,118 @@ +var Stream = require('stream').Stream + +module.exports = legacy + +function legacy (fs) { + return { + ReadStream: ReadStream, + WriteStream: WriteStream + } + + function ReadStream (path, options) { + if (!(this instanceof ReadStream)) return new ReadStream(path, options); + + Stream.call(this); + + var self = this; + + this.path = path; + this.fd = null; + this.readable = true; + this.paused = false; + + this.flags = 'r'; + this.mode = 438; /*=0666*/ + this.bufferSize = 64 * 1024; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + + if (this.encoding) this.setEncoding(this.encoding); + + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.end === undefined) { + this.end = Infinity; + } else if ('number' !== typeof this.end) { + throw TypeError('end must be a Number'); + } + + if (this.start > this.end) { + throw new Error('start must be <= end'); + } + + this.pos = this.start; + } + + if (this.fd !== null) { + process.nextTick(function() { + self._read(); + }); + return; + } + + fs.open(this.path, this.flags, this.mode, function (err, fd) { + if (err) { + self.emit('error', err); + self.readable = false; + return; + } + + self.fd = fd; + self.emit('open', fd); + self._read(); + }) + } + + function WriteStream (path, options) { + if (!(this instanceof WriteStream)) return new WriteStream(path, options); + + Stream.call(this); + + this.path = path; + this.fd = null; + this.writable = true; + + this.flags = 'w'; + this.encoding = 'binary'; + this.mode = 438; /*=0666*/ + this.bytesWritten = 0; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.start < 0) { + throw new Error('start must be >= zero'); + } + + this.pos = this.start; + } + + this.busy = false; + this._queue = []; + + if (this.fd === null) { + this._open = fs.open; + this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); + this.flush(); + } + } +} diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json new file mode 100644 index 0000000..87babf0 --- /dev/null +++ b/node_modules/graceful-fs/package.json @@ -0,0 +1,53 @@ +{ + "name": "graceful-fs", + "description": "A drop-in replacement for fs, making various improvements.", + "version": "4.2.11", + "repository": { + "type": "git", + "url": "https://github.com/isaacs/node-graceful-fs" + }, + "main": "graceful-fs.js", + "directories": { + "test": "test" + }, + "scripts": { + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --follow-tags", + "test": "nyc --silent node test.js | tap -c -", + "posttest": "nyc report" + }, + "keywords": [ + "fs", + "module", + "reading", + "retry", + "retries", + "queue", + "error", + "errors", + "handling", + "EMFILE", + "EAGAIN", + "EINVAL", + "EPERM", + "EACCESS" + ], + "license": "ISC", + "devDependencies": { + "import-fresh": "^2.0.0", + "mkdirp": "^0.5.0", + "rimraf": "^2.2.8", + "tap": "^16.3.4" + }, + "files": [ + "fs.js", + "graceful-fs.js", + "legacy-streams.js", + "polyfills.js", + "clone.js" + ], + "tap": { + "reporter": "classic" + } +} diff --git a/node_modules/graceful-fs/polyfills.js b/node_modules/graceful-fs/polyfills.js new file mode 100644 index 0000000..453f1a9 --- /dev/null +++ b/node_modules/graceful-fs/polyfills.js @@ -0,0 +1,355 @@ +var constants = require('constants') + +var origCwd = process.cwd +var cwd = null + +var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform + +process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process) + return cwd +} +try { + process.cwd() +} catch (er) {} + +// This check is needed until node.js 12 is required +if (typeof process.chdir === 'function') { + var chdir = process.chdir + process.chdir = function (d) { + cwd = null + chdir.call(process, d) + } + if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir) +} + +module.exports = patch + +function patch (fs) { + // (re-)implement some things that are known busted or missing. + + // lchmod, broken prior to 0.6.2 + // back-port the fix here. + if (constants.hasOwnProperty('O_SYMLINK') && + process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + patchLchmod(fs) + } + + // lutimes implementation, or no-op + if (!fs.lutimes) { + patchLutimes(fs) + } + + // https://github.com/isaacs/node-graceful-fs/issues/4 + // Chown should not fail on einval or eperm if non-root. + // It should not fail on enosys ever, as this just indicates + // that a fs doesn't support the intended operation. + + fs.chown = chownFix(fs.chown) + fs.fchown = chownFix(fs.fchown) + fs.lchown = chownFix(fs.lchown) + + fs.chmod = chmodFix(fs.chmod) + fs.fchmod = chmodFix(fs.fchmod) + fs.lchmod = chmodFix(fs.lchmod) + + fs.chownSync = chownFixSync(fs.chownSync) + fs.fchownSync = chownFixSync(fs.fchownSync) + fs.lchownSync = chownFixSync(fs.lchownSync) + + fs.chmodSync = chmodFixSync(fs.chmodSync) + fs.fchmodSync = chmodFixSync(fs.fchmodSync) + fs.lchmodSync = chmodFixSync(fs.lchmodSync) + + fs.stat = statFix(fs.stat) + fs.fstat = statFix(fs.fstat) + fs.lstat = statFix(fs.lstat) + + fs.statSync = statFixSync(fs.statSync) + fs.fstatSync = statFixSync(fs.fstatSync) + fs.lstatSync = statFixSync(fs.lstatSync) + + // if lchmod/lchown do not exist, then make them no-ops + if (fs.chmod && !fs.lchmod) { + fs.lchmod = function (path, mode, cb) { + if (cb) process.nextTick(cb) + } + fs.lchmodSync = function () {} + } + if (fs.chown && !fs.lchown) { + fs.lchown = function (path, uid, gid, cb) { + if (cb) process.nextTick(cb) + } + fs.lchownSync = function () {} + } + + // on Windows, A/V software can lock the directory, causing this + // to fail with an EACCES or EPERM if the directory contains newly + // created files. Try again on failure, for up to 60 seconds. + + // Set the timeout this long because some Windows Anti-Virus, such as Parity + // bit9, may lock files for up to a minute, causing npm package install + // failures. Also, take care to yield the scheduler. Windows scheduling gives + // CPU to a busy looping process, which can cause the program causing the lock + // contention to be starved of CPU by node, so the contention doesn't resolve. + if (platform === "win32") { + fs.rename = typeof fs.rename !== 'function' ? fs.rename + : (function (fs$rename) { + function rename (from, to, cb) { + var start = Date.now() + var backoff = 0; + fs$rename(from, to, function CB (er) { + if (er + && (er.code === "EACCES" || er.code === "EPERM" || er.code === "EBUSY") + && Date.now() - start < 60000) { + setTimeout(function() { + fs.stat(to, function (stater, st) { + if (stater && stater.code === "ENOENT") + fs$rename(from, to, CB); + else + cb(er) + }) + }, backoff) + if (backoff < 100) + backoff += 10; + return; + } + if (cb) cb(er) + }) + } + if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename) + return rename + })(fs.rename) + } + + // if read() returns EAGAIN, then just try it again. + fs.read = typeof fs.read !== 'function' ? fs.read + : (function (fs$read) { + function read (fd, buffer, offset, length, position, callback_) { + var callback + if (callback_ && typeof callback_ === 'function') { + var eagCounter = 0 + callback = function (er, _, __) { + if (er && er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + callback_.apply(this, arguments) + } + } + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + + // This ensures `util.promisify` works as it does for native `fs.read`. + if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read) + return read + })(fs.read) + + fs.readSync = typeof fs.readSync !== 'function' ? fs.readSync + : (function (fs$readSync) { return function (fd, buffer, offset, length, position) { + var eagCounter = 0 + while (true) { + try { + return fs$readSync.call(fs, fd, buffer, offset, length, position) + } catch (er) { + if (er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + continue + } + throw er + } + } + }})(fs.readSync) + + function patchLchmod (fs) { + fs.lchmod = function (path, mode, callback) { + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + if (callback) callback(err) + return + } + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + if (callback) callback(err || err2) + }) + }) + }) + } + + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) + + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + var threw = true + var ret + try { + ret = fs.fchmodSync(fd, mode) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } + } + + function patchLutimes (fs) { + if (constants.hasOwnProperty("O_SYMLINK") && fs.futimes) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + if (er) { + if (cb) cb(er) + return + } + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + if (cb) cb(er || er2) + }) + }) + }) + } + + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + var ret + var threw = true + try { + ret = fs.futimesSync(fd, at, mt) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } + + } else if (fs.futimes) { + fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } + fs.lutimesSync = function () {} + } + } + + function chmodFix (orig) { + if (!orig) return orig + return function (target, mode, cb) { + return orig.call(fs, target, mode, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } + + function chmodFixSync (orig) { + if (!orig) return orig + return function (target, mode) { + try { + return orig.call(fs, target, mode) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } + + + function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } + + function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } + + function statFix (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + function callback (er, stats) { + if (stats) { + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + } + if (cb) cb.apply(this, arguments) + } + return options ? orig.call(fs, target, options, callback) + : orig.call(fs, target, callback) + } + } + + function statFixSync (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options) { + var stats = options ? orig.call(fs, target, options) + : orig.call(fs, target) + if (stats) { + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + } + return stats; + } + } + + // ENOSYS means that the fs doesn't support the op. Just ignore + // that, because it doesn't matter. + // + // if there's no getuid, or if getuid() is something other + // than 0, and the error is EINVAL or EPERM, then just ignore + // it. + // + // This specific case is a silent failure in cp, install, tar, + // and most other unix tools that manage permissions. + // + // When running as root, or if other types of errors are + // encountered, then it's strict. + function chownErOk (er) { + if (!er) + return true + + if (er.code === "ENOSYS") + return true + + var nonroot = !process.getuid || process.getuid() !== 0 + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true + } + + return false + } +} diff --git a/node_modules/ignore/LICENSE-MIT b/node_modules/ignore/LICENSE-MIT new file mode 100644 index 0000000..825533e --- /dev/null +++ b/node_modules/ignore/LICENSE-MIT @@ -0,0 +1,21 @@ +Copyright (c) 2013 Kael Zhang , contributors +http://kael.me/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/ignore/README.md b/node_modules/ignore/README.md new file mode 100644 index 0000000..50d8882 --- /dev/null +++ b/node_modules/ignore/README.md @@ -0,0 +1,412 @@ + + + + + + + + + + + + + +
LinuxOS XWindowsCoverageDownloads
+ + Build Status + + + Windows Build Status + + + Coverage Status + + + npm module downloads per month +
+ +# ignore + +`ignore` is a manager, filter and parser which implemented in pure JavaScript according to the [.gitignore spec 2.22.1](http://git-scm.com/docs/gitignore). + +`ignore` is used by eslint, gitbook and [many others](https://www.npmjs.com/browse/depended/ignore). + +Pay **ATTENTION** that [`minimatch`](https://www.npmjs.org/package/minimatch) (which used by `fstream-ignore`) does not follow the gitignore spec. + +To filter filenames according to a .gitignore file, I recommend this npm package, `ignore`. + +To parse an `.npmignore` file, you should use `minimatch`, because an `.npmignore` file is parsed by npm using `minimatch` and it does not work in the .gitignore way. + +### Tested on + +`ignore` is fully tested, and has more than **five hundreds** of unit tests. + +- Linux + Node: `0.8` - `7.x` +- Windows + Node: `0.10` - `7.x`, node < `0.10` is not tested due to the lack of support of appveyor. + +Actually, `ignore` does not rely on any versions of node specially. + +Since `4.0.0`, ignore will no longer support `node < 6` by default, to use in node < 6, `require('ignore/legacy')`. For details, see [CHANGELOG](https://github.com/kaelzhang/node-ignore/blob/master/CHANGELOG.md). + +## Table Of Main Contents + +- [Usage](#usage) +- [`Pathname` Conventions](#pathname-conventions) +- See Also: + - [`glob-gitignore`](https://www.npmjs.com/package/glob-gitignore) matches files using patterns and filters them according to gitignore rules. +- [Upgrade Guide](#upgrade-guide) + +## Install + +```sh +npm i ignore +``` + +## Usage + +```js +import ignore from 'ignore' +const ig = ignore().add(['.abc/*', '!.abc/d/']) +``` + +### Filter the given paths + +```js +const paths = [ + '.abc/a.js', // filtered out + '.abc/d/e.js' // included +] + +ig.filter(paths) // ['.abc/d/e.js'] +ig.ignores('.abc/a.js') // true +``` + +### As the filter function + +```js +paths.filter(ig.createFilter()); // ['.abc/d/e.js'] +``` + +### Win32 paths will be handled + +```js +ig.filter(['.abc\\a.js', '.abc\\d\\e.js']) +// if the code above runs on windows, the result will be +// ['.abc\\d\\e.js'] +``` + +## Why another ignore? + +- `ignore` is a standalone module, and is much simpler so that it could easy work with other programs, unlike [isaacs](https://npmjs.org/~isaacs)'s [fstream-ignore](https://npmjs.org/package/fstream-ignore) which must work with the modules of the fstream family. + +- `ignore` only contains utility methods to filter paths according to the specified ignore rules, so + - `ignore` never try to find out ignore rules by traversing directories or fetching from git configurations. + - `ignore` don't cares about sub-modules of git projects. + +- Exactly according to [gitignore man page](http://git-scm.com/docs/gitignore), fixes some known matching issues of fstream-ignore, such as: + - '`/*.js`' should only match '`a.js`', but not '`abc/a.js`'. + - '`**/foo`' should match '`foo`' anywhere. + - Prevent re-including a file if a parent directory of that file is excluded. + - Handle trailing whitespaces: + - `'a '`(one space) should not match `'a '`(two spaces). + - `'a \ '` matches `'a '` + - All test cases are verified with the result of `git check-ignore`. + +# Methods + +## .add(pattern: string | Ignore): this +## .add(patterns: Array): this + +- **pattern** `String | Ignore` An ignore pattern string, or the `Ignore` instance +- **patterns** `Array` Array of ignore patterns. + +Adds a rule or several rules to the current manager. + +Returns `this` + +Notice that a line starting with `'#'`(hash) is treated as a comment. Put a backslash (`'\'`) in front of the first hash for patterns that begin with a hash, if you want to ignore a file with a hash at the beginning of the filename. + +```js +ignore().add('#abc').ignores('#abc') // false +ignore().add('\\#abc').ignores('#abc') // true +``` + +`pattern` could either be a line of ignore pattern or a string of multiple ignore patterns, which means we could just `ignore().add()` the content of a ignore file: + +```js +ignore() +.add(fs.readFileSync(filenameOfGitignore).toString()) +.filter(filenames) +``` + +`pattern` could also be an `ignore` instance, so that we could easily inherit the rules of another `Ignore` instance. + +## .addIgnoreFile(path) + +REMOVED in `3.x` for now. + +To upgrade `ignore@2.x` up to `3.x`, use + +```js +import fs from 'fs' + +if (fs.existsSync(filename)) { + ignore().add(fs.readFileSync(filename).toString()) +} +``` + +instead. + +## .filter(paths: Array<Pathname>): Array<Pathname> + +```ts +type Pathname = string +``` + +Filters the given array of pathnames, and returns the filtered array. + +- **paths** `Array.` The array of `pathname`s to be filtered. + +### `Pathname` Conventions: + +#### 1. `Pathname` should be a `path.relative()`d pathname + +`Pathname` should be a string that have been `path.join()`ed, or the return value of `path.relative()` to the current directory, + +```js +// WRONG, an error will be thrown +ig.ignores('./abc') + +// WRONG, for it will never happen, and an error will be thrown +// If the gitignore rule locates at the root directory, +// `'/abc'` should be changed to `'abc'`. +// ``` +// path.relative('/', '/abc') -> 'abc' +// ``` +ig.ignores('/abc') + +// WRONG, that it is an absolute path on Windows, an error will be thrown +ig.ignores('C:\\abc') + +// Right +ig.ignores('abc') + +// Right +ig.ignores(path.join('./abc')) // path.join('./abc') -> 'abc' +``` + +In other words, each `Pathname` here should be a relative path to the directory of the gitignore rules. + +Suppose the dir structure is: + +``` +/path/to/your/repo + |-- a + | |-- a.js + | + |-- .b + | + |-- .c + |-- .DS_store +``` + +Then the `paths` might be like this: + +```js +[ + 'a/a.js' + '.b', + '.c/.DS_store' +] +``` + +#### 2. filenames and dirnames + +`node-ignore` does NO `fs.stat` during path matching, so for the example below: + +```js +// First, we add a ignore pattern to ignore a directory +ig.add('config/') + +// `ig` does NOT know if 'config', in the real world, +// is a normal file, directory or something. + +ig.ignores('config') +// `ig` treats `config` as a file, so it returns `false` + +ig.ignores('config/') +// returns `true` +``` + +Specially for people who develop some library based on `node-ignore`, it is important to understand that. + +Usually, you could use [`glob`](http://npmjs.org/package/glob) with `option.mark = true` to fetch the structure of the current directory: + +```js +import glob from 'glob' + +glob('**', { + // Adds a / character to directory matches. + mark: true +}, (err, files) => { + if (err) { + return console.error(err) + } + + let filtered = ignore().add(patterns).filter(files) + console.log(filtered) +}) +``` + +## .ignores(pathname: Pathname): boolean + +> new in 3.2.0 + +Returns `Boolean` whether `pathname` should be ignored. + +```js +ig.ignores('.abc/a.js') // true +``` + +## .createFilter() + +Creates a filter function which could filter an array of paths with `Array.prototype.filter`. + +Returns `function(path)` the filter function. + +## .test(pathname: Pathname) since 5.0.0 + +Returns `TestResult` + +```ts +interface TestResult { + ignored: boolean + // true if the `pathname` is finally unignored by some negative pattern + unignored: boolean +} +``` + +- `{ignored: true, unignored: false}`: the `pathname` is ignored +- `{ignored: false, unignored: true}`: the `pathname` is unignored +- `{ignored: false, unignored: false}`: the `pathname` is never matched by any ignore rules. + +## static `ignore.isPathValid(pathname): boolean` since 5.0.0 + +Check whether the `pathname` is an valid `path.relative()`d path according to the [convention](#1-pathname-should-be-a-pathrelatived-pathname). + +This method is **NOT** used to check if an ignore pattern is valid. + +```js +ignore.isPathValid('./foo') // false +``` + +## ignore(options) + +### `options.ignorecase` since 4.0.0 + +Similar as the `core.ignorecase` option of [git-config](https://git-scm.com/docs/git-config), `node-ignore` will be case insensitive if `options.ignorecase` is set to `true` (the default value), otherwise case sensitive. + +```js +const ig = ignore({ + ignorecase: false +}) + +ig.add('*.png') + +ig.ignores('*.PNG') // false +``` + +### `options.ignoreCase?: boolean` since 5.2.0 + +Which is alternative to `options.ignoreCase` + +### `options.allowRelativePaths?: boolean` since 5.2.0 + +This option brings backward compatibility with projects which based on `ignore@4.x`. If `options.allowRelativePaths` is `true`, `ignore` will not check whether the given path to be tested is [`path.relative()`d](#pathname-conventions). + +However, passing a relative path, such as `'./foo'` or `'../foo'`, to test if it is ignored or not is not a good practise, which might lead to unexpected behavior + +```js +ignore({ + allowRelativePaths: true +}).ignores('../foo/bar.js') // And it will not throw +``` + +**** + +# Upgrade Guide + +## Upgrade 4.x -> 5.x + +Since `5.0.0`, if an invalid `Pathname` passed into `ig.ignores()`, an error will be thrown, unless `options.allowRelative = true` is passed to the `Ignore` factory. + +While `ignore < 5.0.0` did not make sure what the return value was, as well as + +```ts +.ignores(pathname: Pathname): boolean + +.filter(pathnames: Array): Array + +.createFilter(): (pathname: Pathname) => boolean + +.test(pathname: Pathname): {ignored: boolean, unignored: boolean} +``` + +See the convention [here](#1-pathname-should-be-a-pathrelatived-pathname) for details. + +If there are invalid pathnames, the conversion and filtration should be done by users. + +```js +import {isPathValid} from 'ignore' // introduced in 5.0.0 + +const paths = [ + // invalid + ////////////////// + '', + false, + '../foo', + '.', + ////////////////// + + // valid + 'foo' +] +.filter(isValidPath) + +ig.filter(paths) +``` + +## Upgrade 3.x -> 4.x + +Since `4.0.0`, `ignore` will no longer support node < 6, to use `ignore` in node < 6: + +```js +var ignore = require('ignore/legacy') +``` + +## Upgrade 2.x -> 3.x + +- All `options` of 2.x are unnecessary and removed, so just remove them. +- `ignore()` instance is no longer an [`EventEmitter`](nodejs.org/api/events.html), and all events are unnecessary and removed. +- `.addIgnoreFile()` is removed, see the [.addIgnoreFile](#addignorefilepath) section for details. + +**** + +# Collaborators + +- [@whitecolor](https://github.com/whitecolor) *Alex* +- [@SamyPesse](https://github.com/SamyPesse) *Samy Pessé* +- [@azproduction](https://github.com/azproduction) *Mikhail Davydov* +- [@TrySound](https://github.com/TrySound) *Bogdan Chadkin* +- [@JanMattner](https://github.com/JanMattner) *Jan Mattner* +- [@ntwb](https://github.com/ntwb) *Stephen Edgar* +- [@kasperisager](https://github.com/kasperisager) *Kasper Isager* +- [@sandersn](https://github.com/sandersn) *Nathan Shively-Sanders* diff --git a/node_modules/ignore/index.d.ts b/node_modules/ignore/index.d.ts new file mode 100644 index 0000000..520eafa --- /dev/null +++ b/node_modules/ignore/index.d.ts @@ -0,0 +1,61 @@ +type Pathname = string + +interface TestResult { + ignored: boolean + unignored: boolean +} + +export interface Ignore { + /** + * Adds one or several rules to the current manager. + * @param {string[]} patterns + * @returns IgnoreBase + */ + add(patterns: string | Ignore | readonly (string | Ignore)[]): this + + /** + * Filters the given array of pathnames, and returns the filtered array. + * NOTICE that each path here should be a relative path to the root of your repository. + * @param paths the array of paths to be filtered. + * @returns The filtered array of paths + */ + filter(pathnames: readonly Pathname[]): Pathname[] + + /** + * Creates a filter function which could filter + * an array of paths with Array.prototype.filter. + */ + createFilter(): (pathname: Pathname) => boolean + + /** + * Returns Boolean whether pathname should be ignored. + * @param {string} pathname a path to check + * @returns boolean + */ + ignores(pathname: Pathname): boolean + + /** + * Returns whether pathname should be ignored or unignored + * @param {string} pathname a path to check + * @returns TestResult + */ + test(pathname: Pathname): TestResult +} + +interface Options { + ignorecase?: boolean + // For compatibility + ignoreCase?: boolean + allowRelativePaths?: boolean +} + +/** + * Creates new ignore manager. + */ +declare function ignore(options?: Options): Ignore + +declare namespace ignore { + export function isPathValid (pathname: string): boolean +} + +export default ignore diff --git a/node_modules/ignore/index.js b/node_modules/ignore/index.js new file mode 100644 index 0000000..a25577f --- /dev/null +++ b/node_modules/ignore/index.js @@ -0,0 +1,618 @@ +// A simple implementation of make-array +function makeArray (subject) { + return Array.isArray(subject) + ? subject + : [subject] +} + +const EMPTY = '' +const SPACE = ' ' +const ESCAPE = '\\' +const REGEX_TEST_BLANK_LINE = /^\s+$/ +const REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/ +const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/ +const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/ +const REGEX_SPLITALL_CRLF = /\r?\n/g +// /foo, +// ./foo, +// ../foo, +// . +// .. +const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/ + +const SLASH = '/' + +// Do not use ternary expression here, since "istanbul ignore next" is buggy +let TMP_KEY_IGNORE = 'node-ignore' +/* istanbul ignore else */ +if (typeof Symbol !== 'undefined') { + TMP_KEY_IGNORE = Symbol.for('node-ignore') +} +const KEY_IGNORE = TMP_KEY_IGNORE + +const define = (object, key, value) => + Object.defineProperty(object, key, {value}) + +const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g + +const RETURN_FALSE = () => false + +// Sanitize the range of a regular expression +// The cases are complicated, see test cases for details +const sanitizeRange = range => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) + ? match + // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY +) + +// See fixtures #59 +const cleanRangeBackSlash = slashes => { + const {length} = slashes + return slashes.slice(0, length - length % 2) +} + +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` + +// '`foo/`' should not continue with the '`..`' +const REPLACERS = [ + + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + match => match.indexOf('\\') === 0 + ? SPACE + : EMPTY + ], + + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], + + // Escape metacharacters + // which is written down by users but means special for regular expressions. + + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + match => `\\${match}` + ], + + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => '[^/]' + ], + + // leading slash + [ + + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => '^' + ], + + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => '\\/' + ], + + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, + + // '**/foo' <-> 'foo' + () => '^(?:.*\\/)?' + ], + + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer () { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) + // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' + + // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^' + } + ], + + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, + + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer + + // Check if it is not the last `'/**'` + (_, index, str) => index + 6 < str.length + + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' + + // case: /** + // > A trailing `"/**"` matches everything inside. + + // #21: everything inside but it should not include the current folder + : '\\/.+' + ], + + // normal intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' + + // 'abc.*/' -> go + // 'abc.*' -> skip this rule, + // coz trailing single wildcard will be handed by [trailing wildcard] + /(^|[^\\]+)(\\\*)+(?=.+)/g, + + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1, p2) => { + // 1. + // > An asterisk "*" matches anything except a slash. + // 2. + // > Other consecutive asterisks are considered regular asterisks + // > and will match according to the previous rules. + const unescaped = p2.replace(/\\\*/g, '[^\\/]*') + return p1 + unescaped + } + ], + + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], + + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. + + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE + // '\\[bar]' -> '\\\\[bar\\]' + ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` + : close === ']' + ? endEscape.length % 2 === 0 + // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? `[${sanitizeRange(range)}${endEscape}]` + // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' + : '[]' + ], + + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, + + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 + + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. + + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + match => /\/$/.test(match) + // foo/ will not match 'foo' + ? `${match}$` + // foo matches 'foo' and 'foo/' + : `${match}(?=$|\\/$)` + ], + + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 + // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` + + // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*' + + return `${prefix}(?=$|\\/$)` + } + ], +] + +// A simple cache, because an ignore rule only has only one certain meaning +const regexCache = Object.create(null) + +// @param {pattern} +const makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern] + + if (!source) { + source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ) + regexCache[pattern] = source + } + + return ignoreCase + ? new RegExp(source, 'i') + : new RegExp(source) +} + +const isString = subject => typeof subject === 'string' + +// > A blank line matches no files, so it can serve as a separator for readability. +const checkPattern = pattern => pattern + && isString(pattern) + && !REGEX_TEST_BLANK_LINE.test(pattern) + && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) + + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0 + +const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF) + +class IgnoreRule { + constructor ( + origin, + pattern, + negative, + regex + ) { + this.origin = origin + this.pattern = pattern + this.negative = negative + this.regex = regex + } +} + +const createRule = (pattern, ignoreCase) => { + const origin = pattern + let negative = false + + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true + pattern = pattern.substr(1) + } + + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#') + + const regex = makeRegex(pattern, ignoreCase) + + return new IgnoreRule( + origin, + pattern, + negative, + regex + ) +} + +const throwError = (message, Ctor) => { + throw new Ctor(message) +} + +const checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ) + } + + // We don't know if we should ignore EMPTY, so throw + if (!path) { + return doThrow(`path must not be empty`, TypeError) + } + + // Check if it is a relative path + if (checkPath.isNotRelative(path)) { + const r = '`path.relative()`d' + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ) + } + + return true +} + +const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path) + +checkPath.isNotRelative = isNotRelative +checkPath.convert = p => p + +class Ignore { + constructor ({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define(this, KEY_IGNORE, true) + + this._rules = [] + this._ignoreCase = ignoreCase + this._allowRelativePaths = allowRelativePaths + this._initCache() + } + + _initCache () { + this._ignoreCache = Object.create(null) + this._testCache = Object.create(null) + } + + _addPattern (pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules) + this._added = true + return + } + + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase) + this._added = true + this._rules.push(rule) + } + } + + // @param {Array | string | Ignore} pattern + add (pattern) { + this._added = false + + makeArray( + isString(pattern) + ? splitPattern(pattern) + : pattern + ).forEach(this._addPattern, this) + + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache() + } + + return this + } + + // legacy + addPattern (pattern) { + return this.add(pattern) + } + + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + + // @returns {TestResult} true if a file is ignored + _testOne (path, checkUnignored) { + let ignored = false + let unignored = false + + this._rules.forEach(rule => { + const {negative} = rule + if ( + unignored === negative && ignored !== unignored + || negative && !ignored && !unignored && !checkUnignored + ) { + return + } + + const matched = rule.regex.test(path) + + if (matched) { + ignored = !negative + unignored = negative + } + }) + + return { + ignored, + unignored + } + } + + // @returns {TestResult} + _test (originalPath, cache, checkUnignored, slices) { + const path = originalPath + // Supports nullable path + && checkPath.convert(originalPath) + + checkPath( + path, + originalPath, + this._allowRelativePaths + ? RETURN_FALSE + : throwError + ) + + return this._t(path, cache, checkUnignored, slices) + } + + _t (path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path] + } + + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH) + } + + slices.pop() + + // If the path has no parent directory, just test it + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored) + } + + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ) + + // If the path contains a parent directory, check the parent first + return cache[path] = parent.ignored + // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent + : this._testOne(path, checkUnignored) + } + + ignores (path) { + return this._test(path, this._ignoreCache, false).ignored + } + + createFilter () { + return path => !this.ignores(path) + } + + filter (paths) { + return makeArray(paths).filter(this.createFilter()) + } + + // @returns {TestResult} + test (path) { + return this._test(path, this._testCache, true) + } +} + +const factory = options => new Ignore(options) + +const isPathValid = path => + checkPath(path && checkPath.convert(path), path, RETURN_FALSE) + +factory.isPathValid = isPathValid + +// Fixes typescript +factory.default = factory + +module.exports = factory + +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( + // Detect `process` so that it can run in browsers. + typeof process !== 'undefined' + && ( + process.env && process.env.IGNORE_TEST_WIN32 + || process.platform === 'win32' + ) +) { + /* eslint no-control-regex: "off" */ + const makePosix = str => /^\\\\\?\\/.test(str) + || /["<>|\u0000-\u001F]+/u.test(str) + ? str + : str.replace(/\\/g, '/') + + checkPath.convert = makePosix + + // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i + checkPath.isNotRelative = path => + REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) + || isNotRelative(path) +} diff --git a/node_modules/ignore/legacy.js b/node_modules/ignore/legacy.js new file mode 100644 index 0000000..8518b7c --- /dev/null +++ b/node_modules/ignore/legacy.js @@ -0,0 +1,539 @@ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +// A simple implementation of make-array +function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; +} +var EMPTY = ''; +var SPACE = ' '; +var ESCAPE = '\\'; +var REGEX_TEST_BLANK_LINE = /^\s+$/; +var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; +var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; +var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; +var REGEX_SPLITALL_CRLF = /\r?\n/g; +// /foo, +// ./foo, +// ../foo, +// . +// .. +var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; +var SLASH = '/'; + +// Do not use ternary expression here, since "istanbul ignore next" is buggy +var TMP_KEY_IGNORE = 'node-ignore'; +/* istanbul ignore else */ +if (typeof Symbol !== 'undefined') { + TMP_KEY_IGNORE = Symbol["for"]('node-ignore'); +} +var KEY_IGNORE = TMP_KEY_IGNORE; +var define = function define(object, key, value) { + return Object.defineProperty(object, key, { + value: value + }); +}; +var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; +var RETURN_FALSE = function RETURN_FALSE() { + return false; +}; + +// Sanitize the range of a regular expression +// The cases are complicated, see test cases for details +var sanitizeRange = function sanitizeRange(range) { + return range.replace(REGEX_REGEXP_RANGE, function (match, from, to) { + return from.charCodeAt(0) <= to.charCodeAt(0) ? match + // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY; + }); +}; + +// See fixtures #59 +var cleanRangeBackSlash = function cleanRangeBackSlash(slashes) { + var length = slashes.length; + return slashes.slice(0, length - length % 2); +}; + +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` + +// '`foo/`' should not continue with the '`..`' +var REPLACERS = [ +// > Trailing spaces are ignored unless they are quoted with backslash ("\") +[ +// (a\ ) -> (a ) +// (a ) -> (a) +// (a \ ) -> (a ) +/\\?\s+$/, function (match) { + return match.indexOf('\\') === 0 ? SPACE : EMPTY; +}], +// replace (\ ) with ' ' +[/\\\s/g, function () { + return SPACE; +}], +// Escape metacharacters +// which is written down by users but means special for regular expressions. + +// > There are 12 characters with special meanings: +// > - the backslash \, +// > - the caret ^, +// > - the dollar sign $, +// > - the period or dot ., +// > - the vertical bar or pipe symbol |, +// > - the question mark ?, +// > - the asterisk or star *, +// > - the plus sign +, +// > - the opening parenthesis (, +// > - the closing parenthesis ), +// > - and the opening square bracket [, +// > - the opening curly brace {, +// > These special characters are often called "metacharacters". +[/[\\$.|*+(){^]/g, function (match) { + return "\\".concat(match); +}], [ +// > a question mark (?) matches a single character +/(?!\\)\?/g, function () { + return '[^/]'; +}], +// leading slash +[ +// > A leading slash matches the beginning of the pathname. +// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". +// A leading slash matches the beginning of the pathname +/^\//, function () { + return '^'; +}], +// replace special metacharacter slash after the leading slash +[/\//g, function () { + return '\\/'; +}], [ +// > A leading "**" followed by a slash means match in all directories. +// > For example, "**/foo" matches file or directory "foo" anywhere, +// > the same as pattern "foo". +// > "**/foo/bar" matches file or directory "bar" anywhere that is directly +// > under directory "foo". +// Notice that the '*'s have been replaced as '\\*' +/^\^*\\\*\\\*\\\//, +// '**/foo' <-> 'foo' +function () { + return '^(?:.*\\/)?'; +}], +// starting +[ +// there will be no leading '/' +// (which has been replaced by section "leading slash") +// If starts with '**', adding a '^' to the regular expression also works +/^(?=[^^])/, function startingReplacer() { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) + // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' + + // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^'; +}], +// two globstars +[ +// Use lookahead assertions so that we could match more than one `'/**'` +/\\\/\\\*\\\*(?=\\\/|$)/g, +// Zero, one or several directories +// should not use '*', or it will be replaced by the next replacer + +// Check if it is not the last `'/**'` +function (_, index, str) { + return index + 6 < str.length + + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' + + // case: /** + // > A trailing `"/**"` matches everything inside. + + // #21: everything inside but it should not include the current folder + : '\\/.+'; +}], +// normal intermediate wildcards +[ +// Never replace escaped '*' +// ignore rule '\*' will match the path '*' + +// 'abc.*/' -> go +// 'abc.*' -> skip this rule, +// coz trailing single wildcard will be handed by [trailing wildcard] +/(^|[^\\]+)(\\\*)+(?=.+)/g, +// '*.js' matches '.js' +// '*.js' doesn't match 'abc' +function (_, p1, p2) { + // 1. + // > An asterisk "*" matches anything except a slash. + // 2. + // > Other consecutive asterisks are considered regular asterisks + // > and will match according to the previous rules. + var unescaped = p2.replace(/\\\*/g, '[^\\/]*'); + return p1 + unescaped; +}], [ +// unescape, revert step 3 except for back slash +// For example, if a user escape a '\\*', +// after step 3, the result will be '\\\\\\*' +/\\\\\\(?=[$.|*+(){^])/g, function () { + return ESCAPE; +}], [ +// '\\\\' -> '\\' +/\\\\/g, function () { + return ESCAPE; +}], [ +// > The range notation, e.g. [a-zA-Z], +// > can be used to match one of the characters in a range. + +// `\` is escaped by step 3 +/(\\)?\[([^\]/]*?)(\\*)($|\])/g, function (match, leadEscape, range, endEscape, close) { + return leadEscape === ESCAPE + // '\\[bar]' -> '\\\\[bar\\]' + ? "\\[".concat(range).concat(cleanRangeBackSlash(endEscape)).concat(close) : close === ']' ? endEscape.length % 2 === 0 + // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? "[".concat(sanitizeRange(range)).concat(endEscape, "]") // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' : '[]'; +}], +// ending +[ +// 'js' will not match 'js.' +// 'ab' will not match 'abc' +/(?:[^*])$/, +// WTF! +// https://git-scm.com/docs/gitignore +// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) +// which re-fixes #24, #38 + +// > If there is a separator at the end of the pattern then the pattern +// > will only match directories, otherwise the pattern can match both +// > files and directories. + +// 'js*' will not match 'a.js' +// 'js/' will not match 'a.js' +// 'js' will match 'a.js' and 'a.js/' +function (match) { + return /\/$/.test(match) + // foo/ will not match 'foo' + ? "".concat(match, "$") // foo matches 'foo' and 'foo/' + : "".concat(match, "(?=$|\\/$)"); +}], +// trailing wildcard +[/(\^|\\\/)?\\\*$/, function (_, p1) { + var prefix = p1 + // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + + // '\\\/': + // 'abc/*' does not match 'abc/' + ? "".concat(p1, "[^/]+") // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*'; + return "".concat(prefix, "(?=$|\\/$)"); +}]]; + +// A simple cache, because an ignore rule only has only one certain meaning +var regexCache = Object.create(null); + +// @param {pattern} +var makeRegex = function makeRegex(pattern, ignoreCase) { + var source = regexCache[pattern]; + if (!source) { + source = REPLACERS.reduce(function (prev, current) { + return prev.replace(current[0], current[1].bind(pattern)); + }, pattern); + regexCache[pattern] = source; + } + return ignoreCase ? new RegExp(source, 'i') : new RegExp(source); +}; +var isString = function isString(subject) { + return typeof subject === 'string'; +}; + +// > A blank line matches no files, so it can serve as a separator for readability. +var checkPattern = function checkPattern(pattern) { + return pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) + + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0; +}; +var splitPattern = function splitPattern(pattern) { + return pattern.split(REGEX_SPLITALL_CRLF); +}; +var IgnoreRule = /*#__PURE__*/_createClass(function IgnoreRule(origin, pattern, negative, regex) { + _classCallCheck(this, IgnoreRule); + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex; +}); +var createRule = function createRule(pattern, ignoreCase) { + var origin = pattern; + var negative = false; + + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); + var regex = makeRegex(pattern, ignoreCase); + return new IgnoreRule(origin, pattern, negative, regex); +}; +var throwError = function throwError(message, Ctor) { + throw new Ctor(message); +}; +var checkPath = function checkPath(path, originalPath, doThrow) { + if (!isString(path)) { + return doThrow("path must be a string, but got `".concat(originalPath, "`"), TypeError); + } + + // We don't know if we should ignore EMPTY, so throw + if (!path) { + return doThrow("path must not be empty", TypeError); + } + + // Check if it is a relative path + if (checkPath.isNotRelative(path)) { + var r = '`path.relative()`d'; + return doThrow("path should be a ".concat(r, " string, but got \"").concat(originalPath, "\""), RangeError); + } + return true; +}; +var isNotRelative = function isNotRelative(path) { + return REGEX_TEST_INVALID_PATH.test(path); +}; +checkPath.isNotRelative = isNotRelative; +checkPath.convert = function (p) { + return p; +}; +var Ignore = /*#__PURE__*/function () { + function Ignore() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$ignorecase = _ref.ignorecase, + ignorecase = _ref$ignorecase === void 0 ? true : _ref$ignorecase, + _ref$ignoreCase = _ref.ignoreCase, + ignoreCase = _ref$ignoreCase === void 0 ? ignorecase : _ref$ignoreCase, + _ref$allowRelativePat = _ref.allowRelativePaths, + allowRelativePaths = _ref$allowRelativePat === void 0 ? false : _ref$allowRelativePat; + _classCallCheck(this, Ignore); + define(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + this._initCache(); + } + _createClass(Ignore, [{ + key: "_initCache", + value: function _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); + } + }, { + key: "_addPattern", + value: function _addPattern(pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (checkPattern(pattern)) { + var rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } + } + + // @param {Array | string | Ignore} pattern + }, { + key: "add", + value: function add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); + + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache(); + } + return this; + } + + // legacy + }, { + key: "addPattern", + value: function addPattern(pattern) { + return this.add(pattern); + } + + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + + // @returns {TestResult} true if a file is ignored + }, { + key: "_testOne", + value: function _testOne(path, checkUnignored) { + var ignored = false; + var unignored = false; + this._rules.forEach(function (rule) { + var negative = rule.negative; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + var matched = rule.regex.test(path); + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + return { + ignored: ignored, + unignored: unignored + }; + } + + // @returns {TestResult} + }, { + key: "_test", + value: function _test(originalPath, cache, checkUnignored, slices) { + var path = originalPath + // Supports nullable path + && checkPath.convert(originalPath); + checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError); + return this._t(path, cache, checkUnignored, slices); + } + }, { + key: "_t", + value: function _t(path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path]; + } + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH); + } + slices.pop(); + + // If the path has no parent directory, just test it + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored); + } + var parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); + + // If the path contains a parent directory, check the parent first + return cache[path] = parent.ignored + // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent : this._testOne(path, checkUnignored); + } + }, { + key: "ignores", + value: function ignores(path) { + return this._test(path, this._ignoreCache, false).ignored; + } + }, { + key: "createFilter", + value: function createFilter() { + var _this = this; + return function (path) { + return !_this.ignores(path); + }; + } + }, { + key: "filter", + value: function filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + + // @returns {TestResult} + }, { + key: "test", + value: function test(path) { + return this._test(path, this._testCache, true); + } + }]); + return Ignore; +}(); +var factory = function factory(options) { + return new Ignore(options); +}; +var isPathValid = function isPathValid(path) { + return checkPath(path && checkPath.convert(path), path, RETURN_FALSE); +}; +factory.isPathValid = isPathValid; + +// Fixes typescript +factory["default"] = factory; +module.exports = factory; + +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( +// Detect `process` so that it can run in browsers. +typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { + /* eslint no-control-regex: "off" */ + var makePosix = function makePosix(str) { + return /^\\\\\?\\/.test(str) || /[\0-\x1F"<>\|]+/.test(str) ? str : str.replace(/\\/g, '/'); + }; + checkPath.convert = makePosix; + + // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + var REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = function (path) { + return REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path); + }; +} diff --git a/node_modules/ignore/package.json b/node_modules/ignore/package.json new file mode 100644 index 0000000..fe5498d --- /dev/null +++ b/node_modules/ignore/package.json @@ -0,0 +1,73 @@ +{ + "name": "ignore", + "version": "5.2.4", + "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.", + "files": [ + "legacy.js", + "index.js", + "index.d.ts", + "LICENSE-MIT" + ], + "scripts": { + "prepublishOnly": "npm run build", + "build": "babel -o legacy.js index.js", + "test:lint": "eslint .", + "test:tsc": "tsc ./test/ts/simple.ts --lib ES6", + "test:ts": "node ./test/ts/simple.js", + "tap": "tap --reporter classic", + "test:git": "npm run tap test/git-check-ignore.js", + "test:ignore": "npm run tap test/ignore.js", + "test:others": "npm run tap test/others.js", + "test:cases": "npm run tap test/*.js -- --coverage", + "test:no-coverage": "npm run tap test/*.js -- --no-check-coverage", + "test:only": "npm run test:lint && npm run test:tsc && npm run test:ts && npm run test:cases", + "test": "npm run test:only", + "test:win32": "IGNORE_TEST_WIN32=1 npm run test", + "report": "tap --coverage-report=html", + "posttest": "npm run report && codecov" + }, + "repository": { + "type": "git", + "url": "git@github.com:kaelzhang/node-ignore.git" + }, + "keywords": [ + "ignore", + ".gitignore", + "gitignore", + "npmignore", + "rules", + "manager", + "filter", + "regexp", + "regex", + "fnmatch", + "glob", + "asterisks", + "regular-expression" + ], + "author": "kael", + "license": "MIT", + "bugs": { + "url": "https://github.com/kaelzhang/node-ignore/issues" + }, + "devDependencies": { + "@babel/cli": "^7.19.3", + "@babel/core": "^7.20.5", + "@babel/preset-env": "^7.20.2", + "codecov": "^3.8.2", + "debug": "^4.3.4", + "eslint": "^8.30.0", + "eslint-config-ostai": "^3.0.0", + "eslint-plugin-import": "^2.26.0", + "mkdirp": "^1.0.4", + "pre-suf": "^1.1.1", + "rimraf": "^3.0.2", + "spawn-sync": "^2.0.0", + "tap": "^16.3.2", + "tmp": "0.2.1", + "typescript": "^4.9.4" + }, + "engines": { + "node": ">= 4" + } +} diff --git a/node_modules/is-binary-path/index.d.ts b/node_modules/is-binary-path/index.d.ts new file mode 100644 index 0000000..19dcd43 --- /dev/null +++ b/node_modules/is-binary-path/index.d.ts @@ -0,0 +1,17 @@ +/** +Check if a file path is a binary file. + +@example +``` +import isBinaryPath = require('is-binary-path'); + +isBinaryPath('source/unicorn.png'); +//=> true + +isBinaryPath('source/unicorn.txt'); +//=> false +``` +*/ +declare function isBinaryPath(filePath: string): boolean; + +export = isBinaryPath; diff --git a/node_modules/is-binary-path/index.js b/node_modules/is-binary-path/index.js new file mode 100644 index 0000000..ef7548c --- /dev/null +++ b/node_modules/is-binary-path/index.js @@ -0,0 +1,7 @@ +'use strict'; +const path = require('path'); +const binaryExtensions = require('binary-extensions'); + +const extensions = new Set(binaryExtensions); + +module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); diff --git a/node_modules/is-binary-path/license b/node_modules/is-binary-path/license new file mode 100644 index 0000000..401b1c7 --- /dev/null +++ b/node_modules/is-binary-path/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-binary-path/package.json b/node_modules/is-binary-path/package.json new file mode 100644 index 0000000..a8d005a --- /dev/null +++ b/node_modules/is-binary-path/package.json @@ -0,0 +1,40 @@ +{ + "name": "is-binary-path", + "version": "2.1.0", + "description": "Check if a file path is a binary file", + "license": "MIT", + "repository": "sindresorhus/is-binary-path", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "path", + "check", + "detect", + "is" + ], + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/is-binary-path/readme.md b/node_modules/is-binary-path/readme.md new file mode 100644 index 0000000..b4ab025 --- /dev/null +++ b/node_modules/is-binary-path/readme.md @@ -0,0 +1,34 @@ +# is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) + +> Check if a file path is a binary file + + +## Install + +``` +$ npm install is-binary-path +``` + + +## Usage + +```js +const isBinaryPath = require('is-binary-path'); + +isBinaryPath('source/unicorn.png'); +//=> true + +isBinaryPath('source/unicorn.txt'); +//=> false +``` + + +## Related + +- [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions +- [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) diff --git a/node_modules/is-extglob/LICENSE b/node_modules/is-extglob/LICENSE new file mode 100644 index 0000000..842218c --- /dev/null +++ b/node_modules/is-extglob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2016, Jon Schlinkert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-extglob/README.md b/node_modules/is-extglob/README.md new file mode 100644 index 0000000..0416af5 --- /dev/null +++ b/node_modules/is-extglob/README.md @@ -0,0 +1,107 @@ +# is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob) + +> Returns true if a string has an extglob. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-extglob +``` + +## Usage + +```js +var isExtglob = require('is-extglob'); +``` + +**True** + +```js +isExtglob('?(abc)'); +isExtglob('@(abc)'); +isExtglob('!(abc)'); +isExtglob('*(abc)'); +isExtglob('+(abc)'); +``` + +**False** + +Escaped extglobs: + +```js +isExtglob('\\?(abc)'); +isExtglob('\\@(abc)'); +isExtglob('\\!(abc)'); +isExtglob('\\*(abc)'); +isExtglob('\\+(abc)'); +``` + +Everything else... + +```js +isExtglob('foo.js'); +isExtglob('!foo.js'); +isExtglob('*.js'); +isExtglob('**/abc.js'); +isExtglob('abc/*.js'); +isExtglob('abc/(aaa|bbb).js'); +isExtglob('abc/[a-z].js'); +isExtglob('abc/{a,b}.js'); +isExtglob('abc/?.js'); +isExtglob('abc.js'); +isExtglob('abc/def/ghi.js'); +``` + +## History + +**v2.0** + +Adds support for escaping. Escaped exglobs no longer return true. + +## About + +### Related projects + +* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") +* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") + +### Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +### Building docs + +_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ + +To generate the readme and API documentation with [verb](https://github.com/verbose/verb): + +```sh +$ npm install -g verb verb-generate-readme && verb +``` + +### Running tests + +Install dev dependencies: + +```sh +$ npm install -d && npm test +``` + +### Author + +**Jon Schlinkert** + +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) + +### License + +Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._ \ No newline at end of file diff --git a/node_modules/is-extglob/index.js b/node_modules/is-extglob/index.js new file mode 100644 index 0000000..c1d986f --- /dev/null +++ b/node_modules/is-extglob/index.js @@ -0,0 +1,20 @@ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ + +module.exports = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } + + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } + + return false; +}; diff --git a/node_modules/is-extglob/package.json b/node_modules/is-extglob/package.json new file mode 100644 index 0000000..7a90836 --- /dev/null +++ b/node_modules/is-extglob/package.json @@ -0,0 +1,69 @@ +{ + "name": "is-extglob", + "description": "Returns true if a string has an extglob.", + "version": "2.1.1", + "homepage": "https://github.com/jonschlinkert/is-extglob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "repository": "jonschlinkert/is-extglob", + "bugs": { + "url": "https://github.com/jonschlinkert/is-extglob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "has-glob", + "is-glob", + "micromatch" + ] + }, + "reflinks": [ + "verb", + "verb-generate-readme" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/is-fullwidth-code-point/index.d.ts b/node_modules/is-fullwidth-code-point/index.d.ts new file mode 100644 index 0000000..729d202 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/index.d.ts @@ -0,0 +1,17 @@ +/** +Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms). + +@param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. + +@example +``` +import isFullwidthCodePoint from 'is-fullwidth-code-point'; + +isFullwidthCodePoint('谢'.codePointAt(0)); +//=> true + +isFullwidthCodePoint('a'.codePointAt(0)); +//=> false +``` +*/ +export default function isFullwidthCodePoint(codePoint: number): boolean; diff --git a/node_modules/is-fullwidth-code-point/index.js b/node_modules/is-fullwidth-code-point/index.js new file mode 100644 index 0000000..671f97f --- /dev/null +++ b/node_modules/is-fullwidth-code-point/index.js @@ -0,0 +1,50 @@ +/* eslint-disable yoda */ +'use strict'; + +const isFullwidthCodePoint = codePoint => { + if (Number.isNaN(codePoint)) { + return false; + } + + // Code points are derived from: + // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt + if ( + codePoint >= 0x1100 && ( + codePoint <= 0x115F || // Hangul Jamo + codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET + codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + (0x3250 <= codePoint && codePoint <= 0x4DBF) || + // CJK Unified Ideographs .. Yi Radicals + (0x4E00 <= codePoint && codePoint <= 0xA4C6) || + // Hangul Jamo Extended-A + (0xA960 <= codePoint && codePoint <= 0xA97C) || + // Hangul Syllables + (0xAC00 <= codePoint && codePoint <= 0xD7A3) || + // CJK Compatibility Ideographs + (0xF900 <= codePoint && codePoint <= 0xFAFF) || + // Vertical Forms + (0xFE10 <= codePoint && codePoint <= 0xFE19) || + // CJK Compatibility Forms .. Small Form Variants + (0xFE30 <= codePoint && codePoint <= 0xFE6B) || + // Halfwidth and Fullwidth Forms + (0xFF01 <= codePoint && codePoint <= 0xFF60) || + (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || + // Kana Supplement + (0x1B000 <= codePoint && codePoint <= 0x1B001) || + // Enclosed Ideographic Supplement + (0x1F200 <= codePoint && codePoint <= 0x1F251) || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + (0x20000 <= codePoint && codePoint <= 0x3FFFD) + ) + ) { + return true; + } + + return false; +}; + +module.exports = isFullwidthCodePoint; +module.exports.default = isFullwidthCodePoint; diff --git a/node_modules/is-fullwidth-code-point/license b/node_modules/is-fullwidth-code-point/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-fullwidth-code-point/package.json b/node_modules/is-fullwidth-code-point/package.json new file mode 100644 index 0000000..2137e88 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/package.json @@ -0,0 +1,42 @@ +{ + "name": "is-fullwidth-code-point", + "version": "3.0.0", + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "license": "MIT", + "repository": "sindresorhus/is-fullwidth-code-point", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "fullwidth", + "full-width", + "full", + "width", + "unicode", + "character", + "string", + "codepoint", + "code", + "point", + "is", + "detect", + "check" + ], + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/is-fullwidth-code-point/readme.md b/node_modules/is-fullwidth-code-point/readme.md new file mode 100644 index 0000000..4236bba --- /dev/null +++ b/node_modules/is-fullwidth-code-point/readme.md @@ -0,0 +1,39 @@ +# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) + +> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) + + +## Install + +``` +$ npm install is-fullwidth-code-point +``` + + +## Usage + +```js +const isFullwidthCodePoint = require('is-fullwidth-code-point'); + +isFullwidthCodePoint('谢'.codePointAt(0)); +//=> true + +isFullwidthCodePoint('a'.codePointAt(0)); +//=> false +``` + + +## API + +### isFullwidthCodePoint(codePoint) + +#### codePoint + +Type: `number` + +The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/is-glob/LICENSE b/node_modules/is-glob/LICENSE new file mode 100644 index 0000000..3f2eca1 --- /dev/null +++ b/node_modules/is-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-glob/README.md b/node_modules/is-glob/README.md new file mode 100644 index 0000000..740724b --- /dev/null +++ b/node_modules/is-glob/README.md @@ -0,0 +1,206 @@ +# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions) + +> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-glob +``` + +You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob). + +## Usage + +```js +var isGlob = require('is-glob'); +``` + +### Default behavior + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js'); +isGlob('*.js'); +isGlob('**/abc.js'); +isGlob('abc/*.js'); +isGlob('abc/(aaa|bbb).js'); +isGlob('abc/[a-z].js'); +isGlob('abc/{a,b}.js'); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js'); +isGlob('abc/!(a).js'); +isGlob('abc/+(a).js'); +isGlob('abc/*(a).js'); +isGlob('abc/?(a).js'); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('abc/\\@(a).js'); +isGlob('abc/\\!(a).js'); +isGlob('abc/\\+(a).js'); +isGlob('abc/\\*(a).js'); +isGlob('abc/\\?(a).js'); +isGlob('\\!foo.js'); +isGlob('\\*.js'); +isGlob('\\*\\*/abc.js'); +isGlob('abc/\\*.js'); +isGlob('abc/\\(aaa|bbb).js'); +isGlob('abc/\\[a-z].js'); +isGlob('abc/\\{a,b}.js'); +//=> false +``` + +Patterns that do not have glob patterns return `false`: + +```js +isGlob('abc.js'); +isGlob('abc/def/ghi.js'); +isGlob('foo.js'); +isGlob('abc/@.js'); +isGlob('abc/+.js'); +isGlob('abc/?.js'); +isGlob(); +isGlob(null); +//=> false +``` + +Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)): + +```js +isGlob(['**/*.js']); +isGlob(['foo.js']); +//=> false +``` + +### Option strict + +When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that +some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not. + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js', {strict: false}); +isGlob('*.js', {strict: false}); +isGlob('**/abc.js', {strict: false}); +isGlob('abc/*.js', {strict: false}); +isGlob('abc/(aaa|bbb).js', {strict: false}); +isGlob('abc/[a-z].js', {strict: false}); +isGlob('abc/{a,b}.js', {strict: false}); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js', {strict: false}); +isGlob('abc/!(a).js', {strict: false}); +isGlob('abc/+(a).js', {strict: false}); +isGlob('abc/*(a).js', {strict: false}); +isGlob('abc/?(a).js', {strict: false}); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('\\!foo.js', {strict: false}); +isGlob('\\*.js', {strict: false}); +isGlob('\\*\\*/abc.js', {strict: false}); +isGlob('abc/\\*.js', {strict: false}); +isGlob('abc/\\(aaa|bbb).js', {strict: false}); +isGlob('abc/\\[a-z].js', {strict: false}); +isGlob('abc/\\{a,b}.js', {strict: false}); +//=> false +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit") +* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks") +* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.") +* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 47 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [doowb](https://github.com/doowb) | +| 1 | [phated](https://github.com/phated) | +| 1 | [danhper](https://github.com/danhper) | +| 1 | [paulmillr](https://github.com/paulmillr) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._ \ No newline at end of file diff --git a/node_modules/is-glob/index.js b/node_modules/is-glob/index.js new file mode 100644 index 0000000..620f563 --- /dev/null +++ b/node_modules/is-glob/index.js @@ -0,0 +1,150 @@ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +var isExtglob = require('is-extglob'); +var chars = { '{': '}', '(': ')', '[': ']'}; +var strictCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === '*') { + return true; + } + + if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { + return true; + } + + if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf(']', index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } + + if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { + closeCurlyIndex = str.indexOf('}', index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } + } + + if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { + closeParenIndex = str.indexOf(')', index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + + if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { + if (pipeIndex < index) { + pipeIndex = str.indexOf('|', index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { + closeParenIndex = str.indexOf(')', pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf('\\', pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +var relaxedCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +module.exports = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } + + if (isExtglob(str)) { + return true; + } + + var check = strictCheck; + + // optionally relax check + if (options && options.strict === false) { + check = relaxedCheck; + } + + return check(str); +}; diff --git a/node_modules/is-glob/package.json b/node_modules/is-glob/package.json new file mode 100644 index 0000000..858af03 --- /dev/null +++ b/node_modules/is-glob/package.json @@ -0,0 +1,81 @@ +{ + "name": "is-glob", + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", + "version": "4.0.3", + "homepage": "https://github.com/micromatch/is-glob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Daniel Perez (https://tuvistavie.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/is-glob", + "bugs": { + "url": "https://github.com/micromatch/is-glob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha && node benchmark.js" + }, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "layout": "default", + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "assemble", + "base", + "update", + "verb" + ] + }, + "reflinks": [ + "assemble", + "bach", + "base", + "composer", + "gulp", + "has-glob", + "is-valid-glob", + "micromatch", + "npm", + "scaffold", + "verb", + "vinyl" + ] + } +} diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE new file mode 100644 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/is-number/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-number/README.md b/node_modules/is-number/README.md new file mode 100644 index 0000000..eb8149e --- /dev/null +++ b/node_modules/is-number/README.md @@ -0,0 +1,187 @@ +# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number) + +> Returns true if the value is a finite number. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-number +``` + +## Why is this needed? + +In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use `+`, `-`, or `Number()` to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results: + +```js +console.log(+[]); //=> 0 +console.log(+''); //=> 0 +console.log(+' '); //=> 0 +console.log(typeof NaN); //=> 'number' +``` + +This library offers a performant way to smooth out edge cases like these. + +## Usage + +```js +const isNumber = require('is-number'); +``` + +See the [tests](./test.js) for more examples. + +### true + +```js +isNumber(5e3); // true +isNumber(0xff); // true +isNumber(-1.1); // true +isNumber(0); // true +isNumber(1); // true +isNumber(1.1); // true +isNumber(10); // true +isNumber(10.10); // true +isNumber(100); // true +isNumber('-1.1'); // true +isNumber('0'); // true +isNumber('012'); // true +isNumber('0xff'); // true +isNumber('1'); // true +isNumber('1.1'); // true +isNumber('10'); // true +isNumber('10.10'); // true +isNumber('100'); // true +isNumber('5e3'); // true +isNumber(parseInt('012')); // true +isNumber(parseFloat('012')); // true +``` + +### False + +Everything else is false, as you would expect: + +```js +isNumber(Infinity); // false +isNumber(NaN); // false +isNumber(null); // false +isNumber(undefined); // false +isNumber(''); // false +isNumber(' '); // false +isNumber('foo'); // false +isNumber([1]); // false +isNumber([]); // false +isNumber(function () {}); // false +isNumber({}); // false +``` + +## Release history + +### 7.0.0 + +* Refactor. Now uses `.isFinite` if it exists. +* Performance is about the same as v6.0 when the value is a string or number. But it's now 3x-4x faster when the value is not a string or number. + +### 6.0.0 + +* Optimizations, thanks to @benaadams. + +### 5.0.0 + +**Breaking changes** + +* removed support for `instanceof Number` and `instanceof String` + +## Benchmarks + +As with all benchmarks, take these with a grain of salt. See the [benchmarks](./benchmark/index.js) for more detail. + +``` +# all +v7.0 x 413,222 ops/sec ±2.02% (86 runs sampled) +v6.0 x 111,061 ops/sec ±1.29% (85 runs sampled) +parseFloat x 317,596 ops/sec ±1.36% (86 runs sampled) +fastest is 'v7.0' + +# string +v7.0 x 3,054,496 ops/sec ±1.05% (89 runs sampled) +v6.0 x 2,957,781 ops/sec ±0.98% (88 runs sampled) +parseFloat x 3,071,060 ops/sec ±1.13% (88 runs sampled) +fastest is 'parseFloat,v7.0' + +# number +v7.0 x 3,146,895 ops/sec ±0.89% (89 runs sampled) +v6.0 x 3,214,038 ops/sec ±1.07% (89 runs sampled) +parseFloat x 3,077,588 ops/sec ±1.07% (87 runs sampled) +fastest is 'v6.0' +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") +* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 49 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [charlike-old](https://github.com/charlike-old) | +| 1 | [benaadams](https://github.com/benaadams) | +| 1 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 15, 2018._ \ No newline at end of file diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js new file mode 100644 index 0000000..27f19b7 --- /dev/null +++ b/node_modules/is-number/index.js @@ -0,0 +1,18 @@ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +module.exports = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; +}; diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json new file mode 100644 index 0000000..3715072 --- /dev/null +++ b/node_modules/is-number/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-number", + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", + "version": "7.0.0", + "homepage": "https://github.com/jonschlinkert/is-number", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Olsten Larck (https://i.am.charlike.online)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "jonschlinkert/is-number", + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.12.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "gulp-format-md": "^1.0.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "cast", + "check", + "coerce", + "coercion", + "finite", + "integer", + "is", + "isnan", + "is-nan", + "is-num", + "is-number", + "isnumber", + "isfinite", + "istype", + "kind", + "math", + "nan", + "num", + "number", + "numeric", + "parseFloat", + "parseInt", + "test", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "related": { + "list": [ + "is-plain-object", + "is-primitive", + "isobject", + "kind-of" + ] + }, + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/jsonfile/CHANGELOG.md b/node_modules/jsonfile/CHANGELOG.md new file mode 100644 index 0000000..d772e43 --- /dev/null +++ b/node_modules/jsonfile/CHANGELOG.md @@ -0,0 +1,171 @@ +6.1.0 / 2020-10-31 +------------------ + +- Add `finalEOL` option to disable writing final EOL ([#115](https://github.com/jprichardson/node-jsonfile/issues/115), [#137](https://github.com/jprichardson/node-jsonfile/pull/137)) +- Update dependency ([#138](https://github.com/jprichardson/node-jsonfile/pull/138)) + +6.0.1 / 2020-03-07 +------------------ + +- Update dependency ([#130](https://github.com/jprichardson/node-jsonfile/pull/130)) +- Fix code style ([#129](https://github.com/jprichardson/node-jsonfile/pull/129)) + +6.0.0 / 2020-02-24 +------------------ + +- **BREAKING:** Drop support for Node 6 & 8 ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) +- **BREAKING:** Do not allow passing `null` as options to `readFile()` or `writeFile()` ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) +- Refactor internals ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) + +5.0.0 / 2018-09-08 +------------------ + +- **BREAKING:** Drop Node 4 support +- **BREAKING:** If no callback is passed to an asynchronous method, a promise is now returned ([#109](https://github.com/jprichardson/node-jsonfile/pull/109)) +- Cleanup docs + +4.0.0 / 2017-07-12 +------------------ + +- **BREAKING:** Remove global `spaces` option. +- **BREAKING:** Drop support for Node 0.10, 0.12, and io.js. +- Remove undocumented `passParsingErrors` option. +- Added `EOL` override option to `writeFile` when using `spaces`. [#89] + +3.0.1 / 2017-07-05 +------------------ + +- Fixed bug in `writeFile` when there was a serialization error & no callback was passed. In previous versions, an empty file would be written; now no file is written. + +3.0.0 / 2017-04-25 +------------------ + +- Changed behavior of `throws` option for `readFileSync`; now does not throw filesystem errors when `throws` is `false` + +2.4.0 / 2016-09-15 +------------------ +### Changed +- added optional support for `graceful-fs` [#62] + +2.3.1 / 2016-05-13 +------------------ +- fix to support BOM. [#45][#45] + +2.3.0 / 2016-04-16 +------------------ +- add `throws` to `readFile()`. See [#39][#39] +- add support for any arbitrary `fs` module. Useful with [mock-fs](https://www.npmjs.com/package/mock-fs) + +2.2.3 / 2015-10-14 +------------------ +- include file name in parse error. See: https://github.com/jprichardson/node-jsonfile/pull/34 + +2.2.2 / 2015-09-16 +------------------ +- split out tests into separate files +- fixed `throws` when set to `true` in `readFileSync()`. See: https://github.com/jprichardson/node-jsonfile/pull/33 + +2.2.1 / 2015-06-25 +------------------ +- fixed regression when passing in string as encoding for options in `writeFile()` and `writeFileSync()`. See: https://github.com/jprichardson/node-jsonfile/issues/28 + +2.2.0 / 2015-06-25 +------------------ +- added `options.spaces` to `writeFile()` and `writeFileSync()` + +2.1.2 / 2015-06-22 +------------------ +- fixed if passed `readFileSync(file, 'utf8')`. See: https://github.com/jprichardson/node-jsonfile/issues/25 + +2.1.1 / 2015-06-19 +------------------ +- fixed regressions if `null` is passed for options. See: https://github.com/jprichardson/node-jsonfile/issues/24 + +2.1.0 / 2015-06-19 +------------------ +- cleanup: JavaScript Standard Style, rename files, dropped terst for assert +- methods now support JSON revivers/replacers + +2.0.1 / 2015-05-24 +------------------ +- update license attribute https://github.com/jprichardson/node-jsonfile/pull/21 + +2.0.0 / 2014-07-28 +------------------ +* added `\n` to end of file on write. [#14](https://github.com/jprichardson/node-jsonfile/pull/14) +* added `options.throws` to `readFileSync()` +* dropped support for Node v0.8 + +1.2.0 / 2014-06-29 +------------------ +* removed semicolons +* bugfix: passed `options` to `fs.readFile` and `fs.readFileSync`. This technically changes behavior, but +changes it according to docs. [#12][#12] + +1.1.1 / 2013-11-11 +------------------ +* fixed catching of callback bug (ffissore / #5) + +1.1.0 / 2013-10-11 +------------------ +* added `options` param to methods, (seanodell / #4) + +1.0.1 / 2013-09-05 +------------------ +* removed `homepage` field from package.json to remove NPM warning + +1.0.0 / 2013-06-28 +------------------ +* added `.npmignore`, #1 +* changed spacing default from `4` to `2` to follow Node conventions + +0.0.1 / 2012-09-10 +------------------ +* Initial release. + +[#89]: https://github.com/jprichardson/node-jsonfile/pull/89 +[#45]: https://github.com/jprichardson/node-jsonfile/issues/45 "Reading of UTF8-encoded (w/ BOM) files fails" +[#44]: https://github.com/jprichardson/node-jsonfile/issues/44 "Extra characters in written file" +[#43]: https://github.com/jprichardson/node-jsonfile/issues/43 "Prettyfy json when written to file" +[#42]: https://github.com/jprichardson/node-jsonfile/pull/42 "Moved fs.readFileSync within the try/catch" +[#41]: https://github.com/jprichardson/node-jsonfile/issues/41 "Linux: Hidden file not working" +[#40]: https://github.com/jprichardson/node-jsonfile/issues/40 "autocreate folder doesn't work from Path-value" +[#39]: https://github.com/jprichardson/node-jsonfile/pull/39 "Add `throws` option for readFile (async)" +[#38]: https://github.com/jprichardson/node-jsonfile/pull/38 "Update README.md writeFile[Sync] signature" +[#37]: https://github.com/jprichardson/node-jsonfile/pull/37 "support append file" +[#36]: https://github.com/jprichardson/node-jsonfile/pull/36 "Add typescript definition file." +[#35]: https://github.com/jprichardson/node-jsonfile/pull/35 "Add typescript definition file." +[#34]: https://github.com/jprichardson/node-jsonfile/pull/34 "readFile JSON parse error includes filename" +[#33]: https://github.com/jprichardson/node-jsonfile/pull/33 "fix throw->throws typo in readFileSync()" +[#32]: https://github.com/jprichardson/node-jsonfile/issues/32 "readFile & readFileSync can possible have strip-comments as an option?" +[#31]: https://github.com/jprichardson/node-jsonfile/pull/31 "[Modify] Support string include is unicode escape string" +[#30]: https://github.com/jprichardson/node-jsonfile/issues/30 "How to use Jsonfile package in Meteor.js App?" +[#29]: https://github.com/jprichardson/node-jsonfile/issues/29 "writefile callback if no error?" +[#28]: https://github.com/jprichardson/node-jsonfile/issues/28 "writeFile options argument broken " +[#27]: https://github.com/jprichardson/node-jsonfile/pull/27 "Use svg instead of png to get better image quality" +[#26]: https://github.com/jprichardson/node-jsonfile/issues/26 "Breaking change to fs-extra" +[#25]: https://github.com/jprichardson/node-jsonfile/issues/25 "support string encoding param for read methods" +[#24]: https://github.com/jprichardson/node-jsonfile/issues/24 "readFile: Passing in null options with a callback throws an error" +[#23]: https://github.com/jprichardson/node-jsonfile/pull/23 "Add appendFile and appendFileSync" +[#22]: https://github.com/jprichardson/node-jsonfile/issues/22 "Default value for spaces in readme.md is outdated" +[#21]: https://github.com/jprichardson/node-jsonfile/pull/21 "Update license attribute" +[#20]: https://github.com/jprichardson/node-jsonfile/issues/20 "Add simple caching functionallity" +[#19]: https://github.com/jprichardson/node-jsonfile/pull/19 "Add appendFileSync method" +[#18]: https://github.com/jprichardson/node-jsonfile/issues/18 "Add updateFile and updateFileSync methods" +[#17]: https://github.com/jprichardson/node-jsonfile/issues/17 "seem read & write sync has sequentially problem" +[#16]: https://github.com/jprichardson/node-jsonfile/pull/16 "export spaces defaulted to null" +[#15]: https://github.com/jprichardson/node-jsonfile/issues/15 "`jsonfile.spaces` should default to `null`" +[#14]: https://github.com/jprichardson/node-jsonfile/pull/14 "Add EOL at EOF" +[#13]: https://github.com/jprichardson/node-jsonfile/issues/13 "Add a final newline" +[#12]: https://github.com/jprichardson/node-jsonfile/issues/12 "readFile doesn't accept options" +[#11]: https://github.com/jprichardson/node-jsonfile/pull/11 "Added try,catch to readFileSync" +[#10]: https://github.com/jprichardson/node-jsonfile/issues/10 "No output or error from writeFile" +[#9]: https://github.com/jprichardson/node-jsonfile/pull/9 "Change 'js' to 'jf' in example." +[#8]: https://github.com/jprichardson/node-jsonfile/pull/8 "Updated forgotten module.exports to me." +[#7]: https://github.com/jprichardson/node-jsonfile/pull/7 "Add file name in error message" +[#6]: https://github.com/jprichardson/node-jsonfile/pull/6 "Use graceful-fs when possible" +[#5]: https://github.com/jprichardson/node-jsonfile/pull/5 "Jsonfile doesn't behave nicely when used inside a test suite." +[#4]: https://github.com/jprichardson/node-jsonfile/pull/4 "Added options parameter to writeFile and writeFileSync" +[#3]: https://github.com/jprichardson/node-jsonfile/issues/3 "test2" +[#2]: https://github.com/jprichardson/node-jsonfile/issues/2 "homepage field must be a string url. Deleted." +[#1]: https://github.com/jprichardson/node-jsonfile/pull/1 "adding an `.npmignore` file" diff --git a/node_modules/jsonfile/LICENSE b/node_modules/jsonfile/LICENSE new file mode 100644 index 0000000..cb7e807 --- /dev/null +++ b/node_modules/jsonfile/LICENSE @@ -0,0 +1,15 @@ +(The MIT License) + +Copyright (c) 2012-2015, JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/jsonfile/README.md b/node_modules/jsonfile/README.md new file mode 100644 index 0000000..910cde0 --- /dev/null +++ b/node_modules/jsonfile/README.md @@ -0,0 +1,230 @@ +Node.js - jsonfile +================ + +Easily read/write JSON files in Node.js. _Note: this module cannot be used in the browser._ + +[![npm Package](https://img.shields.io/npm/v/jsonfile.svg?style=flat-square)](https://www.npmjs.org/package/jsonfile) +[![build status](https://secure.travis-ci.org/jprichardson/node-jsonfile.svg)](http://travis-ci.org/jprichardson/node-jsonfile) +[![windows Build status](https://img.shields.io/appveyor/ci/jprichardson/node-jsonfile/master.svg?label=windows%20build)](https://ci.appveyor.com/project/jprichardson/node-jsonfile/branch/master) + +Standard JavaScript + +Why? +---- + +Writing `JSON.stringify()` and then `fs.writeFile()` and `JSON.parse()` with `fs.readFile()` enclosed in `try/catch` blocks became annoying. + + + +Installation +------------ + + npm install --save jsonfile + + + +API +--- + +* [`readFile(filename, [options], callback)`](#readfilefilename-options-callback) +* [`readFileSync(filename, [options])`](#readfilesyncfilename-options) +* [`writeFile(filename, obj, [options], callback)`](#writefilefilename-obj-options-callback) +* [`writeFileSync(filename, obj, [options])`](#writefilesyncfilename-obj-options) + +---- + +### readFile(filename, [options], callback) + +`options` (`object`, default `undefined`): Pass in any [`fs.readFile`](https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback) options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). + - `throws` (`boolean`, default: `true`). If `JSON.parse` throws an error, pass this error to the callback. + If `false`, returns `null` for the object. + + +```js +const jsonfile = require('jsonfile') +const file = '/tmp/data.json' +jsonfile.readFile(file, function (err, obj) { + if (err) console.error(err) + console.dir(obj) +}) +``` + +You can also use this method with promises. The `readFile` method will return a promise if you do not pass a callback function. + +```js +const jsonfile = require('jsonfile') +const file = '/tmp/data.json' +jsonfile.readFile(file) + .then(obj => console.dir(obj)) + .catch(error => console.error(error)) +``` + +---- + +### readFileSync(filename, [options]) + +`options` (`object`, default `undefined`): Pass in any [`fs.readFileSync`](https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options) options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). +- `throws` (`boolean`, default: `true`). If an error is encountered reading or parsing the file, throw the error. If `false`, returns `null` for the object. + +```js +const jsonfile = require('jsonfile') +const file = '/tmp/data.json' + +console.dir(jsonfile.readFileSync(file)) +``` + +---- + +### writeFile(filename, obj, [options], callback) + +`options`: Pass in any [`fs.writeFile`](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback) options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces`, or override `EOL` string or set `finalEOL` flag as `false` to not save the file with `EOL` at the end. + + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, function (err) { + if (err) console.error(err) +}) +``` +Or use with promises as follows: + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj) + .then(res => { + console.log('Write complete') + }) + .catch(error => console.error(error)) +``` + + +**formatting with spaces:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { spaces: 2 }, function (err) { + if (err) console.error(err) +}) +``` + +**overriding EOL:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { spaces: 2, EOL: '\r\n' }, function (err) { + if (err) console.error(err) +}) +``` + + +**disabling the EOL at the end of file:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { spaces: 2, finalEOL: false }, function (err) { + if (err) console.log(err) +}) +``` + +**appending to an existing JSON file:** + +You can use `fs.writeFile` option `{ flag: 'a' }` to achieve this. + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/mayAlreadyExistedData.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { flag: 'a' }, function (err) { + if (err) console.error(err) +}) +``` + +---- + +### writeFileSync(filename, obj, [options]) + +`options`: Pass in any [`fs.writeFileSync`](https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options) options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces`, or override `EOL` string or set `finalEOL` flag as `false` to not save the file with `EOL` at the end. + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj) +``` + +**formatting with spaces:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { spaces: 2 }) +``` + +**overriding EOL:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { spaces: 2, EOL: '\r\n' }) +``` + +**disabling the EOL at the end of file:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { spaces: 2, finalEOL: false }) +``` + +**appending to an existing JSON file:** + +You can use `fs.writeFileSync` option `{ flag: 'a' }` to achieve this. + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/mayAlreadyExistedData.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { flag: 'a' }) +``` + +License +------- + +(MIT License) + +Copyright 2012-2016, JP Richardson diff --git a/node_modules/jsonfile/index.js b/node_modules/jsonfile/index.js new file mode 100644 index 0000000..0582868 --- /dev/null +++ b/node_modules/jsonfile/index.js @@ -0,0 +1,88 @@ +let _fs +try { + _fs = require('graceful-fs') +} catch (_) { + _fs = require('fs') +} +const universalify = require('universalify') +const { stringify, stripBom } = require('./utils') + +async function _readFile (file, options = {}) { + if (typeof options === 'string') { + options = { encoding: options } + } + + const fs = options.fs || _fs + + const shouldThrow = 'throws' in options ? options.throws : true + + let data = await universalify.fromCallback(fs.readFile)(file, options) + + data = stripBom(data) + + let obj + try { + obj = JSON.parse(data, options ? options.reviver : null) + } catch (err) { + if (shouldThrow) { + err.message = `${file}: ${err.message}` + throw err + } else { + return null + } + } + + return obj +} + +const readFile = universalify.fromPromise(_readFile) + +function readFileSync (file, options = {}) { + if (typeof options === 'string') { + options = { encoding: options } + } + + const fs = options.fs || _fs + + const shouldThrow = 'throws' in options ? options.throws : true + + try { + let content = fs.readFileSync(file, options) + content = stripBom(content) + return JSON.parse(content, options.reviver) + } catch (err) { + if (shouldThrow) { + err.message = `${file}: ${err.message}` + throw err + } else { + return null + } + } +} + +async function _writeFile (file, obj, options = {}) { + const fs = options.fs || _fs + + const str = stringify(obj, options) + + await universalify.fromCallback(fs.writeFile)(file, str, options) +} + +const writeFile = universalify.fromPromise(_writeFile) + +function writeFileSync (file, obj, options = {}) { + const fs = options.fs || _fs + + const str = stringify(obj, options) + // not sure if fs.writeFileSync returns anything, but just in case + return fs.writeFileSync(file, str, options) +} + +const jsonfile = { + readFile, + readFileSync, + writeFile, + writeFileSync +} + +module.exports = jsonfile diff --git a/node_modules/jsonfile/package.json b/node_modules/jsonfile/package.json new file mode 100644 index 0000000..4d01eb1 --- /dev/null +++ b/node_modules/jsonfile/package.json @@ -0,0 +1,40 @@ +{ + "name": "jsonfile", + "version": "6.1.0", + "description": "Easily read/write JSON files.", + "repository": { + "type": "git", + "url": "git@github.com:jprichardson/node-jsonfile.git" + }, + "keywords": [ + "read", + "write", + "file", + "json", + "fs", + "fs-extra" + ], + "author": "JP Richardson ", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + }, + "devDependencies": { + "mocha": "^8.2.0", + "rimraf": "^2.4.0", + "standard": "^16.0.1" + }, + "main": "index.js", + "files": [ + "index.js", + "utils.js" + ], + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "mocha" + } +} diff --git a/node_modules/jsonfile/utils.js b/node_modules/jsonfile/utils.js new file mode 100644 index 0000000..b5ff48e --- /dev/null +++ b/node_modules/jsonfile/utils.js @@ -0,0 +1,14 @@ +function stringify (obj, { EOL = '\n', finalEOL = true, replacer = null, spaces } = {}) { + const EOF = finalEOL ? EOL : '' + const str = JSON.stringify(obj, replacer, spaces) + + return str.replace(/\n/g, EOL) + EOF +} + +function stripBom (content) { + // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified + if (Buffer.isBuffer(content)) content = content.toString('utf8') + return content.replace(/^\uFEFF/, '') +} + +module.exports = { stringify, stripBom } diff --git a/node_modules/lilconfig/LICENSE b/node_modules/lilconfig/LICENSE new file mode 100644 index 0000000..fd866f4 --- /dev/null +++ b/node_modules/lilconfig/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Anton Kastritskiy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/lilconfig/dist/index.d.ts b/node_modules/lilconfig/dist/index.d.ts new file mode 100644 index 0000000..766c58c --- /dev/null +++ b/node_modules/lilconfig/dist/index.d.ts @@ -0,0 +1,38 @@ +export declare type LilconfigResult = null | { + filepath: string; + config: any; + isEmpty?: boolean; +}; +interface OptionsBase { + stopDir?: string; + searchPlaces?: string[]; + ignoreEmptySearchPlaces?: boolean; + packageProp?: string | string[]; +} +export declare type Transform = TransformSync | ((result: LilconfigResult) => Promise); +export declare type TransformSync = (result: LilconfigResult) => LilconfigResult; +declare type LoaderResult = any; +export declare type LoaderSync = (filepath: string, content: string) => LoaderResult; +export declare type Loader = LoaderSync | ((filepath: string, content: string) => Promise); +export declare type Loaders = Record; +export declare type LoadersSync = Record; +export interface Options extends OptionsBase { + loaders?: Loaders; + transform?: Transform; +} +export interface OptionsSync extends OptionsBase { + loaders?: LoadersSync; + transform?: TransformSync; +} +export declare const defaultLoaders: LoadersSync; +declare type AsyncSearcher = { + search(searchFrom?: string): Promise; + load(filepath: string): Promise; +}; +export declare function lilconfig(name: string, options?: Partial): AsyncSearcher; +declare type SyncSearcher = { + search(searchFrom?: string): LilconfigResult; + load(filepath: string): LilconfigResult; +}; +export declare function lilconfigSync(name: string, options?: OptionsSync): SyncSearcher; +export {}; diff --git a/node_modules/lilconfig/dist/index.js b/node_modules/lilconfig/dist/index.js new file mode 100644 index 0000000..13cca57 --- /dev/null +++ b/node_modules/lilconfig/dist/index.js @@ -0,0 +1,251 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.lilconfigSync = exports.lilconfig = exports.defaultLoaders = void 0; +const path = require("path"); +const fs = require("fs"); +const os = require("os"); +const fsReadFileAsync = fs.promises.readFile; +function getDefaultSearchPlaces(name) { + return [ + 'package.json', + `.${name}rc.json`, + `.${name}rc.js`, + `.${name}rc.cjs`, + `.config/${name}rc`, + `.config/${name}rc.json`, + `.config/${name}rc.js`, + `.config/${name}rc.cjs`, + `${name}.config.js`, + `${name}.config.cjs`, + ]; +} +function getSearchPaths(startDir, stopDir) { + return startDir + .split(path.sep) + .reduceRight((acc, _, ind, arr) => { + const currentPath = arr.slice(0, ind + 1).join(path.sep); + if (!acc.passedStopDir) + acc.searchPlaces.push(currentPath || path.sep); + if (currentPath === stopDir) + acc.passedStopDir = true; + return acc; + }, { searchPlaces: [], passedStopDir: false }).searchPlaces; +} +exports.defaultLoaders = Object.freeze({ + '.js': require, + '.json': require, + '.cjs': require, + noExt(_, content) { + return JSON.parse(content); + }, +}); +function getExtDesc(ext) { + return ext === 'noExt' ? 'files without extensions' : `extension "${ext}"`; +} +function getOptions(name, options = {}) { + const conf = { + stopDir: os.homedir(), + searchPlaces: getDefaultSearchPlaces(name), + ignoreEmptySearchPlaces: true, + transform: (x) => x, + packageProp: [name], + ...options, + loaders: { ...exports.defaultLoaders, ...options.loaders }, + }; + conf.searchPlaces.forEach(place => { + const key = path.extname(place) || 'noExt'; + const loader = conf.loaders[key]; + if (!loader) { + throw new Error(`No loader specified for ${getExtDesc(key)}, so searchPlaces item "${place}" is invalid`); + } + if (typeof loader !== 'function') { + throw new Error(`loader for ${getExtDesc(key)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`); + } + }); + return conf; +} +function getPackageProp(props, obj) { + if (typeof props === 'string' && props in obj) + return obj[props]; + return ((Array.isArray(props) ? props : props.split('.')).reduce((acc, prop) => (acc === undefined ? acc : acc[prop]), obj) || null); +} +function getSearchItems(searchPlaces, searchPaths) { + return searchPaths.reduce((acc, searchPath) => { + searchPlaces.forEach(sp => acc.push({ + searchPlace: sp, + filepath: path.join(searchPath, sp), + loaderKey: path.extname(sp) || 'noExt', + })); + return acc; + }, []); +} +function validateFilePath(filepath) { + if (!filepath) + throw new Error('load must pass a non-empty string'); +} +function validateLoader(loader, ext) { + if (!loader) + throw new Error(`No loader specified for extension "${ext}"`); + if (typeof loader !== 'function') + throw new Error('loader is not a function'); +} +function lilconfig(name, options) { + const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, } = getOptions(name, options); + return { + async search(searchFrom = process.cwd()) { + const searchPaths = getSearchPaths(searchFrom, stopDir); + const result = { + config: null, + filepath: '', + }; + const searchItems = getSearchItems(searchPlaces, searchPaths); + for (const { searchPlace, filepath, loaderKey } of searchItems) { + try { + await fs.promises.access(filepath); + } + catch (_a) { + continue; + } + const content = String(await fsReadFileAsync(filepath)); + const loader = loaders[loaderKey]; + if (searchPlace === 'package.json') { + const pkg = await loader(filepath, content); + const maybeConfig = getPackageProp(packageProp, pkg); + if (maybeConfig != null) { + result.config = maybeConfig; + result.filepath = filepath; + break; + } + continue; + } + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + continue; + if (isEmpty) { + result.isEmpty = true; + result.config = undefined; + } + else { + validateLoader(loader, loaderKey); + result.config = await loader(filepath, content); + } + result.filepath = filepath; + break; + } + if (result.filepath === '' && result.config === null) + return transform(null); + return transform(result); + }, + async load(filepath) { + validateFilePath(filepath); + const absPath = path.resolve(process.cwd(), filepath); + const { base, ext } = path.parse(absPath); + const loaderKey = ext || 'noExt'; + const loader = loaders[loaderKey]; + validateLoader(loader, loaderKey); + const content = String(await fsReadFileAsync(absPath)); + if (base === 'package.json') { + const pkg = await loader(absPath, content); + return transform({ + config: getPackageProp(packageProp, pkg), + filepath: absPath, + }); + } + const result = { + config: null, + filepath: absPath, + }; + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + return transform({ + config: undefined, + filepath: absPath, + isEmpty: true, + }); + result.config = isEmpty + ? undefined + : await loader(absPath, content); + return transform(isEmpty ? { ...result, isEmpty, config: undefined } : result); + }, + }; +} +exports.lilconfig = lilconfig; +function lilconfigSync(name, options) { + const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, } = getOptions(name, options); + return { + search(searchFrom = process.cwd()) { + const searchPaths = getSearchPaths(searchFrom, stopDir); + const result = { + config: null, + filepath: '', + }; + const searchItems = getSearchItems(searchPlaces, searchPaths); + for (const { searchPlace, filepath, loaderKey } of searchItems) { + try { + fs.accessSync(filepath); + } + catch (_a) { + continue; + } + const loader = loaders[loaderKey]; + const content = String(fs.readFileSync(filepath)); + if (searchPlace === 'package.json') { + const pkg = loader(filepath, content); + const maybeConfig = getPackageProp(packageProp, pkg); + if (maybeConfig != null) { + result.config = maybeConfig; + result.filepath = filepath; + break; + } + continue; + } + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + continue; + if (isEmpty) { + result.isEmpty = true; + result.config = undefined; + } + else { + validateLoader(loader, loaderKey); + result.config = loader(filepath, content); + } + result.filepath = filepath; + break; + } + if (result.filepath === '' && result.config === null) + return transform(null); + return transform(result); + }, + load(filepath) { + validateFilePath(filepath); + const absPath = path.resolve(process.cwd(), filepath); + const { base, ext } = path.parse(absPath); + const loaderKey = ext || 'noExt'; + const loader = loaders[loaderKey]; + validateLoader(loader, loaderKey); + const content = String(fs.readFileSync(absPath)); + if (base === 'package.json') { + const pkg = loader(absPath, content); + return transform({ + config: getPackageProp(packageProp, pkg), + filepath: absPath, + }); + } + const result = { + config: null, + filepath: absPath, + }; + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + return transform({ + filepath: absPath, + config: undefined, + isEmpty: true, + }); + result.config = isEmpty ? undefined : loader(absPath, content); + return transform(isEmpty ? { ...result, isEmpty, config: undefined } : result); + }, + }; +} +exports.lilconfigSync = lilconfigSync; diff --git a/node_modules/lilconfig/package.json b/node_modules/lilconfig/package.json new file mode 100644 index 0000000..8e06d1f --- /dev/null +++ b/node_modules/lilconfig/package.json @@ -0,0 +1,48 @@ +{ + "name": "lilconfig", + "version": "2.1.0", + "description": "A zero-dependency alternative to cosmiconfig", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "prebuild": "npm run clean", + "build": "tsc --declaration", + "postbuild": "du -h ./dist/*", + "clean": "rm -rf ./dist", + "test": "jest --coverage", + "lint": "eslint ./src/*.ts" + }, + "keywords": [ + "cosmiconfig", + "config", + "configuration", + "search" + ], + "files": [ + "dist/*" + ], + "repository": { + "type": "git", + "url": "https://github.com/antonk52/lilconfig" + }, + "bugs": "https://github.com/antonk52/lilconfig/issues", + "author": "antonk52", + "license": "MIT", + "devDependencies": { + "@types/jest": "^27.0.2", + "@types/node": "^14.18.36", + "@typescript-eslint/eslint-plugin": "^5.54.0", + "@typescript-eslint/parser": "^5.54.0", + "cosmiconfig": "^7.1.0", + "eslint": "^8.35.0", + "eslint-config-prettier": "^8.6.0", + "eslint-plugin-prettier": "^4.2.1", + "jest": "^27.3.1", + "prettier": "^2.8.4", + "ts-jest": "27.0.7", + "typescript": "4.4.4" + }, + "engines": { + "node": ">=10" + } +} diff --git a/node_modules/lilconfig/readme.md b/node_modules/lilconfig/readme.md new file mode 100644 index 0000000..7b6610d --- /dev/null +++ b/node_modules/lilconfig/readme.md @@ -0,0 +1,118 @@ +# Lilconfig ⚙️ +[![npm version](https://badge.fury.io/js/lilconfig.svg)](https://badge.fury.io/js/lilconfig) +[![install size](https://packagephobia.now.sh/badge?p=lilconfig)](https://packagephobia.now.sh/result?p=lilconfig) +[![Coverage Status](https://coveralls.io/repos/github/antonk52/lilconfig/badge.svg)](https://coveralls.io/github/antonk52/lilconfig) + +A zero-dependency alternative to [cosmiconfig](https://www.npmjs.com/package/cosmiconfig) with the same API. + +## Installation + +```sh +npm install lilconfig +``` + +## Usage + +```js +import {lilconfig, lilconfigSync} from 'lilconfig'; + +// all keys are optional +const options = { + stopDir: '/Users/you/some/dir', + searchPlaces: ['package.json', 'myapp.conf.js'], + ignoreEmptySearchPlaces: false +} + +lilconfig( + 'myapp', + options // optional +).search() // Promise + +lilconfigSync( + 'myapp', + options // optional +).load(pathToConfig) // LilconfigResult + +/** + * LilconfigResult + * { + * config: any; // your config + * filepath: string; + * } + */ +``` + +## Difference to `cosmiconfig` +Lilconfig does not intend to be 100% compatible with `cosmiconfig` but tries to mimic it where possible. The key differences are: +- **no** support for yaml files out of the box(`lilconfig` attempts to parse files with no extension as JSON instead of YAML). You can still add the support for YAML files by providing a loader, see an [example](#yaml-loader) below. +- **no** cache + +### Options difference between the two. + +|cosmiconfig option | lilconfig | +|------------------------|-----------| +|cache | ❌ | +|loaders | ✅ | +|ignoreEmptySearchPlaces | ✅ | +|packageProp | ✅ | +|searchPlaces | ✅ | +|stopDir | ✅ | +|transform | ✅ | + +## Loaders examples + +### Yaml loader + +If you need the YAML support you can provide your own loader + +```js +import {lilconfig} from 'lilconfig'; +import yaml from 'yaml'; + +function loadYaml(filepath, content) { + return yaml.parse(content); +} + +const options = { + loaders: { + '.yaml': loadYaml, + '.yml': loadYaml, + // loader for files with no extension + noExt: loadYaml + } +}; + +lilconfig('myapp', options) + .search() + .then(result => { + result // {config, filepath} + }); +``` + +### ESM loader + +Lilconfig v2 does not support ESM modules out of the box. However, you can support it with a custom a loader. Note that this will only work with the async `lilconfig` function and won't work with the sync `lilconfigSync`. + +```js +import {lilconfig} from 'lilconfig'; + +const loadEsm = filepath => import(filepath); + +lilconfig('myapp', { + loaders: { + '.js': loadEsm, + '.mjs': loadEsm, + } +}) + .search() + .then(result => { + result // {config, filepath} + + result.config.default // if config uses `export default` + }); +``` + +## Version correlation + +- lilconig v1 → cosmiconfig v6 +- lilconig v2 → cosmiconfig v7 diff --git a/node_modules/merge2/LICENSE b/node_modules/merge2/LICENSE new file mode 100644 index 0000000..31dd9c7 --- /dev/null +++ b/node_modules/merge2/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2020 Teambition + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/merge2/README.md b/node_modules/merge2/README.md new file mode 100644 index 0000000..27f8eb9 --- /dev/null +++ b/node_modules/merge2/README.md @@ -0,0 +1,144 @@ +# merge2 + +Merge multiple streams into one stream in sequence or parallel. + +[![NPM version][npm-image]][npm-url] +[![Build Status][travis-image]][travis-url] +[![Downloads][downloads-image]][downloads-url] + +## Install + +Install with [npm](https://npmjs.org/package/merge2) + +```sh +npm install merge2 +``` + +## Usage + +```js +const gulp = require('gulp') +const merge2 = require('merge2') +const concat = require('gulp-concat') +const minifyHtml = require('gulp-minify-html') +const ngtemplate = require('gulp-ngtemplate') + +gulp.task('app-js', function () { + return merge2( + gulp.src('static/src/tpl/*.html') + .pipe(minifyHtml({empty: true})) + .pipe(ngtemplate({ + module: 'genTemplates', + standalone: true + }) + ), gulp.src([ + 'static/src/js/app.js', + 'static/src/js/locale_zh-cn.js', + 'static/src/js/router.js', + 'static/src/js/tools.js', + 'static/src/js/services.js', + 'static/src/js/filters.js', + 'static/src/js/directives.js', + 'static/src/js/controllers.js' + ]) + ) + .pipe(concat('app.js')) + .pipe(gulp.dest('static/dist/js/')) +}) +``` + +```js +const stream = merge2([stream1, stream2], stream3, {end: false}) +//... +stream.add(stream4, stream5) +//.. +stream.end() +``` + +```js +// equal to merge2([stream1, stream2], stream3) +const stream = merge2() +stream.add([stream1, stream2]) +stream.add(stream3) +``` + +```js +// merge order: +// 1. merge `stream1`; +// 2. merge `stream2` and `stream3` in parallel after `stream1` merged; +// 3. merge 'stream4' after `stream2` and `stream3` merged; +const stream = merge2(stream1, [stream2, stream3], stream4) + +// merge order: +// 1. merge `stream5` and `stream6` in parallel after `stream4` merged; +// 2. merge 'stream7' after `stream5` and `stream6` merged; +stream.add([stream5, stream6], stream7) +``` + +```js +// nest merge +// equal to merge2(stream1, stream2, stream6, stream3, [stream4, stream5]); +const streamA = merge2(stream1, stream2) +const streamB = merge2(stream3, [stream4, stream5]) +const stream = merge2(streamA, streamB) +streamA.add(stream6) +``` + +## API + +```js +const merge2 = require('merge2') +``` + +### merge2() + +### merge2(options) + +### merge2(stream1, stream2, ..., streamN) + +### merge2(stream1, stream2, ..., streamN, options) + +### merge2(stream1, [stream2, stream3, ...], streamN, options) + +return a duplex stream (mergedStream). streams in array will be merged in parallel. + +### mergedStream.add(stream) + +### mergedStream.add(stream1, [stream2, stream3, ...], ...) + +return the mergedStream. + +### mergedStream.on('queueDrain', function() {}) + +It will emit 'queueDrain' when all streams merged. If you set `end === false` in options, this event give you a notice that should add more streams to merge or end the mergedStream. + +#### stream + +*option* +Type: `Readable` or `Duplex` or `Transform` stream. + +#### options + +*option* +Type: `Object`. + +* **end** - `Boolean` - if `end === false` then mergedStream will not be auto ended, you should end by yourself. **Default:** `undefined` + +* **pipeError** - `Boolean` - if `pipeError === true` then mergedStream will emit `error` event from source streams. **Default:** `undefined` + +* **objectMode** - `Boolean` . **Default:** `true` + +`objectMode` and other options(`highWaterMark`, `defaultEncoding` ...) is same as Node.js `Stream`. + +## License + +MIT © [Teambition](https://www.teambition.com) + +[npm-url]: https://npmjs.org/package/merge2 +[npm-image]: http://img.shields.io/npm/v/merge2.svg + +[travis-url]: https://travis-ci.org/teambition/merge2 +[travis-image]: http://img.shields.io/travis/teambition/merge2.svg + +[downloads-url]: https://npmjs.org/package/merge2 +[downloads-image]: http://img.shields.io/npm/dm/merge2.svg?style=flat-square diff --git a/node_modules/merge2/index.js b/node_modules/merge2/index.js new file mode 100644 index 0000000..78a61ed --- /dev/null +++ b/node_modules/merge2/index.js @@ -0,0 +1,144 @@ +'use strict' +/* + * merge2 + * https://github.com/teambition/merge2 + * + * Copyright (c) 2014-2020 Teambition + * Licensed under the MIT license. + */ +const Stream = require('stream') +const PassThrough = Stream.PassThrough +const slice = Array.prototype.slice + +module.exports = merge2 + +function merge2 () { + const streamsQueue = [] + const args = slice.call(arguments) + let merging = false + let options = args[args.length - 1] + + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop() + } else { + options = {} + } + + const doEnd = options.end !== false + const doPipeError = options.pipeError === true + if (options.objectMode == null) { + options.objectMode = true + } + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024 + } + const mergedStream = PassThrough(options) + + function addStream () { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)) + } + mergeStream() + return this + } + + function mergeStream () { + if (merging) { + return + } + merging = true + + let streams = streamsQueue.shift() + if (!streams) { + process.nextTick(endStream) + return + } + if (!Array.isArray(streams)) { + streams = [streams] + } + + let pipesCount = streams.length + 1 + + function next () { + if (--pipesCount > 0) { + return + } + merging = false + mergeStream() + } + + function pipe (stream) { + function onend () { + stream.removeListener('merge2UnpipeEnd', onend) + stream.removeListener('end', onend) + if (doPipeError) { + stream.removeListener('error', onerror) + } + next() + } + function onerror (err) { + mergedStream.emit('error', err) + } + // skip ended stream + if (stream._readableState.endEmitted) { + return next() + } + + stream.on('merge2UnpipeEnd', onend) + stream.on('end', onend) + + if (doPipeError) { + stream.on('error', onerror) + } + + stream.pipe(mergedStream, { end: false }) + // compatible for old stream + stream.resume() + } + + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]) + } + + next() + } + + function endStream () { + merging = false + // emit 'queueDrain' when all streams merged. + mergedStream.emit('queueDrain') + if (doEnd) { + mergedStream.end() + } + } + + mergedStream.setMaxListeners(0) + mergedStream.add = addStream + mergedStream.on('unpipe', function (stream) { + stream.emit('merge2UnpipeEnd') + }) + + if (args.length) { + addStream.apply(null, args) + } + return mergedStream +} + +// check and pause streams for pipe. +function pauseStreams (streams, options) { + if (!Array.isArray(streams)) { + // Backwards-compat with old-style streams + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)) + } + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error('Only readable stream can be merged.') + } + streams.pause() + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options) + } + } + return streams +} diff --git a/node_modules/merge2/package.json b/node_modules/merge2/package.json new file mode 100644 index 0000000..7777307 --- /dev/null +++ b/node_modules/merge2/package.json @@ -0,0 +1,43 @@ +{ + "name": "merge2", + "description": "Merge multiple streams into one stream in sequence or parallel.", + "authors": [ + "Yan Qing " + ], + "license": "MIT", + "version": "1.4.1", + "main": "./index.js", + "repository": { + "type": "git", + "url": "git@github.com:teambition/merge2.git" + }, + "homepage": "https://github.com/teambition/merge2", + "keywords": [ + "merge2", + "multiple", + "sequence", + "parallel", + "merge", + "stream", + "merge stream", + "sync" + ], + "engines": { + "node": ">= 8" + }, + "dependencies": {}, + "devDependencies": { + "standard": "^14.3.4", + "through2": "^3.0.1", + "thunks": "^4.9.6", + "tman": "^1.10.0", + "to-through": "^2.0.0" + }, + "scripts": { + "test": "standard && tman" + }, + "files": [ + "README.md", + "index.js" + ] +} diff --git a/node_modules/micromatch/LICENSE b/node_modules/micromatch/LICENSE new file mode 100755 index 0000000..9af4a67 --- /dev/null +++ b/node_modules/micromatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/micromatch/README.md b/node_modules/micromatch/README.md new file mode 100644 index 0000000..fd56336 --- /dev/null +++ b/node_modules/micromatch/README.md @@ -0,0 +1,1011 @@ +# micromatch [![NPM version](https://img.shields.io/npm/v/micromatch.svg?style=flat)](https://www.npmjs.com/package/micromatch) [![NPM monthly downloads](https://img.shields.io/npm/dm/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![NPM total downloads](https://img.shields.io/npm/dt/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![Tests](https://github.com/micromatch/micromatch/actions/workflows/test.yml/badge.svg)](https://github.com/micromatch/micromatch/actions/workflows/test.yml) + +> Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Table of Contents + +
+Details + +- [Install](#install) +- [Quickstart](#quickstart) +- [Why use micromatch?](#why-use-micromatch) + * [Matching features](#matching-features) +- [Switching to micromatch](#switching-to-micromatch) + * [From minimatch](#from-minimatch) + * [From multimatch](#from-multimatch) +- [API](#api) +- [Options](#options) +- [Options Examples](#options-examples) + * [options.basename](#optionsbasename) + * [options.bash](#optionsbash) + * [options.expandRange](#optionsexpandrange) + * [options.format](#optionsformat) + * [options.ignore](#optionsignore) + * [options.matchBase](#optionsmatchbase) + * [options.noextglob](#optionsnoextglob) + * [options.nonegate](#optionsnonegate) + * [options.noglobstar](#optionsnoglobstar) + * [options.nonull](#optionsnonull) + * [options.nullglob](#optionsnullglob) + * [options.onIgnore](#optionsonignore) + * [options.onMatch](#optionsonmatch) + * [options.onResult](#optionsonresult) + * [options.posixSlashes](#optionsposixslashes) + * [options.unescape](#optionsunescape) +- [Extended globbing](#extended-globbing) + * [Extglobs](#extglobs) + * [Braces](#braces) + * [Regex character classes](#regex-character-classes) + * [Regex groups](#regex-groups) + * [POSIX bracket expressions](#posix-bracket-expressions) +- [Notes](#notes) + * [Bash 4.3 parity](#bash-43-parity) + * [Backslashes](#backslashes) +- [Benchmarks](#benchmarks) + * [Running benchmarks](#running-benchmarks) + * [Latest results](#latest-results) +- [Contributing](#contributing) +- [About](#about) + +
+ +## Install + +Install with [npm](https://www.npmjs.com/) (requires [Node.js](https://nodejs.org/en/) >=8.6): + +```sh +$ npm install --save micromatch +``` + +## Quickstart + +```js +const micromatch = require('micromatch'); +// micromatch(list, patterns[, options]); +``` + +The [main export](#micromatch) takes a list of strings and one or more glob patterns: + +```js +console.log(micromatch(['foo', 'bar', 'baz', 'qux'], ['f*', 'b*'])) //=> ['foo', 'bar', 'baz'] +console.log(micromatch(['foo', 'bar', 'baz', 'qux'], ['*', '!b*'])) //=> ['foo', 'qux'] +``` + +Use [.isMatch()](#ismatch) to for boolean matching: + +```js +console.log(micromatch.isMatch('foo', 'f*')) //=> true +console.log(micromatch.isMatch('foo', ['b*', 'f*'])) //=> true +``` + +[Switching](#switching-to-micromatch) from minimatch and multimatch is easy! + +
+ +## Why use micromatch? + +> micromatch is a [replacement](#switching-to-micromatch) for minimatch and multimatch + +* Supports all of the same matching features as [minimatch](https://github.com/isaacs/minimatch) and [multimatch](https://github.com/sindresorhus/multimatch) +* More complete support for the Bash 4.3 specification than minimatch and multimatch. Micromatch passes _all of the spec tests_ from bash, including some that bash still fails. +* **Fast & Performant** - Loads in about 5ms and performs [fast matches](#benchmarks). +* **Glob matching** - Using wildcards (`*` and `?`), globstars (`**`) for nested directories +* **[Advanced globbing](#extended-globbing)** - Supports [extglobs](#extglobs), [braces](#braces-1), and [POSIX brackets](#posix-bracket-expressions), and support for escaping special characters with `\` or quotes. +* **Accurate** - Covers more scenarios [than minimatch](https://github.com/yarnpkg/yarn/pull/3339) +* **Well tested** - More than 5,000 [test assertions](./test) +* **Windows support** - More reliable windows support than minimatch and multimatch. +* **[Safe](https://github.com/micromatch/braces#braces-is-safe)** - Micromatch is not subject to DoS with brace patterns like minimatch and multimatch. + +### Matching features + +* Support for multiple glob patterns (no need for wrappers like multimatch) +* Wildcards (`**`, `*.js`) +* Negation (`'!a/*.js'`, `'*!(b).js'`) +* [extglobs](#extglobs) (`+(x|y)`, `!(a|b)`) +* [POSIX character classes](#posix-bracket-expressions) (`[[:alpha:][:digit:]]`) +* [brace expansion](https://github.com/micromatch/braces) (`foo/{1..5}.md`, `bar/{a,b,c}.js`) +* regex character classes (`foo-[1-5].js`) +* regex logical "or" (`foo/(abc|xyz).js`) + +You can mix and match these features to create whatever patterns you need! + +## Switching to micromatch + +_(There is one notable difference between micromatch and minimatch in regards to how backslashes are handled. See [the notes about backslashes](#backslashes) for more information.)_ + +### From minimatch + +Use [micromatch.isMatch()](#ismatch) instead of `minimatch()`: + +```js +console.log(micromatch.isMatch('foo', 'b*')); //=> false +``` + +Use [micromatch.match()](#match) instead of `minimatch.match()`: + +```js +console.log(micromatch.match(['foo', 'bar'], 'b*')); //=> 'bar' +``` + +### From multimatch + +Same signature: + +```js +console.log(micromatch(['foo', 'bar', 'baz'], ['f*', '*z'])); //=> ['foo', 'baz'] +``` + +## API + +**Params** + +* `list` **{String|Array}**: List of strings to match. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) +* `returns` **{Array}**: Returns an array of matches + +**Example** + +```js +const mm = require('micromatch'); +// mm(list, patterns[, options]); + +console.log(mm(['a.js', 'a.txt'], ['*.js'])); +//=> [ 'a.js' ] +``` + +### [.matcher](index.js#L104) + +Returns a matcher function from the given glob `pattern` and `options`. The returned function takes a string to match as its only argument and returns true if the string is a match. + +**Params** + +* `pattern` **{String}**: Glob pattern +* `options` **{Object}** +* `returns` **{Function}**: Returns a matcher function. + +**Example** + +```js +const mm = require('micromatch'); +// mm.matcher(pattern[, options]); + +const isMatch = mm.matcher('*.!(*a)'); +console.log(isMatch('a.a')); //=> false +console.log(isMatch('a.b')); //=> true +``` + +### [.isMatch](index.js#L123) + +Returns true if **any** of the given glob `patterns` match the specified `string`. + +**Params** + +* `str` **{String}**: The string to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `[options]` **{Object}**: See available [options](#options). +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const mm = require('micromatch'); +// mm.isMatch(string, patterns[, options]); + +console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true +console.log(mm.isMatch('a.a', 'b.*')); //=> false +``` + +### [.not](index.js#L148) + +Returns a list of strings that _**do not match any**_ of the given `patterns`. + +**Params** + +* `list` **{Array}**: Array of strings to match. +* `patterns` **{String|Array}**: One or more glob pattern to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Array}**: Returns an array of strings that **do not match** the given patterns. + +**Example** + +```js +const mm = require('micromatch'); +// mm.not(list, patterns[, options]); + +console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); +//=> ['b.b', 'c.c'] +``` + +### [.contains](index.js#L188) + +Returns true if the given `string` contains the given pattern. Similar to [.isMatch](#isMatch) but the pattern can match any part of the string. + +**Params** + +* `str` **{String}**: The string to match. +* `patterns` **{String|Array}**: Glob pattern to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any of the patterns matches any part of `str`. + +**Example** + +```js +var mm = require('micromatch'); +// mm.contains(string, pattern[, options]); + +console.log(mm.contains('aa/bb/cc', '*b')); +//=> true +console.log(mm.contains('aa/bb/cc', '*d')); +//=> false +``` + +### [.matchKeys](index.js#L230) + +Filter the keys of the given object with the given `glob` pattern and `options`. Does not attempt to match nested keys. If you need this feature, use [glob-object](https://github.com/jonschlinkert/glob-object) instead. + +**Params** + +* `object` **{Object}**: The object with keys to filter. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Object}**: Returns an object with only keys that match the given patterns. + +**Example** + +```js +const mm = require('micromatch'); +// mm.matchKeys(object, patterns[, options]); + +const obj = { aa: 'a', ab: 'b', ac: 'c' }; +console.log(mm.matchKeys(obj, '*b')); +//=> { ab: 'b' } +``` + +### [.some](index.js#L259) + +Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + +**Params** + +* `list` **{String|Array}**: The string or array of strings to test. Returns as soon as the first match is found. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any `patterns` matches any of the strings in `list` + +**Example** + +```js +const mm = require('micromatch'); +// mm.some(list, patterns[, options]); + +console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); +// true +console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); +// false +``` + +### [.every](index.js#L295) + +Returns true if every string in the given `list` matches any of the given glob `patterns`. + +**Params** + +* `list` **{String|Array}**: The string or array of strings to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if all `patterns` matches all of the strings in `list` + +**Example** + +```js +const mm = require('micromatch'); +// mm.every(list, patterns[, options]); + +console.log(mm.every('foo.js', ['foo.js'])); +// true +console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); +// true +console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); +// false +console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); +// false +``` + +### [.all](index.js#L334) + +Returns true if **all** of the given `patterns` match the specified string. + +**Params** + +* `str` **{String|Array}**: The string to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const mm = require('micromatch'); +// mm.all(string, patterns[, options]); + +console.log(mm.all('foo.js', ['foo.js'])); +// true + +console.log(mm.all('foo.js', ['*.js', '!foo.js'])); +// false + +console.log(mm.all('foo.js', ['*.js', 'foo.js'])); +// true + +console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); +// true +``` + +### [.capture](index.js#L361) + +Returns an array of matches captured by `pattern` in `string, or`null` if the pattern did not match. + +**Params** + +* `glob` **{String}**: Glob pattern to use for matching. +* `input` **{String}**: String to match +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Array|null}**: Returns an array of captures if the input matches the glob pattern, otherwise `null`. + +**Example** + +```js +const mm = require('micromatch'); +// mm.capture(pattern, string[, options]); + +console.log(mm.capture('test/*.js', 'test/foo.js')); +//=> ['foo'] +console.log(mm.capture('test/*.js', 'foo/bar.css')); +//=> null +``` + +### [.makeRe](index.js#L387) + +Create a regular expression from the given glob `pattern`. + +**Params** + +* `pattern` **{String}**: A glob pattern to convert to regex. +* `options` **{Object}** +* `returns` **{RegExp}**: Returns a regex created from the given pattern. + +**Example** + +```js +const mm = require('micromatch'); +// mm.makeRe(pattern[, options]); + +console.log(mm.makeRe('*.js')); +//=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ +``` + +### [.scan](index.js#L403) + +Scan a glob pattern to separate the pattern into segments. Used by the [split](#split) method. + +**Params** + +* `pattern` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with + +**Example** + +```js +const mm = require('micromatch'); +const state = mm.scan(pattern[, options]); +``` + +### [.parse](index.js#L419) + +Parse a glob pattern to create the source string for a regular expression. + +**Params** + +* `glob` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with useful properties and output to be used as regex source string. + +**Example** + +```js +const mm = require('micromatch'); +const state = mm.parse(pattern[, options]); +``` + +### [.braces](index.js#L446) + +Process the given brace `pattern`. + +**Params** + +* `pattern` **{String}**: String with brace pattern to process. +* `options` **{Object}**: Any [options](#options) to change how expansion is performed. See the [braces](https://github.com/micromatch/braces) library for all available options. +* `returns` **{Array}** + +**Example** + +```js +const { braces } = require('micromatch'); +console.log(braces('foo/{a,b,c}/bar')); +//=> [ 'foo/(a|b|c)/bar' ] + +console.log(braces('foo/{a,b,c}/bar', { expand: true })); +//=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] +``` + +## Options + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `basename` | `boolean` | `false` | If set, then patterns without slashes will be matched against the basename of the path if it contains slashes. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | +| `bash` | `boolean` | `false` | Follow bash matching rules more strictly - disallows backslashes as escape characters, and treats single stars as globstars (`**`). | +| `capture` | `boolean` | `undefined` | Return regex matches in supporting methods. | +| `contains` | `boolean` | `undefined` | Allows glob to match any part of the given string(s). | +| `cwd` | `string` | `process.cwd()` | Current working directory. Used by `picomatch.split()` | +| `debug` | `boolean` | `undefined` | Debug regular expressions when an error is thrown. | +| `dot` | `boolean` | `false` | Match dotfiles. Otherwise dotfiles are ignored unless a `.` is explicitly defined in the pattern. | +| `expandRange` | `function` | `undefined` | Custom function for expanding ranges in brace patterns, such as `{a..z}`. The function receives the range values as two arguments, and it must return a string to be used in the generated regex. It's recommended that returned strings be wrapped in parentheses. This option is overridden by the `expandBrace` option. | +| `failglob` | `boolean` | `false` | Similar to the `failglob` behavior in Bash, throws an error when no matches are found. Based on the bash option of the same name. | +| `fastpaths` | `boolean` | `true` | To speed up processing, full parsing is skipped for a handful common glob patterns. Disable this behavior by setting this option to `false`. | +| `flags` | `boolean` | `undefined` | Regex flags to use in the generated regex. If defined, the `nocase` option will be overridden. | +| [format](#optionsformat) | `function` | `undefined` | Custom function for formatting the returned string. This is useful for removing leading slashes, converting Windows paths to Posix paths, etc. | +| `ignore` | `array\|string` | `undefined` | One or more glob patterns for excluding strings that should not be matched from the result. | +| `keepQuotes` | `boolean` | `false` | Retain quotes in the generated regex, since quotes may also be used as an alternative to backslashes. | +| `literalBrackets` | `boolean` | `undefined` | When `true`, brackets in the glob pattern will be escaped so that only literal brackets will be matched. | +| `lookbehinds` | `boolean` | `true` | Support regex positive and negative lookbehinds. Note that you must be using Node 8.1.10 or higher to enable regex lookbehinds. | +| `matchBase` | `boolean` | `false` | Alias for `basename` | +| `maxLength` | `boolean` | `65536` | Limit the max length of the input string. An error is thrown if the input string is longer than this value. | +| `nobrace` | `boolean` | `false` | Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as literal characters. | +| `nobracket` | `boolean` | `undefined` | Disable matching with regex brackets. | +| `nocase` | `boolean` | `false` | Perform case-insensitive matching. Equivalent to the regex `i` flag. Note that this option is ignored when the `flags` option is defined. | +| `nodupes` | `boolean` | `true` | Deprecated, use `nounique` instead. This option will be removed in a future major release. By default duplicates are removed. Disable uniquification by setting this option to false. | +| `noext` | `boolean` | `false` | Alias for `noextglob` | +| `noextglob` | `boolean` | `false` | Disable support for matching with [extglobs](#extglobs) (like `+(a\|b)`) | +| `noglobstar` | `boolean` | `false` | Disable support for matching nested directories with globstars (`**`) | +| `nonegate` | `boolean` | `false` | Disable support for negating with leading `!` | +| `noquantifiers` | `boolean` | `false` | Disable support for regex quantifiers (like `a{1,2}`) and treat them as brace patterns to be expanded. | +| [onIgnore](#optionsonIgnore) | `function` | `undefined` | Function to be called on ignored items. | +| [onMatch](#optionsonMatch) | `function` | `undefined` | Function to be called on matched items. | +| [onResult](#optionsonResult) | `function` | `undefined` | Function to be called on all items, regardless of whether or not they are matched or ignored. | +| `posix` | `boolean` | `false` | Support [POSIX character classes](#posix-bracket-expressions) ("posix brackets"). | +| `posixSlashes` | `boolean` | `undefined` | Convert all slashes in file paths to forward slashes. This does not convert slashes in the glob pattern itself | +| `prepend` | `string` | `undefined` | String to prepend to the generated regex used for matching. | +| `regex` | `boolean` | `false` | Use regular expression rules for `+` (instead of matching literal `+`), and for stars that follow closing parentheses or brackets (as in `)*` and `]*`). | +| `strictBrackets` | `boolean` | `undefined` | Throw an error if brackets, braces, or parens are imbalanced. | +| `strictSlashes` | `boolean` | `undefined` | When true, picomatch won't match trailing slashes with single stars. | +| `unescape` | `boolean` | `undefined` | Remove preceding backslashes from escaped glob characters before creating the regular expression to perform matches. | +| `unixify` | `boolean` | `undefined` | Alias for `posixSlashes`, for backwards compatitibility. | + +## Options Examples + +### options.basename + +Allow glob patterns without slashes to match a file path based on its basename. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `matchBase`. + +**Type**: `Boolean` + +**Default**: `false` + +**Example** + +```js +micromatch(['a/b.js', 'a/c.md'], '*.js'); +//=> [] + +micromatch(['a/b.js', 'a/c.md'], '*.js', { basename: true }); +//=> ['a/b.js'] +``` + +### options.bash + +Enabled by default, this option enforces bash-like behavior with stars immediately following a bracket expression. Bash bracket expressions are similar to regex character classes, but unlike regex, a star following a bracket expression **does not repeat the bracketed characters**. Instead, the star is treated the same as any other star. + +**Type**: `Boolean` + +**Default**: `true` + +**Example** + +```js +const files = ['abc', 'ajz']; +console.log(micromatch(files, '[a-c]*')); +//=> ['abc', 'ajz'] + +console.log(micromatch(files, '[a-c]*', { bash: false })); +``` + +### options.expandRange + +**Type**: `function` + +**Default**: `undefined` + +Custom function for expanding ranges in brace patterns. The [fill-range](https://github.com/jonschlinkert/fill-range) library is ideal for this purpose, or you can use custom code to do whatever you need. + +**Example** + +The following example shows how to create a glob that matches a numeric folder name between `01` and `25`, with leading zeros. + +```js +const fill = require('fill-range'); +const regex = micromatch.makeRe('foo/{01..25}/bar', { + expandRange(a, b) { + return `(${fill(a, b, { toRegex: true })})`; + } +}); + +console.log(regex) +//=> /^(?:foo\/((?:0[1-9]|1[0-9]|2[0-5]))\/bar)$/ + +console.log(regex.test('foo/00/bar')) // false +console.log(regex.test('foo/01/bar')) // true +console.log(regex.test('foo/10/bar')) // true +console.log(regex.test('foo/22/bar')) // true +console.log(regex.test('foo/25/bar')) // true +console.log(regex.test('foo/26/bar')) // false +``` + +### options.format + +**Type**: `function` + +**Default**: `undefined` + +Custom function for formatting strings before they're matched. + +**Example** + +```js +// strip leading './' from strings +const format = str => str.replace(/^\.\//, ''); +const isMatch = picomatch('foo/*.js', { format }); +console.log(isMatch('./foo/bar.js')) //=> true +``` + +### options.ignore + +String or array of glob patterns to match files to ignore. + +**Type**: `String|Array` + +**Default**: `undefined` + +```js +const isMatch = micromatch.matcher('*', { ignore: 'f*' }); +console.log(isMatch('foo')) //=> false +console.log(isMatch('bar')) //=> true +console.log(isMatch('baz')) //=> true +``` + +### options.matchBase + +Alias for [options.basename](#options-basename). + +### options.noextglob + +Disable extglob support, so that [extglobs](#extglobs) are regarded as literal characters. + +**Type**: `Boolean` + +**Default**: `undefined` + +**Examples** + +```js +console.log(micromatch(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)')); +//=> ['a/b', 'a/!(z)'] + +console.log(micromatch(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)', { noextglob: true })); +//=> ['a/!(z)'] (matches only as literal characters) +``` + +### options.nonegate + +Disallow negation (`!`) patterns, and treat leading `!` as a literal character to match. + +**Type**: `Boolean` + +**Default**: `undefined` + +### options.noglobstar + +Disable matching with globstars (`**`). + +**Type**: `Boolean` + +**Default**: `undefined` + +```js +micromatch(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**'); +//=> ['a/b', 'a/b/c', 'a/b/c/d'] + +micromatch(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**', {noglobstar: true}); +//=> ['a/b'] +``` + +### options.nonull + +Alias for [options.nullglob](#options-nullglob). + +### options.nullglob + +If `true`, when no matches are found the actual (arrayified) glob pattern is returned instead of an empty array. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `nonull`. + +**Type**: `Boolean` + +**Default**: `undefined` + +### options.onIgnore + +```js +const onIgnore = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); + // { glob: '*', regex: /^(?:(?!\.)(?=.)[^\/]*?\/?)$/, input: 'foo', output: 'foo' } +}; + +const isMatch = micromatch.matcher('*', { onIgnore, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +### options.onMatch + +```js +const onMatch = ({ glob, regex, input, output }) => { + console.log({ input, output }); + // { input: 'some\\path', output: 'some/path' } + // { input: 'some\\path', output: 'some/path' } + // { input: 'some\\path', output: 'some/path' } +}; + +const isMatch = micromatch.matcher('**', { onMatch, posixSlashes: true }); +isMatch('some\\path'); +isMatch('some\\path'); +isMatch('some\\path'); +``` + +### options.onResult + +```js +const onResult = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = micromatch('*', { onResult, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +### options.posixSlashes + +Convert path separators on returned files to posix/unix-style forward slashes. Aliased as `unixify` for backwards compatibility. + +**Type**: `Boolean` + +**Default**: `true` on windows, `false` everywhere else. + +**Example** + +```js +console.log(micromatch.match(['a\\b\\c'], 'a/**')); +//=> ['a/b/c'] + +console.log(micromatch.match(['a\\b\\c'], { posixSlashes: false })); +//=> ['a\\b\\c'] +``` + +### options.unescape + +Remove backslashes from escaped glob characters before creating the regular expression to perform matches. + +**Type**: `Boolean` + +**Default**: `undefined` + +**Example** + +In this example we want to match a literal `*`: + +```js +console.log(micromatch.match(['abc', 'a\\*c'], 'a\\*c')); +//=> ['a\\*c'] + +console.log(micromatch.match(['abc', 'a\\*c'], 'a\\*c', { unescape: true })); +//=> ['a*c'] +``` + +
+
+ +## Extended globbing + +Micromatch supports the following extended globbing features. + +### Extglobs + +Extended globbing, as described by the bash man page: + +| **pattern** | **regex equivalent** | **description** | +| --- | --- | --- | +| `?(pattern)` | `(pattern)?` | Matches zero or one occurrence of the given patterns | +| `*(pattern)` | `(pattern)*` | Matches zero or more occurrences of the given patterns | +| `+(pattern)` | `(pattern)+` | Matches one or more occurrences of the given patterns | +| `@(pattern)` | `(pattern)` * | Matches one of the given patterns | +| `!(pattern)` | N/A (equivalent regex is much more complicated) | Matches anything except one of the given patterns | + +* Note that `@` isn't a regex character. + +### Braces + +Brace patterns can be used to match specific ranges or sets of characters. + +**Example** + +The pattern `{f,b}*/{1..3}/{b,q}*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Visit [braces](https://github.com/micromatch/braces) to see the full range of features and options related to brace expansion, or to create brace matching or expansion related issues. + +### Regex character classes + +Given the list: `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`: + +* `[ac].js`: matches both `a` and `c`, returning `['a.js', 'c.js']` +* `[b-d].js`: matches from `b` to `d`, returning `['b.js', 'c.js', 'd.js']` +* `a/[A-Z].js`: matches and uppercase letter, returning `['a/E.md']` + +Learn about [regex character classes](http://www.regular-expressions.info/charclass.html). + +### Regex groups + +Given `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`: + +* `(a|c).js`: would match either `a` or `c`, returning `['a.js', 'c.js']` +* `(b|d).js`: would match either `b` or `d`, returning `['b.js', 'd.js']` +* `(b|[A-Z]).js`: would match either `b` or an uppercase letter, returning `['b.js', 'E.js']` + +As with regex, parens can be nested, so patterns like `((a|b)|c)/b` will work. Although brace expansion might be friendlier to use, depending on preference. + +### POSIX bracket expressions + +POSIX brackets are intended to be more user-friendly than regex character classes. This of course is in the eye of the beholder. + +**Example** + +```js +console.log(micromatch.isMatch('a1', '[[:alpha:][:digit:]]')) //=> true +console.log(micromatch.isMatch('a1', '[[:alpha:][:alpha:]]')) //=> false +``` + +*** + +## Notes + +### Bash 4.3 parity + +Whenever possible matching behavior is based on behavior Bash 4.3, which is mostly consistent with minimatch. + +However, it's suprising how many edge cases and rabbit holes there are with glob matching, and since there is no real glob specification, and micromatch is more accurate than both Bash and minimatch, there are cases where best-guesses were made for behavior. In a few cases where Bash had no answers, we used wildmatch (used by git) as a fallback. + +### Backslashes + +There is an important, notable difference between minimatch and micromatch _in regards to how backslashes are handled_ in glob patterns. + +* Micromatch exclusively and explicitly reserves backslashes for escaping characters in a glob pattern, even on windows, which is consistent with bash behavior. _More importantly, unescaping globs can result in unsafe regular expressions_. +* Minimatch converts all backslashes to forward slashes, which means you can't use backslashes to escape any characters in your glob patterns. + +We made this decision for micromatch for a couple of reasons: + +* Consistency with bash conventions. +* Glob patterns are not filepaths. They are a type of [regular language](https://en.wikipedia.org/wiki/Regular_language) that is converted to a JavaScript regular expression. Thus, when forward slashes are defined in a glob pattern, the resulting regular expression will match windows or POSIX path separators just fine. + +**A note about joining paths to globs** + +Note that when you pass something like `path.join('foo', '*')` to micromatch, you are creating a filepath and expecting it to still work as a glob pattern. This causes problems on windows, since the `path.sep` is `\\`. + +In other words, since `\\` is reserved as an escape character in globs, on windows `path.join('foo', '*')` would result in `foo\\*`, which tells micromatch to match `*` as a literal character. This is the same behavior as bash. + +To solve this, you might be inspired to do something like `'foo\\*'.replace(/\\/g, '/')`, but this causes another, potentially much more serious, problem. + +## Benchmarks + +### Running benchmarks + +Install dependencies for running benchmarks: + +```sh +$ cd bench && npm install +``` + +Run the benchmarks: + +```sh +$ npm run bench +``` + +### Latest results + +As of March 24, 2022 (longer bars are better): + +```sh +# .makeRe star + micromatch x 2,232,802 ops/sec ±2.34% (89 runs sampled)) + minimatch x 781,018 ops/sec ±6.74% (92 runs sampled)) + +# .makeRe star; dot=true + micromatch x 1,863,453 ops/sec ±0.74% (93 runs sampled) + minimatch x 723,105 ops/sec ±0.75% (93 runs sampled) + +# .makeRe globstar + micromatch x 1,624,179 ops/sec ±2.22% (91 runs sampled) + minimatch x 1,117,230 ops/sec ±2.78% (86 runs sampled)) + +# .makeRe globstars + micromatch x 1,658,642 ops/sec ±0.86% (92 runs sampled) + minimatch x 741,224 ops/sec ±1.24% (89 runs sampled)) + +# .makeRe with leading star + micromatch x 1,525,014 ops/sec ±1.63% (90 runs sampled) + minimatch x 561,074 ops/sec ±3.07% (89 runs sampled) + +# .makeRe - braces + micromatch x 172,478 ops/sec ±2.37% (78 runs sampled) + minimatch x 96,087 ops/sec ±2.34% (88 runs sampled))) + +# .makeRe braces - range (expanded) + micromatch x 26,973 ops/sec ±0.84% (89 runs sampled) + minimatch x 3,023 ops/sec ±0.99% (90 runs sampled)) + +# .makeRe braces - range (compiled) + micromatch x 152,892 ops/sec ±1.67% (83 runs sampled) + minimatch x 992 ops/sec ±3.50% (89 runs sampled)d)) + +# .makeRe braces - nested ranges (expanded) + micromatch x 15,816 ops/sec ±13.05% (80 runs sampled) + minimatch x 2,953 ops/sec ±1.64% (91 runs sampled) + +# .makeRe braces - nested ranges (compiled) + micromatch x 110,881 ops/sec ±1.85% (82 runs sampled) + minimatch x 1,008 ops/sec ±1.51% (91 runs sampled) + +# .makeRe braces - set (compiled) + micromatch x 134,930 ops/sec ±3.54% (63 runs sampled)) + minimatch x 43,242 ops/sec ±0.60% (93 runs sampled) + +# .makeRe braces - nested sets (compiled) + micromatch x 94,455 ops/sec ±1.74% (69 runs sampled)) + minimatch x 27,720 ops/sec ±1.84% (93 runs sampled)) +``` + +## Contributing + +All contributions are welcome! Please read [the contributing guide](.github/contributing.md) to get started. + +**Bug reports** + +Please create an issue if you encounter a bug or matching behavior that doesn't seem correct. If you find a matching-related issue, please: + +* [research existing issues first](../../issues) (open and closed) +* visit the [GNU Bash documentation](https://www.gnu.org/software/bash/manual/) to see how Bash deals with the pattern +* visit the [minimatch](https://github.com/isaacs/minimatch) documentation to cross-check expected behavior in node.js +* if all else fails, since there is no real specification for globs we will probably need to discuss expected behavior and decide how to resolve it. which means any detail you can provide to help with this discussion would be greatly appreciated. + +**Platform issues** + +It's important to us that micromatch work consistently on all platforms. If you encounter any platform-specific matching or path related issues, please let us know (pull requests are also greatly appreciated). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards. + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.") +* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/micromatch/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.") +* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/micromatch/extglob) | [homepage](https://github.com/micromatch/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [nanomatch](https://www.npmjs.com/package/nanomatch): Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash… [more](https://github.com/micromatch/nanomatch) | [homepage](https://github.com/micromatch/nanomatch "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 512 | [jonschlinkert](https://github.com/jonschlinkert) | +| 12 | [es128](https://github.com/es128) | +| 9 | [danez](https://github.com/danez) | +| 8 | [doowb](https://github.com/doowb) | +| 6 | [paulmillr](https://github.com/paulmillr) | +| 5 | [mrmlnc](https://github.com/mrmlnc) | +| 3 | [DrPizza](https://github.com/DrPizza) | +| 2 | [TrySound](https://github.com/TrySound) | +| 2 | [mceIdo](https://github.com/mceIdo) | +| 2 | [Glazy](https://github.com/Glazy) | +| 2 | [MartinKolarik](https://github.com/MartinKolarik) | +| 2 | [antonyk](https://github.com/antonyk) | +| 2 | [Tvrqvoise](https://github.com/Tvrqvoise) | +| 1 | [amilajack](https://github.com/amilajack) | +| 1 | [Cslove](https://github.com/Cslove) | +| 1 | [devongovett](https://github.com/devongovett) | +| 1 | [DianeLooney](https://github.com/DianeLooney) | +| 1 | [UltCombo](https://github.com/UltCombo) | +| 1 | [frangio](https://github.com/frangio) | +| 1 | [joyceerhl](https://github.com/joyceerhl) | +| 1 | [juszczykjakub](https://github.com/juszczykjakub) | +| 1 | [muescha](https://github.com/muescha) | +| 1 | [sebdeckers](https://github.com/sebdeckers) | +| 1 | [tomByrer](https://github.com/tomByrer) | +| 1 | [fidian](https://github.com/fidian) | +| 1 | [curbengh](https://github.com/curbengh) | +| 1 | [simlu](https://github.com/simlu) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | +| 1 | [yvele](https://github.com/yvele) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2022, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 24, 2022._ \ No newline at end of file diff --git a/node_modules/micromatch/index.js b/node_modules/micromatch/index.js new file mode 100644 index 0000000..1fad7f7 --- /dev/null +++ b/node_modules/micromatch/index.js @@ -0,0 +1,467 @@ +'use strict'; + +const util = require('util'); +const braces = require('braces'); +const picomatch = require('picomatch'); +const utils = require('picomatch/lib/utils'); +const isEmptyString = val => val === '' || val === './'; + +/** + * Returns an array of strings that match one or more glob patterns. + * + * ```js + * const mm = require('micromatch'); + * // mm(list, patterns[, options]); + * + * console.log(mm(['a.js', 'a.txt'], ['*.js'])); + * //=> [ 'a.js' ] + * ``` + * @param {String|Array} `list` List of strings to match. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) + * @return {Array} Returns an array of matches + * @summary false + * @api public + */ + +const micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + + let omit = new Set(); + let keep = new Set(); + let items = new Set(); + let negatives = 0; + + let onResult = state => { + items.add(state.output); + if (options && options.onResult) { + options.onResult(state); + } + }; + + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) negatives++; + + for (let item of list) { + let matched = isMatch(item, true); + + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) continue; + + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } + } + } + + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter(item => !omit.has(item)); + + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(', ')}"`); + } + + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; + } + } + + return matches; +}; + +/** + * Backwards compatibility + */ + +micromatch.match = micromatch; + +/** + * Returns a matcher function from the given glob `pattern` and `options`. + * The returned function takes a string to match as its only argument and returns + * true if the string is a match. + * + * ```js + * const mm = require('micromatch'); + * // mm.matcher(pattern[, options]); + * + * const isMatch = mm.matcher('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @param {String} `pattern` Glob pattern + * @param {Object} `options` + * @return {Function} Returns a matcher function. + * @api public + */ + +micromatch.matcher = (pattern, options) => picomatch(pattern, options); + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const mm = require('micromatch'); + * // mm.isMatch(string, patterns[, options]); + * + * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(mm.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `[options]` See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Backwards compatibility + */ + +micromatch.any = micromatch.isMatch; + +/** + * Returns a list of strings that _**do not match any**_ of the given `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.not(list, patterns[, options]); + * + * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); + * //=> ['b.b', 'c.c'] + * ``` + * @param {Array} `list` Array of strings to match. + * @param {String|Array} `patterns` One or more glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of strings that **do not match** the given patterns. + * @api public + */ + +micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = new Set(); + let items = []; + + let onResult = state => { + if (options.onResult) options.onResult(state); + items.push(state.output); + }; + + let matches = new Set(micromatch(list, patterns, { ...options, onResult })); + + for (let item of items) { + if (!matches.has(item)) { + result.add(item); + } + } + return [...result]; +}; + +/** + * Returns true if the given `string` contains the given pattern. Similar + * to [.isMatch](#isMatch) but the pattern can match any part of the string. + * + * ```js + * var mm = require('micromatch'); + * // mm.contains(string, pattern[, options]); + * + * console.log(mm.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(mm.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String|Array} `patterns` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any of the patterns matches any part of `str`. + * @api public + */ + +micromatch.contains = (str, pattern, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + + if (Array.isArray(pattern)) { + return pattern.some(p => micromatch.contains(str, p, options)); + } + + if (typeof pattern === 'string') { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; + } + + if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) { + return true; + } + } + + return micromatch.isMatch(str, pattern, { ...options, contains: true }); +}; + +/** + * Filter the keys of the given object with the given `glob` pattern + * and `options`. Does not attempt to match nested keys. If you need this feature, + * use [glob-object][] instead. + * + * ```js + * const mm = require('micromatch'); + * // mm.matchKeys(object, patterns[, options]); + * + * const obj = { aa: 'a', ab: 'b', ac: 'c' }; + * console.log(mm.matchKeys(obj, '*b')); + * //=> { ab: 'b' } + * ``` + * @param {Object} `object` The object with keys to filter. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Object} Returns an object with only keys that match the given patterns. + * @api public + */ + +micromatch.matchKeys = (obj, patterns, options) => { + if (!utils.isObject(obj)) { + throw new TypeError('Expected the first argument to be an object'); + } + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; + for (let key of keys) res[key] = obj[key]; + return res; +}; + +/** + * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.some(list, patterns[, options]); + * + * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // true + * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list` + * @api public + */ + +micromatch.some = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (items.some(item => isMatch(item))) { + return true; + } + } + return false; +}; + +/** + * Returns true if every string in the given `list` matches + * any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.every(list, patterns[, options]); + * + * console.log(mm.every('foo.js', ['foo.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // false + * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list` + * @api public + */ + +micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (!items.every(item => isMatch(item))) { + return false; + } + } + return true; +}; + +/** + * Returns true if **all** of the given `patterns` match + * the specified string. + * + * ```js + * const mm = require('micromatch'); + * // mm.all(string, patterns[, options]); + * + * console.log(mm.all('foo.js', ['foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); + * // false + * + * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); + * // true + * ``` + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +micromatch.all = (str, patterns, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + + return [].concat(patterns).every(p => picomatch(p, options)(str)); +}; + +/** + * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. + * + * ```js + * const mm = require('micromatch'); + * // mm.capture(pattern, string[, options]); + * + * console.log(mm.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(mm.capture('test/*.js', 'foo/bar.css')); + * //=> null + * ``` + * @param {String} `glob` Glob pattern to use for matching. + * @param {String} `input` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`. + * @api public + */ + +micromatch.capture = (glob, input, options) => { + let posix = utils.isWindows(options); + let regex = picomatch.makeRe(String(glob), { ...options, capture: true }); + let match = regex.exec(posix ? utils.toPosixSlashes(input) : input); + + if (match) { + return match.slice(1).map(v => v === void 0 ? '' : v); + } +}; + +/** + * Create a regular expression from the given glob `pattern`. + * + * ```js + * const mm = require('micromatch'); + * // mm.makeRe(pattern[, options]); + * + * console.log(mm.makeRe('*.js')); + * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ + * ``` + * @param {String} `pattern` A glob pattern to convert to regex. + * @param {Object} `options` + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +micromatch.makeRe = (...args) => picomatch.makeRe(...args); + +/** + * Scan a glob pattern to separate the pattern into segments. Used + * by the [split](#split) method. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.scan(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +micromatch.scan = (...args) => picomatch.scan(...args); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.parse(pattern[, options]); + * ``` + * @param {String} `glob` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as regex source string. + * @api public + */ + +micromatch.parse = (patterns, options) => { + let res = []; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } + return res; +}; + +/** + * Process the given brace `pattern`. + * + * ```js + * const { braces } = require('micromatch'); + * console.log(braces('foo/{a,b,c}/bar')); + * //=> [ 'foo/(a|b|c)/bar' ] + * + * console.log(braces('foo/{a,b,c}/bar', { expand: true })); + * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] + * ``` + * @param {String} `pattern` String with brace pattern to process. + * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. + * @return {Array} + * @api public + */ + +micromatch.braces = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + if ((options && options.nobrace === true) || !/\{.*\}/.test(pattern)) { + return [pattern]; + } + return braces(pattern, options); +}; + +/** + * Expand braces + */ + +micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + return micromatch.braces(pattern, { ...options, expand: true }); +}; + +/** + * Expose micromatch + */ + +module.exports = micromatch; diff --git a/node_modules/micromatch/package.json b/node_modules/micromatch/package.json new file mode 100644 index 0000000..6061d5b --- /dev/null +++ b/node_modules/micromatch/package.json @@ -0,0 +1,119 @@ +{ + "name": "micromatch", + "description": "Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch.", + "version": "4.0.5", + "homepage": "https://github.com/micromatch/micromatch", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "(https://github.com/DianeLooney)", + "Amila Welihinda (amilajack.com)", + "Bogdan Chadkin (https://github.com/TrySound)", + "Brian Woodward (https://twitter.com/doowb)", + "Devon Govett (http://badassjs.com)", + "Elan Shanker (https://github.com/es128)", + "Fabrício Matté (https://ultcombo.js.org)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Martin Kolárik (https://kolarik.sk)", + "Olsten Larck (https://i.am.charlike.online)", + "Paul Miller (paulmillr.com)", + "Tom Byrer (https://github.com/tomByrer)", + "Tyler Akins (http://rumkin.com)", + "Peter Bright (https://github.com/drpizza)", + "Kuba Juszczyk (https://github.com/ku8ar)" + ], + "repository": "micromatch/micromatch", + "bugs": { + "url": "https://github.com/micromatch/micromatch/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.6" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "devDependencies": { + "fill-range": "^7.0.1", + "gulp-format-md": "^2.0.0", + "minimatch": "^5.0.1", + "mocha": "^9.2.2", + "time-require": "github:jonschlinkert/time-require" + }, + "keywords": [ + "bash", + "bracket", + "character-class", + "expand", + "expansion", + "expression", + "extglob", + "extglobs", + "file", + "files", + "filter", + "find", + "glob", + "globbing", + "globs", + "globstar", + "lookahead", + "lookaround", + "lookbehind", + "match", + "matcher", + "matches", + "matching", + "micromatch", + "minimatch", + "multimatch", + "negate", + "negation", + "path", + "pattern", + "patterns", + "posix", + "regex", + "regexp", + "regular", + "shell", + "star", + "wildcard" + ], + "verb": { + "toc": "collapsible", + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [ + "braces", + "expand-brackets", + "extglob", + "fill-range", + "nanomatch" + ] + }, + "reflinks": [ + "extglob", + "fill-range", + "glob-object", + "minimatch", + "multimatch" + ] + } +} diff --git a/node_modules/nanoid/LICENSE b/node_modules/nanoid/LICENSE new file mode 100644 index 0000000..37f56aa --- /dev/null +++ b/node_modules/nanoid/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2017 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/nanoid/README.md b/node_modules/nanoid/README.md new file mode 100644 index 0000000..a4abd92 --- /dev/null +++ b/node_modules/nanoid/README.md @@ -0,0 +1,39 @@ +# Nano ID + +Nano ID logo by Anton Lovchikov + +**English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md) + +A tiny, secure, URL-friendly, unique string ID generator for JavaScript. + +> “An amazing level of senseless perfectionism, +> which is simply impossible not to respect.” + +* **Small.** 130 bytes (minified and gzipped). No dependencies. + [Size Limit] controls the size. +* **Fast.** It is 2 times faster than UUID. +* **Safe.** It uses hardware random generator. Can be used in clusters. +* **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`). + So ID size was reduced from 36 to 21 symbols. +* **Portable.** Nano ID was ported + to [20 programming languages](#other-programming-languages). + +```js +import { nanoid } from 'nanoid' +model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT" +``` + +Supports modern browsers, IE [with Babel], Node.js and React Native. + +[online tool]: https://gitpod.io/#https://github.com/ai/nanoid/ +[with Babel]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/ +[Size Limit]: https://github.com/ai/size-limit + + + Sponsored by Evil Martians + + +## Docs +Read **[full docs](https://github.com/ai/nanoid#readme)** on GitHub. diff --git a/node_modules/nanoid/async/index.browser.cjs b/node_modules/nanoid/async/index.browser.cjs new file mode 100644 index 0000000..7e5bba8 --- /dev/null +++ b/node_modules/nanoid/async/index.browser.cjs @@ -0,0 +1,34 @@ +let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return async (size = defaultSize) => { + let id = '' + while (true) { + let bytes = crypto.getRandomValues(new Uint8Array(step)) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let nanoid = async (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +module.exports = { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.browser.js b/node_modules/nanoid/async/index.browser.js new file mode 100644 index 0000000..5ece04d --- /dev/null +++ b/node_modules/nanoid/async/index.browser.js @@ -0,0 +1,34 @@ +let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return async (size = defaultSize) => { + let id = '' + while (true) { + let bytes = crypto.getRandomValues(new Uint8Array(step)) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let nanoid = async (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.cjs b/node_modules/nanoid/async/index.cjs new file mode 100644 index 0000000..50db105 --- /dev/null +++ b/node_modules/nanoid/async/index.cjs @@ -0,0 +1,35 @@ +let crypto = require('crypto') +let { urlAlphabet } = require('../url-alphabet/index.cjs') +let random = bytes => + new Promise((resolve, reject) => { + crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { + if (err) { + reject(err) + } else { + resolve(buf) + } + }) + }) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random(size).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +module.exports = { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.d.ts b/node_modules/nanoid/async/index.d.ts new file mode 100644 index 0000000..9e91965 --- /dev/null +++ b/node_modules/nanoid/async/index.d.ts @@ -0,0 +1,56 @@ +/** + * Generate secure URL-friendly unique ID. The non-blocking version. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid/async' + * nanoid().then(id => { + * model.id = id + * }) + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A promise with a random string. + */ +export function nanoid(size?: number): Promise + +/** + * A low-level function. + * Generate secure unique ID with custom alphabet. The non-blocking version. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A function that returns a promise with a random string. + * + * ```js + * import { customAlphabet } from 'nanoid/async' + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid().then(id => { + * model.id = id //=> "8ё56а" + * }) + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => Promise + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { random } from 'nanoid/async' + * random(5).then(bytes => { + * bytes //=> [10, 67, 212, 67, 89] + * }) + * ``` + * + * @param bytes Size of the array. + * @returns A promise with a random bytes array. + */ +export function random(bytes: number): Promise diff --git a/node_modules/nanoid/async/index.js b/node_modules/nanoid/async/index.js new file mode 100644 index 0000000..803fad6 --- /dev/null +++ b/node_modules/nanoid/async/index.js @@ -0,0 +1,35 @@ +import crypto from 'crypto' +import { urlAlphabet } from '../url-alphabet/index.js' +let random = bytes => + new Promise((resolve, reject) => { + crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { + if (err) { + reject(err) + } else { + resolve(buf) + } + }) + }) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random(size).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.native.js b/node_modules/nanoid/async/index.native.js new file mode 100644 index 0000000..5cb3d57 --- /dev/null +++ b/node_modules/nanoid/async/index.native.js @@ -0,0 +1,26 @@ +import { getRandomBytesAsync } from 'expo-random' +import { urlAlphabet } from '../url-alphabet/index.js' +let random = getRandomBytesAsync +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random(size).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/package.json b/node_modules/nanoid/async/package.json new file mode 100644 index 0000000..578cdb4 --- /dev/null +++ b/node_modules/nanoid/async/package.json @@ -0,0 +1,12 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": { + "./index.js": "./index.native.js" + }, + "browser": { + "./index.js": "./index.browser.js", + "./index.cjs": "./index.browser.cjs" + } +} \ No newline at end of file diff --git a/node_modules/nanoid/bin/nanoid.cjs b/node_modules/nanoid/bin/nanoid.cjs new file mode 100755 index 0000000..c76db0f --- /dev/null +++ b/node_modules/nanoid/bin/nanoid.cjs @@ -0,0 +1,55 @@ +#!/usr/bin/env node + +let { nanoid, customAlphabet } = require('..') + +function print(msg) { + process.stdout.write(msg + '\n') +} + +function error(msg) { + process.stderr.write(msg + '\n') + process.exit(1) +} + +if (process.argv.includes('--help') || process.argv.includes('-h')) { + print(` + Usage + $ nanoid [options] + + Options + -s, --size Generated ID size + -a, --alphabet Alphabet to use + -h, --help Show this help + + Examples + $ nanoid --s 15 + S9sBF77U6sDB8Yg + + $ nanoid --size 10 --alphabet abc + bcabababca`) + process.exit() +} + +let alphabet, size +for (let i = 2; i < process.argv.length; i++) { + let arg = process.argv[i] + if (arg === '--size' || arg === '-s') { + size = Number(process.argv[i + 1]) + i += 1 + if (Number.isNaN(size) || size <= 0) { + error('Size must be positive integer') + } + } else if (arg === '--alphabet' || arg === '-a') { + alphabet = process.argv[i + 1] + i += 1 + } else { + error('Unknown argument ' + arg) + } +} + +if (alphabet) { + let customNanoid = customAlphabet(alphabet, size) + print(customNanoid()) +} else { + print(nanoid(size)) +} diff --git a/node_modules/nanoid/index.browser.cjs b/node_modules/nanoid/index.browser.cjs new file mode 100644 index 0000000..f800d6f --- /dev/null +++ b/node_modules/nanoid/index.browser.cjs @@ -0,0 +1,34 @@ +let { urlAlphabet } = require('./url-alphabet/index.cjs') +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => + crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { + byte &= 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte > 62) { + id += '-' + } else { + id += '_' + } + return id + }, '') +module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.browser.js b/node_modules/nanoid/index.browser.js new file mode 100644 index 0000000..8b3139b --- /dev/null +++ b/node_modules/nanoid/index.browser.js @@ -0,0 +1,34 @@ +import { urlAlphabet } from './url-alphabet/index.js' +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => + crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => { + byte &= 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte > 62) { + id += '-' + } else { + id += '_' + } + return id + }, '') +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.cjs b/node_modules/nanoid/index.cjs new file mode 100644 index 0000000..0fa85e9 --- /dev/null +++ b/node_modules/nanoid/index.cjs @@ -0,0 +1,45 @@ +let crypto = require('crypto') +let { urlAlphabet } = require('./url-alphabet/index.cjs') +const POOL_SIZE_MULTIPLIER = 128 +let pool, poolOffset +let fillPool = bytes => { + if (!pool || pool.length < bytes) { + pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) + crypto.randomFillSync(pool) + poolOffset = 0 + } else if (poolOffset + bytes > pool.length) { + crypto.randomFillSync(pool) + poolOffset = 0 + } + poolOffset += bytes +} +let random = bytes => { + fillPool((bytes -= 0)) + return pool.subarray(poolOffset - bytes, poolOffset) +} +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + fillPool((size -= 0)) + let id = '' + for (let i = poolOffset - size; i < poolOffset; i++) { + id += urlAlphabet[pool[i] & 63] + } + return id +} +module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.d.ts b/node_modules/nanoid/index.d.ts new file mode 100644 index 0000000..3e111a3 --- /dev/null +++ b/node_modules/nanoid/index.d.ts @@ -0,0 +1,91 @@ +/** + * Generate secure URL-friendly unique ID. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate secure unique ID with custom alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * const { customAlphabet } = require('nanoid') + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid() //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string + +/** + * Generate unique ID with custom random generator and alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * ```js + * import { customRandom } from 'nanoid/format' + * + * const nanoid = customRandom('abcdef', 5, size => { + * const random = [] + * for (let i = 0; i < size; i++) { + * random.push(randomByte()) + * } + * return random + * }) + * + * nanoid() //=> "fbaef" + * ``` + * + * @param alphabet Alphabet used to generate a random string. + * @param size Size of the random string. + * @param random A random bytes generator. + * @returns A random string generator. + */ +export function customRandom( + alphabet: string, + size: number, + random: (bytes: number) => Uint8Array +): () => string + +/** + * URL safe symbols. + * + * ```js + * import { urlAlphabet } from 'nanoid' + * const nanoid = customAlphabet(urlAlphabet, 10) + * nanoid() //=> "Uakgb_J5m9" + * ``` + */ +export const urlAlphabet: string + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { customRandom, random } from 'nanoid' + * const nanoid = customRandom("abcdef", 5, random) + * ``` + * + * @param bytes Size of the array. + * @returns An array of random bytes. + */ +export function random(bytes: number): Uint8Array diff --git a/node_modules/nanoid/index.js b/node_modules/nanoid/index.js new file mode 100644 index 0000000..21e155f --- /dev/null +++ b/node_modules/nanoid/index.js @@ -0,0 +1,45 @@ +import crypto from 'crypto' +import { urlAlphabet } from './url-alphabet/index.js' +const POOL_SIZE_MULTIPLIER = 128 +let pool, poolOffset +let fillPool = bytes => { + if (!pool || pool.length < bytes) { + pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) + crypto.randomFillSync(pool) + poolOffset = 0 + } else if (poolOffset + bytes > pool.length) { + crypto.randomFillSync(pool) + poolOffset = 0 + } + poolOffset += bytes +} +let random = bytes => { + fillPool((bytes -= 0)) + return pool.subarray(poolOffset - bytes, poolOffset) +} +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + fillPool((size -= 0)) + let id = '' + for (let i = poolOffset - size; i < poolOffset; i++) { + id += urlAlphabet[pool[i] & 63] + } + return id +} +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/nanoid.js b/node_modules/nanoid/nanoid.js new file mode 100644 index 0000000..ec242ea --- /dev/null +++ b/node_modules/nanoid/nanoid.js @@ -0,0 +1 @@ +export let nanoid=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,e)=>t+=(e&=63)<36?e.toString(36):e<62?(e-26).toString(36).toUpperCase():e<63?"_":"-"),""); \ No newline at end of file diff --git a/node_modules/nanoid/non-secure/index.cjs b/node_modules/nanoid/non-secure/index.cjs new file mode 100644 index 0000000..09d57cd --- /dev/null +++ b/node_modules/nanoid/non-secure/index.cjs @@ -0,0 +1,21 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = '' + let i = size + while (i--) { + id += alphabet[(Math.random() * alphabet.length) | 0] + } + return id + } +} +let nanoid = (size = 21) => { + let id = '' + let i = size + while (i--) { + id += urlAlphabet[(Math.random() * 64) | 0] + } + return id +} +module.exports = { nanoid, customAlphabet } diff --git a/node_modules/nanoid/non-secure/index.d.ts b/node_modules/nanoid/non-secure/index.d.ts new file mode 100644 index 0000000..4965322 --- /dev/null +++ b/node_modules/nanoid/non-secure/index.d.ts @@ -0,0 +1,33 @@ +/** + * Generate URL-friendly unique ID. This method uses the non-secure + * predictable random generator with bigger collision probability. + * + * ```js + * import { nanoid } from 'nanoid/non-secure' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate a unique ID based on a custom alphabet. + * This method uses the non-secure predictable random generator + * with bigger collision probability. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * import { customAlphabet } from 'nanoid/non-secure' + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * model.id = //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string diff --git a/node_modules/nanoid/non-secure/index.js b/node_modules/nanoid/non-secure/index.js new file mode 100644 index 0000000..e7e19ad --- /dev/null +++ b/node_modules/nanoid/non-secure/index.js @@ -0,0 +1,21 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = '' + let i = size + while (i--) { + id += alphabet[(Math.random() * alphabet.length) | 0] + } + return id + } +} +let nanoid = (size = 21) => { + let id = '' + let i = size + while (i--) { + id += urlAlphabet[(Math.random() * 64) | 0] + } + return id +} +export { nanoid, customAlphabet } diff --git a/node_modules/nanoid/non-secure/package.json b/node_modules/nanoid/non-secure/package.json new file mode 100644 index 0000000..9930d6a --- /dev/null +++ b/node_modules/nanoid/non-secure/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": "index.js" +} \ No newline at end of file diff --git a/node_modules/nanoid/package.json b/node_modules/nanoid/package.json new file mode 100644 index 0000000..19d7d7a --- /dev/null +++ b/node_modules/nanoid/package.json @@ -0,0 +1,66 @@ +{ + "name": "nanoid", + "version": "3.3.6", + "description": "A tiny (116 bytes), secure URL-friendly unique string ID generator", + "keywords": [ + "uuid", + "random", + "id", + "url" + ], + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "ai/nanoid", + "browser": { + "./index.js": "./index.browser.js", + "./async/index.js": "./async/index.browser.js", + "./async/index.cjs": "./async/index.browser.cjs", + "./index.cjs": "./index.browser.cjs" + }, + "react-native": "index.js", + "bin": "./bin/nanoid.cjs", + "sideEffects": false, + "types": "./index.d.ts", + "type": "module", + "main": "index.cjs", + "module": "index.js", + "exports": { + ".": { + "types": "./index.d.ts", + "browser": "./index.browser.js", + "require": "./index.cjs", + "import": "./index.js", + "default": "./index.js" + }, + "./index.d.ts": "./index.d.ts", + "./package.json": "./package.json", + "./async/package.json": "./async/package.json", + "./async": { + "browser": "./async/index.browser.js", + "require": "./async/index.cjs", + "import": "./async/index.js", + "default": "./async/index.js" + }, + "./non-secure/package.json": "./non-secure/package.json", + "./non-secure": { + "require": "./non-secure/index.cjs", + "import": "./non-secure/index.js", + "default": "./non-secure/index.js" + }, + "./url-alphabet/package.json": "./url-alphabet/package.json", + "./url-alphabet": { + "require": "./url-alphabet/index.cjs", + "import": "./url-alphabet/index.js", + "default": "./url-alphabet/index.js" + } + } +} \ No newline at end of file diff --git a/node_modules/nanoid/url-alphabet/index.cjs b/node_modules/nanoid/url-alphabet/index.cjs new file mode 100644 index 0000000..757b709 --- /dev/null +++ b/node_modules/nanoid/url-alphabet/index.cjs @@ -0,0 +1,3 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +module.exports = { urlAlphabet } diff --git a/node_modules/nanoid/url-alphabet/index.js b/node_modules/nanoid/url-alphabet/index.js new file mode 100644 index 0000000..c2782e5 --- /dev/null +++ b/node_modules/nanoid/url-alphabet/index.js @@ -0,0 +1,3 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +export { urlAlphabet } diff --git a/node_modules/nanoid/url-alphabet/package.json b/node_modules/nanoid/url-alphabet/package.json new file mode 100644 index 0000000..9930d6a --- /dev/null +++ b/node_modules/nanoid/url-alphabet/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": "index.js" +} \ No newline at end of file diff --git a/node_modules/node-releases/LICENSE b/node_modules/node-releases/LICENSE new file mode 100644 index 0000000..ea39e4f --- /dev/null +++ b/node_modules/node-releases/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2017 Sergey Rubanov (https://github.com/chicoxyzzy) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/node-releases/README.md b/node_modules/node-releases/README.md new file mode 100644 index 0000000..d30d200 --- /dev/null +++ b/node_modules/node-releases/README.md @@ -0,0 +1,12 @@ +# Node.js releases data + +All data is located in `data` directory. + +`data/processed` contains `envs.json` with node.js releases data preprocessed to be used by [Browserslist](https://github.com/ai/browserslist) and other projects. Each version in this file contains only necessary info: version, release date, LTS flag/name, and security flag. + +`data/release-schedule` contains `release-schedule.json` with node.js releases date and end of life date. + +## Installation +```bash +npm install node-releases +``` diff --git a/node_modules/node-releases/data/processed/envs.json b/node_modules/node-releases/data/processed/envs.json new file mode 100644 index 0000000..0db089f --- /dev/null +++ b/node_modules/node-releases/data/processed/envs.json @@ -0,0 +1 @@ +[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"}] \ No newline at end of file diff --git a/node_modules/node-releases/data/release-schedule/release-schedule.json b/node_modules/node-releases/data/release-schedule/release-schedule.json new file mode 100644 index 0000000..5eca422 --- /dev/null +++ b/node_modules/node-releases/data/release-schedule/release-schedule.json @@ -0,0 +1 @@ +{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}} \ No newline at end of file diff --git a/node_modules/node-releases/package.json b/node_modules/node-releases/package.json new file mode 100644 index 0000000..c3ab96e --- /dev/null +++ b/node_modules/node-releases/package.json @@ -0,0 +1,19 @@ +{ + "name": "node-releases", + "version": "2.0.12", + "description": "Node.js releases data", + "type": "module", + "scripts": { + "build": "node scripts/build.js" + }, + "repository": "chicoxyzzy/node-releases", + "keywords": [ + "nodejs", + "releases" + ], + "author": "Sergey Rubanov ", + "license": "MIT", + "devDependencies": { + "semver": "^7.3.5" + } +} diff --git a/node_modules/normalize-path/LICENSE b/node_modules/normalize-path/LICENSE new file mode 100644 index 0000000..d32ab44 --- /dev/null +++ b/node_modules/normalize-path/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/normalize-path/README.md b/node_modules/normalize-path/README.md new file mode 100644 index 0000000..726d4d6 --- /dev/null +++ b/node_modules/normalize-path/README.md @@ -0,0 +1,127 @@ +# normalize-path [![NPM version](https://img.shields.io/npm/v/normalize-path.svg?style=flat)](https://www.npmjs.com/package/normalize-path) [![NPM monthly downloads](https://img.shields.io/npm/dm/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![NPM total downloads](https://img.shields.io/npm/dt/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/normalize-path.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/normalize-path) + +> Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save normalize-path +``` + +## Usage + +```js +const normalize = require('normalize-path'); + +console.log(normalize('\\foo\\bar\\baz\\')); +//=> '/foo/bar/baz' +``` + +**win32 namespaces** + +```js +console.log(normalize('\\\\?\\UNC\\Server01\\user\\docs\\Letter.txt')); +//=> '//?/UNC/Server01/user/docs/Letter.txt' + +console.log(normalize('\\\\.\\CdRomX')); +//=> '//./CdRomX' +``` + +**Consecutive slashes** + +Condenses multiple consecutive forward slashes (except for leading slashes in win32 namespaces) to a single slash. + +```js +console.log(normalize('.//foo//bar///////baz/')); +//=> './foo/bar/baz' +``` + +### Trailing slashes + +By default trailing slashes are removed. Pass `false` as the last argument to disable this behavior and _**keep** trailing slashes_: + +```js +console.log(normalize('foo\\bar\\baz\\', false)); //=> 'foo/bar/baz/' +console.log(normalize('./foo/bar/baz/', false)); //=> './foo/bar/baz/' +``` + +## Release history + +### v3.0 + +No breaking changes in this release. + +* a check was added to ensure that [win32 namespaces](https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces) are handled properly by win32 `path.parse()` after a path has been normalized by this library. +* a minor optimization was made to simplify how the trailing separator was handled + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +Other useful path-related libraries: + +* [contains-path](https://www.npmjs.com/package/contains-path): Return true if a file path contains the given path. | [homepage](https://github.com/jonschlinkert/contains-path "Return true if a file path contains the given path.") +* [is-absolute](https://www.npmjs.com/package/is-absolute): Returns true if a file path is absolute. Does not rely on the path module… [more](https://github.com/jonschlinkert/is-absolute) | [homepage](https://github.com/jonschlinkert/is-absolute "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.") +* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.") +* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Pollyfill for node.js `path.parse`, parses a filepath into an object. | [homepage](https://github.com/jonschlinkert/parse-filepath "Pollyfill for node.js `path.parse`, parses a filepath into an object.") +* [path-ends-with](https://www.npmjs.com/package/path-ends-with): Return `true` if a file path ends with the given string/suffix. | [homepage](https://github.com/jonschlinkert/path-ends-with "Return `true` if a file path ends with the given string/suffix.") +* [unixify](https://www.npmjs.com/package/unixify): Convert Windows file paths to unix paths. | [homepage](https://github.com/jonschlinkert/unixify "Convert Windows file paths to unix paths.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 35 | [jonschlinkert](https://github.com/jonschlinkert) | +| 1 | [phated](https://github.com/phated) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on April 19, 2018._ \ No newline at end of file diff --git a/node_modules/normalize-path/index.js b/node_modules/normalize-path/index.js new file mode 100644 index 0000000..6fac553 --- /dev/null +++ b/node_modules/normalize-path/index.js @@ -0,0 +1,35 @@ +/*! + * normalize-path + * + * Copyright (c) 2014-2018, Jon Schlinkert. + * Released under the MIT License. + */ + +module.exports = function(path, stripTrailing) { + if (typeof path !== 'string') { + throw new TypeError('expected path to be a string'); + } + + if (path === '\\' || path === '/') return '/'; + + var len = path.length; + if (len <= 1) return path; + + // ensure that win32 namespaces has two leading slashes, so that the path is + // handled properly by the win32 version of path.parse() after being normalized + // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces + var prefix = ''; + if (len > 4 && path[3] === '\\') { + var ch = path[2]; + if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { + path = path.slice(2); + prefix = '//'; + } + } + + var segs = path.split(/[/\\]+/); + if (stripTrailing !== false && segs[segs.length - 1] === '') { + segs.pop(); + } + return prefix + segs.join('/'); +}; diff --git a/node_modules/normalize-path/package.json b/node_modules/normalize-path/package.json new file mode 100644 index 0000000..ad61098 --- /dev/null +++ b/node_modules/normalize-path/package.json @@ -0,0 +1,77 @@ +{ + "name": "normalize-path", + "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.", + "version": "3.0.0", + "homepage": "https://github.com/jonschlinkert/normalize-path", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Blaine Bublitz (https://twitter.com/BlaineBublitz)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "jonschlinkert/normalize-path", + "bugs": { + "url": "https://github.com/jonschlinkert/normalize-path/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^1.0.0", + "minimist": "^1.2.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "absolute", + "backslash", + "delimiter", + "file", + "file-path", + "filepath", + "fix", + "forward", + "fp", + "fs", + "normalize", + "path", + "relative", + "separator", + "slash", + "slashes", + "trailing", + "unix", + "urix" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "description": "Other useful path-related libraries:", + "list": [ + "contains-path", + "is-absolute", + "is-relative", + "parse-filepath", + "path-ends-with", + "path-ends-with", + "unixify" + ] + }, + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/normalize-range/index.js b/node_modules/normalize-range/index.js new file mode 100644 index 0000000..d5a2ea8 --- /dev/null +++ b/node_modules/normalize-range/index.js @@ -0,0 +1,54 @@ +'use strict'; +module.exports = { + wrap: wrapRange, + limit: limitRange, + validate: validateRange, + test: testRange, + curry: curry, + name: name +}; + +function wrapRange(min, max, value) { + var maxLessMin = max - min; + return ((value - min) % maxLessMin + maxLessMin) % maxLessMin + min; +} + +function limitRange(min, max, value) { + return Math.max(min, Math.min(max, value)); +} + +function validateRange(min, max, value, minExclusive, maxExclusive) { + if (!testRange(min, max, value, minExclusive, maxExclusive)) { + throw new Error(value + ' is outside of range [' + min + ',' + max + ')'); + } + return value; +} + +function testRange(min, max, value, minExclusive, maxExclusive) { + return !( + value < min || + value > max || + (maxExclusive && (value === max)) || + (minExclusive && (value === min)) + ); +} + +function name(min, max, minExcl, maxExcl) { + return (minExcl ? '(' : '[') + min + ',' + max + (maxExcl ? ')' : ']'); +} + +function curry(min, max, minExclusive, maxExclusive) { + var boundNameFn = name.bind(null, min, max, minExclusive, maxExclusive); + return { + wrap: wrapRange.bind(null, min, max), + limit: limitRange.bind(null, min, max), + validate: function(value) { + return validateRange(min, max, value, minExclusive, maxExclusive); + }, + test: function(value) { + return testRange(min, max, value, minExclusive, maxExclusive); + }, + toString: boundNameFn, + name: boundNameFn + }; +} diff --git a/node_modules/normalize-range/license b/node_modules/normalize-range/license new file mode 100644 index 0000000..ad5d021 --- /dev/null +++ b/node_modules/normalize-range/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) James Talmage (github.com/jamestalmage) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/normalize-range/package.json b/node_modules/normalize-range/package.json new file mode 100644 index 0000000..b98035a --- /dev/null +++ b/node_modules/normalize-range/package.json @@ -0,0 +1,46 @@ +{ + "name": "normalize-range", + "version": "0.1.2", + "description": "Utility for normalizing a numeric range, with a wrapping function useful for polar coordinates", + "license": "MIT", + "repository": "jamestalmage/normalize-range", + "author": { + "name": "James Talmage", + "email": "james@talmage.io", + "url": "github.com/jamestalmage" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "npm run cover && npm run lint && npm run style", + "cover": "istanbul cover ./node_modules/.bin/_mocha", + "lint": "jshint --reporter=node_modules/jshint-stylish *.js test/*.js", + "debug": "mocha", + "watch": "mocha -w", + "style": "jscs *.js ./**/*.js && jscs ./test/** --config=./test/.jscsrc" + }, + "files": [ + "index.js" + ], + "keywords": [ + "range", + "normalize", + "utility", + "angle", + "degrees", + "polar" + ], + "dependencies": {}, + "devDependencies": { + "almost-equal": "^1.0.0", + "codeclimate-test-reporter": "^0.1.0", + "coveralls": "^2.11.2", + "istanbul": "^0.3.17", + "jscs": "^2.1.1", + "jshint": "^2.8.0", + "jshint-stylish": "^2.0.1", + "mocha": "^2.2.5", + "stringify-pi": "0.0.3" + } +} diff --git a/node_modules/normalize-range/readme.md b/node_modules/normalize-range/readme.md new file mode 100644 index 0000000..29d84cd --- /dev/null +++ b/node_modules/normalize-range/readme.md @@ -0,0 +1,148 @@ +# normalize-range + +Utility for normalizing a numeric range, with a wrapping function useful for polar coordinates. + +[![Build Status](https://travis-ci.org/jamestalmage/normalize-range.svg?branch=master)](https://travis-ci.org/jamestalmage/normalize-range) +[![Coverage Status](https://coveralls.io/repos/jamestalmage/normalize-range/badge.svg?branch=master&service=github)](https://coveralls.io/github/jamestalmage/normalize-range?branch=master) +[![Code Climate](https://codeclimate.com/github/jamestalmage/normalize-range/badges/gpa.svg)](https://codeclimate.com/github/jamestalmage/normalize-range) +[![Dependency Status](https://david-dm.org/jamestalmage/normalize-range.svg)](https://david-dm.org/jamestalmage/normalize-range) +[![devDependency Status](https://david-dm.org/jamestalmage/normalize-range/dev-status.svg)](https://david-dm.org/jamestalmage/normalize-range#info=devDependencies) + +[![NPM](https://nodei.co/npm/normalize-range.png)](https://nodei.co/npm/normalize-range/) + +## Usage + +```js +var nr = require('normalize-range'); + +nr.wrap(0, 360, 400); +//=> 40 + +nr.wrap(0, 360, -90); +//=> 270 + +nr.limit(0, 100, 500); +//=> 100 + +nr.limit(0, 100, -20); +//=> 0 + +// There is a convenient currying function +var wrapAngle = nr.curry(0, 360).wrap; +var limitTo10 = nr.curry(0, 10).limit; + +wrapAngle(-30); +//=> 330 +``` +## API + +### wrap(min, max, value) + +Normalizes a values that "wraps around". For example, in a polar coordinate system, 270˚ can also be +represented as -90˚. +For wrapping purposes we assume `max` is functionally equivalent to `min`, and that `wrap(max + 1) === wrap(min + 1)`. +Wrap always assumes that `min` is *inclusive*, and `max` is *exclusive*. +In other words, if `value === max` the function will wrap it, and return `min`, but `min` will not be wrapped. + +```js +nr.wrap(0, 360, 0) === 0; +nr.wrap(0, 360, 360) === 0; +nr.wrap(0, 360, 361) === 1; +nr.wrap(0, 360, -1) === 359; +``` + +You are not restricted to whole numbers, and ranges can be negative. + +```js +var π = Math.PI; +var radianRange = nr.curry(-π, π); + +redianRange.wrap(0) === 0; +nr.wrap(π) === -π; +nr.wrap(4 * π / 3) === -2 * π / 3; +``` + +### limit(min, max, value) + +Normalize the value by bringing it within the range. +If `value` is greater than `max`, `max` will be returned. +If `value` is less than `min`, `min` will be returned. +Otherwise, `value` is returned unaltered. +Both ends of this range are *inclusive*. + +### test(min, max, value, [minExclusive], [maxExclusive]) + +Returns `true` if `value` is within the range, `false` otherwise. +It defaults to `inclusive` on both ends of the range, but that can be +changed by setting `minExclusive` and/or `maxExclusive` to a truthy value. + +### validate(min, max, value, [minExclusive], [maxExclusive]) + +Returns `value` or throws an error if `value` is outside the specified range. + +### name(min, max, value, [minExclusive], [maxExclusive]) + +Returns a string representing this range in +[range notation](https://en.wikipedia.org/wiki/Interval_(mathematics)#Classification_of_intervals). + +### curry(min, max, [minExclusive], [maxExclusive]) + +Convenience method for currying all method arguments except `value`. + +```js +var angle = require('normalize-range').curry(-180, 180, false, true); + +angle.wrap(270) +//=> -90 + +angle.limit(200) +//=> 180 + +angle.test(0) +//=> true + +angle.validate(300) +//=> throws an Error + +angle.toString() // or angle.name() +//=> "[-180,180)" +``` + +#### min + +*Required* +Type: `number` + +The minimum value (inclusive) of the range. + +#### max + +*Required* +Type: `number` + +The maximum value (exclusive) of the range. + +#### value + +*Required* +Type: `number` + +The value to be normalized. + +#### returns + +Type: `number` + +The normalized value. + +## Building and Releasing + +- `npm test`: tests, linting, coverage and style checks. +- `npm run watch`: autotest mode for active development. +- `npm run debug`: run tests without coverage (istanbul can obscure line #'s) + +Release via `cut-release` tool. + +## License + +MIT © [James Talmage](http://github.com/jamestalmage) diff --git a/node_modules/path-type/index.d.ts b/node_modules/path-type/index.d.ts new file mode 100644 index 0000000..910a50a --- /dev/null +++ b/node_modules/path-type/index.d.ts @@ -0,0 +1,51 @@ +export type PathTypeFunction = (path: string) => Promise; + +/** + * Check whether the passed `path` is a file. + * + * @param path - The path to check. + * @returns Whether the `path` is a file. + */ +export const isFile: PathTypeFunction; + +/** + * Check whether the passed `path` is a directory. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isDirectory: PathTypeFunction; + +/** + * Check whether the passed `path` is a symlink. + * + * @param path - The path to check. + * @returns Whether the `path` is a symlink. + */ +export const isSymlink: PathTypeFunction; + +export type PathTypeSyncFunction = (path: string) => boolean; + +/** + * Synchronously check whether the passed `path` is a file. + * + * @param path - The path to check. + * @returns Whether the `path` is a file. + */ +export const isFileSync: PathTypeSyncFunction; + +/** + * Synchronously check whether the passed `path` is a directory. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isDirectorySync: PathTypeSyncFunction; + +/** + * Synchronously check whether the passed `path` is a symlink. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isSymlinkSync: PathTypeSyncFunction; diff --git a/node_modules/path-type/index.js b/node_modules/path-type/index.js new file mode 100644 index 0000000..b8f34b2 --- /dev/null +++ b/node_modules/path-type/index.js @@ -0,0 +1,43 @@ +'use strict'; +const {promisify} = require('util'); +const fs = require('fs'); + +async function isType(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + + try { + const stats = await promisify(fs[fsStatType])(filePath); + return stats[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } +} + +function isTypeSync(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + + try { + return fs[fsStatType](filePath)[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } +} + +exports.isFile = isType.bind(null, 'stat', 'isFile'); +exports.isDirectory = isType.bind(null, 'stat', 'isDirectory'); +exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); +exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); +exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); +exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); diff --git a/node_modules/path-type/license b/node_modules/path-type/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/path-type/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/path-type/package.json b/node_modules/path-type/package.json new file mode 100644 index 0000000..635b711 --- /dev/null +++ b/node_modules/path-type/package.json @@ -0,0 +1,45 @@ +{ + "name": "path-type", + "version": "4.0.0", + "description": "Check if a path is a file, directory, or symlink", + "license": "MIT", + "repository": "sindresorhus/path-type", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && nyc ava && tsd-check" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "fs", + "type", + "is", + "check", + "directory", + "dir", + "file", + "filepath", + "symlink", + "symbolic", + "link", + "stat", + "stats", + "filesystem" + ], + "devDependencies": { + "ava": "^1.3.1", + "nyc": "^13.3.0", + "tsd-check": "^0.3.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/path-type/readme.md b/node_modules/path-type/readme.md new file mode 100644 index 0000000..4c972fa --- /dev/null +++ b/node_modules/path-type/readme.md @@ -0,0 +1,72 @@ +# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type) + +> Check if a path is a file, directory, or symlink + + +## Install + +``` +$ npm install path-type +``` + + +## Usage + +```js +const {isFile} = require('path-type'); + +(async () => { + console.log(await isFile('package.json')); + //=> true +})(); +``` + + +## API + +### isFile(path) + +Check whether the passed `path` is a file. + +Returns a `Promise`. + +#### path + +Type: `string` + +The path to check. + +### isDirectory(path) + +Check whether the passed `path` is a directory. + +Returns a `Promise`. + +### isSymlink(path) + +Check whether the passed `path` is a symlink. + +Returns a `Promise`. + +### isFileSync(path) + +Synchronously check whether the passed `path` is a file. + +Returns a `boolean`. + +### isDirectorySync(path) + +Synchronously check whether the passed `path` is a directory. + +Returns a `boolean`. + +### isSymlinkSync(path) + +Synchronously check whether the passed `path` is a symlink. + +Returns a `boolean`. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/picocolors/LICENSE b/node_modules/picocolors/LICENSE new file mode 100644 index 0000000..496098c --- /dev/null +++ b/node_modules/picocolors/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/picocolors/README.md b/node_modules/picocolors/README.md new file mode 100644 index 0000000..8e47aa8 --- /dev/null +++ b/node_modules/picocolors/README.md @@ -0,0 +1,21 @@ +# picocolors + +The tiniest and the fastest library for terminal output formatting with ANSI colors. + +```javascript +import pc from "picocolors" + +console.log( + pc.green(`How are ${pc.italic(`you`)} doing?`) +) +``` + +- **No dependencies.** +- **14 times** smaller and **2 times** faster than chalk. +- Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist. +- Node.js v6+ & browsers support. Support for both CJS and ESM projects. +- TypeScript type declarations included. +- [`NO_COLOR`](https://no-color.org/) friendly. + +## Docs +Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub. diff --git a/node_modules/picocolors/package.json b/node_modules/picocolors/package.json new file mode 100644 index 0000000..85a12d5 --- /dev/null +++ b/node_modules/picocolors/package.json @@ -0,0 +1,25 @@ +{ + "name": "picocolors", + "version": "1.0.0", + "main": "./picocolors.js", + "types": "./picocolors.d.ts", + "browser": { + "./picocolors.js": "./picocolors.browser.js" + }, + "sideEffects": false, + "description": "The tiniest and the fastest library for terminal output formatting with ANSI colors", + "files": [ + "picocolors.*", + "types.ts" + ], + "keywords": [ + "terminal", + "colors", + "formatting", + "cli", + "console" + ], + "author": "Alexey Raspopov", + "repository": "alexeyraspopov/picocolors", + "license": "ISC" +} diff --git a/node_modules/picocolors/picocolors.browser.js b/node_modules/picocolors/picocolors.browser.js new file mode 100644 index 0000000..5eb9fbe --- /dev/null +++ b/node_modules/picocolors/picocolors.browser.js @@ -0,0 +1,4 @@ +var x=String; +var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}}; +module.exports=create(); +module.exports.createColors = create; diff --git a/node_modules/picocolors/picocolors.d.ts b/node_modules/picocolors/picocolors.d.ts new file mode 100644 index 0000000..94e146a --- /dev/null +++ b/node_modules/picocolors/picocolors.d.ts @@ -0,0 +1,5 @@ +import { Colors } from "./types" + +declare const picocolors: Colors & { createColors: (enabled?: boolean) => Colors } + +export = picocolors diff --git a/node_modules/picocolors/picocolors.js b/node_modules/picocolors/picocolors.js new file mode 100644 index 0000000..fdb6304 --- /dev/null +++ b/node_modules/picocolors/picocolors.js @@ -0,0 +1,58 @@ +let tty = require("tty") + +let isColorSupported = + !("NO_COLOR" in process.env || process.argv.includes("--no-color")) && + ("FORCE_COLOR" in process.env || + process.argv.includes("--color") || + process.platform === "win32" || + (tty.isatty(1) && process.env.TERM !== "dumb") || + "CI" in process.env) + +let formatter = + (open, close, replace = open) => + input => { + let string = "" + input + let index = string.indexOf(close, open.length) + return ~index + ? open + replaceClose(string, close, replace, index) + close + : open + string + close + } + +let replaceClose = (string, close, replace, index) => { + let start = string.substring(0, index) + replace + let end = string.substring(index + close.length) + let nextIndex = end.indexOf(close) + return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end +} + +let createColors = (enabled = isColorSupported) => ({ + isColorSupported: enabled, + reset: enabled ? s => `\x1b[0m${s}\x1b[0m` : String, + bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String, + dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String, + italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String, + underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String, + inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String, + hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String, + strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String, + black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String, + red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String, + green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String, + yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String, + blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String, + magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String, + cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String, + white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String, + gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String, + bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String, + bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String, + bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String, + bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String, + bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String, + bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String, + bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String, + bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String, +}) + +module.exports = createColors() +module.exports.createColors = createColors diff --git a/node_modules/picocolors/types.ts b/node_modules/picocolors/types.ts new file mode 100644 index 0000000..b4bacee --- /dev/null +++ b/node_modules/picocolors/types.ts @@ -0,0 +1,30 @@ +export type Formatter = (input: string | number | null | undefined) => string + +export interface Colors { + isColorSupported: boolean + reset: Formatter + bold: Formatter + dim: Formatter + italic: Formatter + underline: Formatter + inverse: Formatter + hidden: Formatter + strikethrough: Formatter + black: Formatter + red: Formatter + green: Formatter + yellow: Formatter + blue: Formatter + magenta: Formatter + cyan: Formatter + white: Formatter + gray: Formatter + bgBlack: Formatter + bgRed: Formatter + bgGreen: Formatter + bgYellow: Formatter + bgBlue: Formatter + bgMagenta: Formatter + bgCyan: Formatter + bgWhite: Formatter +} diff --git a/node_modules/picomatch/CHANGELOG.md b/node_modules/picomatch/CHANGELOG.md new file mode 100644 index 0000000..8ccc6c1 --- /dev/null +++ b/node_modules/picomatch/CHANGELOG.md @@ -0,0 +1,136 @@ +# Release history + +**All notable changes to this project will be documented in this file.** + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## 2.3.1 (2022-01-02) + +### Fixed + +* Fixes bug when a pattern containing an expression after the closing parenthesis (`/!(*.d).{ts,tsx}`) was incorrectly converted to regexp ([9f241ef](https://github.com/micromatch/picomatch/commit/9f241ef)). + +### Changed + +* Some documentation improvements ([f81d236](https://github.com/micromatch/picomatch/commit/f81d236), [421e0e7](https://github.com/micromatch/picomatch/commit/421e0e7)). + +## 2.3.0 (2021-05-21) + +### Fixed + +* Fixes bug where file names with two dots were not being matched consistently with negation extglobs containing a star ([56083ef](https://github.com/micromatch/picomatch/commit/56083ef)) + +## 2.2.3 (2021-04-10) + +### Fixed + +* Do not skip pattern seperator for square brackets ([fb08a30](https://github.com/micromatch/picomatch/commit/fb08a30)). +* Set negatedExtGlob also if it does not span the whole pattern ([032e3f5](https://github.com/micromatch/picomatch/commit/032e3f5)). + +## 2.2.2 (2020-03-21) + +### Fixed + +* Correctly handle parts of the pattern after parentheses in the `scan` method ([e15b920](https://github.com/micromatch/picomatch/commit/e15b920)). + +## 2.2.1 (2020-01-04) + +* Fixes [#49](https://github.com/micromatch/picomatch/issues/49), so that braces with no sets or ranges are now propertly treated as literals. + +## 2.2.0 (2020-01-04) + +* Disable fastpaths mode for the parse method ([5b8d33f](https://github.com/micromatch/picomatch/commit/5b8d33f)) +* Add `tokens`, `slashes`, and `parts` to the object returned by `picomatch.scan()`. + +## 2.1.0 (2019-10-31) + +* add benchmarks for scan ([4793b92](https://github.com/micromatch/picomatch/commit/4793b92)) +* Add eslint object-curly-spacing rule ([707c650](https://github.com/micromatch/picomatch/commit/707c650)) +* Add prefer-const eslint rule ([5c7501c](https://github.com/micromatch/picomatch/commit/5c7501c)) +* Add support for nonegate in scan API ([275c9b9](https://github.com/micromatch/picomatch/commit/275c9b9)) +* Change lets to consts. Move root import up. ([4840625](https://github.com/micromatch/picomatch/commit/4840625)) +* closes https://github.com/micromatch/picomatch/issues/21 ([766bcb0](https://github.com/micromatch/picomatch/commit/766bcb0)) +* Fix "Extglobs" table in readme ([eb19da8](https://github.com/micromatch/picomatch/commit/eb19da8)) +* fixes https://github.com/micromatch/picomatch/issues/20 ([9caca07](https://github.com/micromatch/picomatch/commit/9caca07)) +* fixes https://github.com/micromatch/picomatch/issues/26 ([fa58f45](https://github.com/micromatch/picomatch/commit/fa58f45)) +* Lint test ([d433a34](https://github.com/micromatch/picomatch/commit/d433a34)) +* lint unit tests ([0159b55](https://github.com/micromatch/picomatch/commit/0159b55)) +* Make scan work with noext ([6c02e03](https://github.com/micromatch/picomatch/commit/6c02e03)) +* minor linting ([c2a2b87](https://github.com/micromatch/picomatch/commit/c2a2b87)) +* minor parser improvements ([197671d](https://github.com/micromatch/picomatch/commit/197671d)) +* remove eslint since it... ([07876fa](https://github.com/micromatch/picomatch/commit/07876fa)) +* remove funding file ([8ebe96d](https://github.com/micromatch/picomatch/commit/8ebe96d)) +* Remove unused funks ([cbc6d54](https://github.com/micromatch/picomatch/commit/cbc6d54)) +* Run eslint during pretest, fix existing eslint findings ([0682367](https://github.com/micromatch/picomatch/commit/0682367)) +* support `noparen` in scan ([3d37569](https://github.com/micromatch/picomatch/commit/3d37569)) +* update changelog ([7b34e77](https://github.com/micromatch/picomatch/commit/7b34e77)) +* update travis ([777f038](https://github.com/micromatch/picomatch/commit/777f038)) +* Use eslint-disable-next-line instead of eslint-disable ([4e7c1fd](https://github.com/micromatch/picomatch/commit/4e7c1fd)) + +## 2.0.7 (2019-05-14) + +* 2.0.7 ([9eb9a71](https://github.com/micromatch/picomatch/commit/9eb9a71)) +* supports lookbehinds ([1f63f7e](https://github.com/micromatch/picomatch/commit/1f63f7e)) +* update .verb.md file with typo change ([2741279](https://github.com/micromatch/picomatch/commit/2741279)) +* fix: typo in README ([0753e44](https://github.com/micromatch/picomatch/commit/0753e44)) + +## 2.0.4 (2019-04-10) + +### Fixed + +- Readme link [fixed](https://github.com/micromatch/picomatch/pull/13/commits/a96ab3aa2b11b6861c23289964613d85563b05df) by @danez. +- `options.capture` now works as expected when fastpaths are enabled. See https://github.com/micromatch/picomatch/pull/12/commits/26aefd71f1cfaf95c37f1c1fcab68a693b037304. Thanks to @DrPizza. + +## 2.0.0 (2019-04-10) + +### Added + +- Adds support for `options.onIgnore`. See the readme for details +- Adds support for `options.onResult`. See the readme for details + +### Breaking changes + +- The unixify option was renamed to `windows` +- caching and all related options and methods have been removed + +## 1.0.0 (2018-11-05) + +- adds `.onMatch` option +- improvements to `.scan` method +- numerous improvements and optimizations for matching and parsing +- better windows path handling + +## 0.1.0 - 2017-04-13 + +First release. + + +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog diff --git a/node_modules/picomatch/LICENSE b/node_modules/picomatch/LICENSE new file mode 100644 index 0000000..3608dca --- /dev/null +++ b/node_modules/picomatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/picomatch/README.md b/node_modules/picomatch/README.md new file mode 100644 index 0000000..b0526e2 --- /dev/null +++ b/node_modules/picomatch/README.md @@ -0,0 +1,708 @@ +

Picomatch

+ +

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

+ +
+
+ +

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

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

PostCSS CLI

+
+ +

Install

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

Usage

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

Load Config

+
+ +

Install

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

Usage

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

Options

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

Plugins

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

Context

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

Examples

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

Maintainers

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

Contributors

+ + + + + + + + + + +
+ +
+ Ryan Dunckel +
+ +
+ Patrick Gilday +
+ +
+ Dalton Santos +
+ +
+ François Wouts +
+ + +[npm]: https://img.shields.io/npm/v/postcss-load-config.svg +[npm-url]: https://npmjs.com/package/postcss-load-config + +[node]: https://img.shields.io/node/v/postcss-load-plugins.svg +[node-url]: https://nodejs.org/ + +[deps]: https://david-dm.org/michael-ciniawsky/postcss-load-config.svg +[deps-url]: https://david-dm.org/michael-ciniawsky/postcss-load-config + +[test]: http://img.shields.io/travis/michael-ciniawsky/postcss-load-config.svg +[test-url]: https://travis-ci.org/michael-ciniawsky/postcss-load-config + +[cover]: https://coveralls.io/repos/github/michael-ciniawsky/postcss-load-config/badge.svg +[cover-url]: https://coveralls.io/github/michael-ciniawsky/postcss-load-config + +[style]: https://img.shields.io/badge/code%20style-standard-yellow.svg +[style-url]: http://standardjs.com/ + +[chat]: https://img.shields.io/gitter/room/postcss/postcss.svg +[chat-url]: https://gitter.im/postcss/postcss + +## Security Contact + +To report a security vulnerability, please use the [Tidelift security contact]. +Tidelift will coordinate the fix and disclosure. + +[Tidelift security contact]: https://tidelift.com/security diff --git a/node_modules/postcss-load-config/package.json b/node_modules/postcss-load-config/package.json new file mode 100644 index 0000000..01f611b --- /dev/null +++ b/node_modules/postcss-load-config/package.json @@ -0,0 +1,48 @@ +{ + "name": "postcss-load-config", + "version": "3.1.4", + "description": "Autoload Config for PostCSS", + "main": "src/index.js", + "types": "src/index.d.ts", + "files": [ + "src" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "postcss": { + "optional": true + } + }, + "keywords": [ + "postcss", + "postcssrc", + "postcss.config.js" + ], + "author": "Michael Ciniawky ", + "contributors": [ + "Ryan Dunckel", + "Mateusz Derks", + "Dalton Santos", + "Patrick Gilday", + "François Wouts" + ], + "repository": "postcss/postcss-load-config", + "license": "MIT" +} diff --git a/node_modules/postcss-load-config/src/index.d.ts b/node_modules/postcss-load-config/src/index.d.ts new file mode 100644 index 0000000..c2c4cfe --- /dev/null +++ b/node_modules/postcss-load-config/src/index.d.ts @@ -0,0 +1,71 @@ +// based on @types/postcss-load-config@2.0.1 +// Type definitions for postcss-load-config 2.1 +import Processor from 'postcss/lib/processor'; +import { Plugin, ProcessOptions, Transformer } from 'postcss'; +import { Options as ConfigOptions } from "lilconfig"; + +declare function postcssrc( + ctx?: postcssrc.ConfigContext, + path?: string, + options?: ConfigOptions +): Promise; + +declare namespace postcssrc { + function sync( + ctx?: ConfigContext, + path?: string, + options?: ConfigOptions + ): Result; + + // In the ConfigContext, these three options can be instances of the + // appropriate class, or strings. If they are strings, postcss-load-config will + // require() them and pass the instances along. + export interface ProcessOptionsPreload { + parser?: string | ProcessOptions['parser']; + stringifier?: string | ProcessOptions['stringifier']; + syntax?: string | ProcessOptions['syntax']; + } + + // The remaining ProcessOptions, sans the three above. + export type RemainingProcessOptions = Pick< + ProcessOptions, + Exclude + >; + + // Additional context options that postcss-load-config understands. + export interface Context { + cwd?: string; + env?: string; + } + + // The full shape of the ConfigContext. + export type ConfigContext = Context & + ProcessOptionsPreload & + RemainingProcessOptions; + + // Result of postcssrc is a Promise containing the filename plus the options + // and plugins that are ready to pass on to postcss. + export type ResultPlugin = Plugin | Transformer | Processor; + + export interface Result { + file: string; + options: ProcessOptions; + plugins: ResultPlugin[]; + } + + export type ConfigPlugin = Transformer | Plugin | Processor; + + export interface Config { + parser?: string | ProcessOptions['parser'] | false; + stringifier?: string | ProcessOptions['stringifier'] | false; + syntax?: string | ProcessOptions['syntax'] | false; + map?: string | false; + from?: string; + to?: string; + plugins?: Array | Record; + } + + export type ConfigFn = (ctx: ConfigContext) => Config | Promise; +} + +export = postcssrc; diff --git a/node_modules/postcss-load-config/src/index.js b/node_modules/postcss-load-config/src/index.js new file mode 100644 index 0000000..db5c40e --- /dev/null +++ b/node_modules/postcss-load-config/src/index.js @@ -0,0 +1,188 @@ +'use strict' + +const resolve = require('path').resolve + +const config = require('lilconfig') +const yaml = require('yaml') + +const loadOptions = require('./options.js') +const loadPlugins = require('./plugins.js') + +/* istanbul ignore next */ +const interopRequireDefault = (obj) => obj && obj.__esModule ? obj : { default: obj } + +/** + * Process the result from cosmiconfig + * + * @param {Object} ctx Config Context + * @param {Object} result Cosmiconfig result + * + * @return {Object} PostCSS Config + */ +const processResult = (ctx, result) => { + const file = result.filepath || '' + let config = interopRequireDefault(result.config).default || {} + + if (typeof config === 'function') { + config = config(ctx) + } else { + config = Object.assign({}, config, ctx) + } + + if (!config.plugins) { + config.plugins = [] + } + + return { + plugins: loadPlugins(config, file), + options: loadOptions(config, file), + file: file + } +} + +/** + * Builds the Config Context + * + * @param {Object} ctx Config Context + * + * @return {Object} Config Context + */ +const createContext = (ctx) => { + /** + * @type {Object} + * + * @prop {String} cwd=process.cwd() Config search start location + * @prop {String} env=process.env.NODE_ENV Config Enviroment, will be set to `development` by `postcss-load-config` if `process.env.NODE_ENV` is `undefined` + */ + ctx = Object.assign({ + cwd: process.cwd(), + env: process.env.NODE_ENV + }, ctx) + + if (!ctx.env) { + process.env.NODE_ENV = 'development' + } + + return ctx +} + +const addTypeScriptLoader = (options = {}, loader) => { + const moduleName = 'postcss' + + return { + ...options, + searchPlaces: [ + ...(options.searchPlaces || []), + 'package.json', + `.${moduleName}rc`, + `.${moduleName}rc.json`, + `.${moduleName}rc.yaml`, + `.${moduleName}rc.yml`, + `.${moduleName}rc.ts`, + `.${moduleName}rc.js`, + `.${moduleName}rc.cjs`, + `${moduleName}.config.ts`, + `${moduleName}.config.js`, + `${moduleName}.config.cjs` + ], + loaders: { + ...options.loaders, + '.yaml': (filepath, content) => yaml.parse(content), + '.yml': (filepath, content) => yaml.parse(content), + '.ts': loader + } + } +} + +const withTypeScriptLoader = (rcFunc) => { + return (ctx, path, options) => { + return rcFunc(ctx, path, addTypeScriptLoader(options, (configFile) => { + let registerer = { enabled () {} } + + try { + // Register TypeScript compiler instance + registerer = require('ts-node').register() + + return require(configFile) + } catch (err) { + if (err.code === 'MODULE_NOT_FOUND') { + throw new Error( + `'ts-node' is required for the TypeScript configuration files. Make sure it is installed\nError: ${err.message}` + ) + } + + throw err + } finally { + registerer.enabled(false) + } + })) + } +} + +/** + * Load Config + * + * @method rc + * + * @param {Object} ctx Config Context + * @param {String} path Config Path + * @param {Object} options Config Options + * + * @return {Promise} config PostCSS Config + */ +const rc = withTypeScriptLoader((ctx, path, options) => { + /** + * @type {Object} The full Config Context + */ + ctx = createContext(ctx) + + /** + * @type {String} `process.cwd()` + */ + path = path ? resolve(path) : process.cwd() + + return config.lilconfig('postcss', options) + .search(path) + .then((result) => { + if (!result) { + throw new Error(`No PostCSS Config found in: ${path}`) + } + + return processResult(ctx, result) + }) +}) + +rc.sync = withTypeScriptLoader((ctx, path, options) => { + /** + * @type {Object} The full Config Context + */ + ctx = createContext(ctx) + + /** + * @type {String} `process.cwd()` + */ + path = path ? resolve(path) : process.cwd() + + const result = config.lilconfigSync('postcss', options).search(path) + + if (!result) { + throw new Error(`No PostCSS Config found in: ${path}`) + } + + return processResult(ctx, result) +}) + +/** + * Autoload Config for PostCSS + * + * @author Michael Ciniawsky @michael-ciniawsky + * @license MIT + * + * @module postcss-load-config + * @version 2.1.0 + * + * @requires comsiconfig + * @requires ./options + * @requires ./plugins + */ +module.exports = rc diff --git a/node_modules/postcss-load-config/src/options.js b/node_modules/postcss-load-config/src/options.js new file mode 100644 index 0000000..d3ef2d6 --- /dev/null +++ b/node_modules/postcss-load-config/src/options.js @@ -0,0 +1,47 @@ +'use strict' + +const req = require('./req.js') + +/** + * Load Options + * + * @private + * @method options + * + * @param {Object} config PostCSS Config + * + * @return {Object} options PostCSS Options + */ +const options = (config, file) => { + if (config.parser && typeof config.parser === 'string') { + try { + config.parser = req(config.parser, file) + } catch (err) { + throw new Error(`Loading PostCSS Parser failed: ${err.message}\n\n(@${file})`) + } + } + + if (config.syntax && typeof config.syntax === 'string') { + try { + config.syntax = req(config.syntax, file) + } catch (err) { + throw new Error(`Loading PostCSS Syntax failed: ${err.message}\n\n(@${file})`) + } + } + + if (config.stringifier && typeof config.stringifier === 'string') { + try { + config.stringifier = req(config.stringifier, file) + } catch (err) { + throw new Error(`Loading PostCSS Stringifier failed: ${err.message}\n\n(@${file})`) + } + } + + if (config.plugins) { + delete config.plugins + } + + return config +} + +module.exports = options diff --git a/node_modules/postcss-load-config/src/plugins.js b/node_modules/postcss-load-config/src/plugins.js new file mode 100644 index 0000000..6cb994b --- /dev/null +++ b/node_modules/postcss-load-config/src/plugins.js @@ -0,0 +1,85 @@ +'use strict' + +const req = require('./req.js') + +/** + * Plugin Loader + * + * @private + * @method load + * + * @param {String} plugin PostCSS Plugin Name + * @param {Object} options PostCSS Plugin Options + * + * @return {Function} PostCSS Plugin + */ +const load = (plugin, options, file) => { + try { + if ( + options === null || + options === undefined || + Object.keys(options).length === 0 + ) { + return req(plugin, file) + } else { + return req(plugin, file)(options) + } + } catch (err) { + throw new Error(`Loading PostCSS Plugin failed: ${err.message}\n\n(@${file})`) + } +} + +/** + * Load Plugins + * + * @private + * @method plugins + * + * @param {Object} config PostCSS Config Plugins + * + * @return {Array} plugins PostCSS Plugins + */ +const plugins = (config, file) => { + let plugins = [] + + if (Array.isArray(config.plugins)) { + plugins = config.plugins.filter(Boolean) + } else { + plugins = Object.keys(config.plugins) + .filter((plugin) => { + return config.plugins[plugin] !== false ? plugin : '' + }) + .map((plugin) => { + return load(plugin, config.plugins[plugin], file) + }) + } + + if (plugins.length && plugins.length > 0) { + plugins.forEach((plugin, i) => { + if (plugin.default) { + plugin = plugin.default + } + + if (plugin.postcss === true) { + plugin = plugin() + } else if (plugin.postcss) { + plugin = plugin.postcss + } + + if ( + // eslint-disable-next-line + !( + (typeof plugin === 'object' && Array.isArray(plugin.plugins)) || + (typeof plugin === 'object' && plugin.postcssPlugin) || + (typeof plugin === 'function') + ) + ) { + throw new TypeError(`Invalid PostCSS Plugin found at: plugins[${i}]\n\n(@${file})`) + } + }) + } + + return plugins +} + +module.exports = plugins diff --git a/node_modules/postcss-load-config/src/req.js b/node_modules/postcss-load-config/src/req.js new file mode 100644 index 0000000..ad6a332 --- /dev/null +++ b/node_modules/postcss-load-config/src/req.js @@ -0,0 +1,10 @@ +// eslint-disable-next-line node/no-deprecated-api +const { createRequire, createRequireFromPath } = require('module') + +function req (name, rootFile) { + const create = createRequire || createRequireFromPath + const require = create(rootFile) + return require(name) +} + +module.exports = req diff --git a/node_modules/postcss-reporter/LICENSE b/node_modules/postcss-reporter/LICENSE new file mode 100644 index 0000000..6d347c0 --- /dev/null +++ b/node_modules/postcss-reporter/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 David Clark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/postcss-reporter/README.md b/node_modules/postcss-reporter/README.md new file mode 100644 index 0000000..ca6c43b --- /dev/null +++ b/node_modules/postcss-reporter/README.md @@ -0,0 +1,12 @@ +# postcss-reporter + +A PostCSS plugin to `console.log()` the messages (warnings, etc.) registered by other PostCSS plugins. + +--- + +**SEEKING A NEW MAINTAINER!** Interested in contributing to the ecosystem of PostCSS and Stylelint? Please open an issue if you'd like to take over maintenance of this package. + +--- + +## Docs +Read **[full docs](https://github.com/postcss/postcss-reporter#readme)** on GitHub. diff --git a/node_modules/postcss-reporter/index.js b/node_modules/postcss-reporter/index.js new file mode 100644 index 0000000..01116aa --- /dev/null +++ b/node_modules/postcss-reporter/index.js @@ -0,0 +1,4 @@ +var reporter = require('./lib/reporter'); + +module.exports = reporter; +module.exports.postcss = true; diff --git a/node_modules/postcss-reporter/lib/formatter.js b/node_modules/postcss-reporter/lib/formatter.js new file mode 100644 index 0000000..7358cc6 --- /dev/null +++ b/node_modules/postcss-reporter/lib/formatter.js @@ -0,0 +1,95 @@ +var pico = require('picocolors'); +var path = require('path'); +var firstBy = require('thenby'); +var util = require('./util'); + +var supportsLargeCharset = + process.platform !== 'win32' || + process.env.CI || + process.env.TERM === 'xterm-256color'; +var warningSymbol = supportsLargeCharset ? '⚠' : '!!'; + +function createSortFunction(positionless, sortByPosition) { + var positionValue = 0 + + if (positionless === 'any') { positionValue = 1; } + if (positionless === 'first') { positionValue = 2; } + if (positionless === 'last') { positionValue = 0; } + + var sortFunction = firstBy((m) => { + if (!m.line) return 1; + return positionValue; + }) + + if (sortByPosition) { + sortFunction = sortFunction.thenBy('line').thenBy('column'); + } + + return sortFunction; +} + +module.exports = function (opts) { + var options = opts || {}; + var sortByPosition = + typeof options.sortByPosition !== 'undefined' + ? options.sortByPosition + : true; + var positionless = options.positionless || 'first'; + + var sortFunction = createSortFunction(positionless, sortByPosition); + + return function (input) { + var messages = input.messages.filter(function (message) { + return typeof message.text === 'string'; + }); + var source = input.source; + + if (!messages.length) return ''; + + var orderedMessages = messages.sort(sortFunction); + + var output = '\n'; + + if (source) { + output += pico.bold(pico.underline(logFrom(source))) + '\n'; + } + + orderedMessages.forEach(function (w) { + output += messageToString(w) + '\n'; + }); + + return output; + + function messageToString(message) { + var location = util.getLocation(message); + var str = ''; + + if (location.line) { + str += pico.bold(location.line); + } + + if (location.column) { + str += pico.bold(':' + location.column); + } + + if (location.line || location.column) { + str += '\t'; + } + + if (!options.noIcon && message.type === 'warning') { + str += pico.yellow(warningSymbol + ' '); + } + + str += message.text; + if (!options.noPlugin) { + str += pico.yellow(' [' + message.plugin + ']'); + } + return str; + } + + function logFrom(fromValue) { + if (fromValue.charAt(0) === '<') return fromValue; + return path.relative(process.cwd(), fromValue).split(path.sep).join('/'); + } + }; +}; diff --git a/node_modules/postcss-reporter/lib/reporter.js b/node_modules/postcss-reporter/lib/reporter.js new file mode 100644 index 0000000..71872a9 --- /dev/null +++ b/node_modules/postcss-reporter/lib/reporter.js @@ -0,0 +1,101 @@ +var defaultFormatter = require('./formatter'); +var pico = require('picocolors'); +var util = require('./util'); + +module.exports = function (opts = {}) { + var formatter = + opts.formatter || + defaultFormatter({ + noIcon: opts.noIcon, + noPlugin: opts.noPlugin, + }); + + var pluginFilter; + if (!opts.plugins) { + // Every plugin + pluginFilter = function () { + return true; + }; + } else if ( + opts.plugins.every(function (plugin) { + return plugin[0] === '!'; + }) + ) { + // Deny list + pluginFilter = function (message) { + return opts.plugins.indexOf('!' + message.plugin) === -1; + }; + } else { + // Allow list + pluginFilter = function (message) { + return opts.plugins.indexOf(message.plugin) !== -1; + }; + } + + var messageFilter = opts.filter || ((message) => message.type === 'warning'); + + return { + postcssPlugin: 'postcss-reporter', + OnceExit(css, { result }) { + var messagesToLog = result.messages + .filter(pluginFilter) + .filter(messageFilter); + + var resultSource = !result.root.source + ? '' + : result.root.source.input.file || result.root.source.input.id; + + var sourceGroupedMessages = messagesToLog.reduce((grouped, message) => { + const key = util.getLocation(message).file || resultSource; + + if (!grouped.hasOwnProperty(key)) { + grouped[key] = []; + } + + grouped[key].push(message); + + return grouped; + }, {}); + + var report = ''; + for (const source in sourceGroupedMessages) { + if (sourceGroupedMessages.hasOwnProperty(source)) { + report += formatter({ + messages: sourceGroupedMessages[source], + source: source, + }); + } + } + + if (opts.clearReportedMessages) { + result.messages = result.messages.filter(message => !messagesToLog.includes(message)); + } + + if (opts.clearAllMessages) { + var messagesToClear = result.messages.filter(pluginFilter); + result.messages = result.messages.filter(message => !messagesToClear.includes(message)); + } + + if (!report) return; + + console.log(report); + + if (opts.throwError && shouldThrowError()) { + throw new Error( + pico.red( + pico.bold('\n** postcss-reporter: warnings or errors were found **') + ) + ); + } + + function shouldThrowError() { + return ( + messagesToLog.length && + messagesToLog.some((message) => { + return message.type === 'warning' || message.type === 'error'; + }) + ); + } + }, + }; +}; diff --git a/node_modules/postcss-reporter/lib/util.js b/node_modules/postcss-reporter/lib/util.js new file mode 100644 index 0000000..094b3ac --- /dev/null +++ b/node_modules/postcss-reporter/lib/util.js @@ -0,0 +1,19 @@ +exports.getLocation = function (message) { + var messageNode = message.node; + + var location = { + line: message.line, + column: message.column, + }; + + var messageInput = messageNode && messageNode.source && messageNode.source.input; + + if (!messageInput) return location; + + var originLocation = + messageInput.origin && messageInput.origin(message.line, message.column); + if (originLocation) return originLocation; + + location.file = messageInput.file || messageInput.id; + return location; +}; diff --git a/node_modules/postcss-reporter/package.json b/node_modules/postcss-reporter/package.json new file mode 100644 index 0000000..15a9867 --- /dev/null +++ b/node_modules/postcss-reporter/package.json @@ -0,0 +1,31 @@ +{ + "name": "postcss-reporter", + "version": "7.0.5", + "description": "Log PostCSS messages in the console", + "main": "index.js", + "files": [ + "index.js", + "lib" + ], + "engines": { + "node": ">=10" + }, + "repository": "postcss/postcss-reporter", + "author": { + "name": "David Clark", + "email": "david.dave.clark@gmail.com", + "url": "https://davidtheclark.com" + }, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + }, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + } +} diff --git a/node_modules/postcss-value-parser/LICENSE b/node_modules/postcss-value-parser/LICENSE new file mode 100644 index 0000000..6dcaefc --- /dev/null +++ b/node_modules/postcss-value-parser/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/postcss-value-parser/README.md b/node_modules/postcss-value-parser/README.md new file mode 100644 index 0000000..3bd6a0d --- /dev/null +++ b/node_modules/postcss-value-parser/README.md @@ -0,0 +1,263 @@ +# postcss-value-parser + +[![Travis CI](https://travis-ci.org/TrySound/postcss-value-parser.svg)](https://travis-ci.org/TrySound/postcss-value-parser) + +Transforms CSS declaration values and at-rule parameters into a tree of nodes, and provides a simple traversal API. + +## Usage + +```js +var valueParser = require('postcss-value-parser'); +var cssBackgroundValue = 'url(foo.png) no-repeat 40px 73%'; +var parsedValue = valueParser(cssBackgroundValue); +// parsedValue exposes an API described below, +// e.g. parsedValue.walk(..), parsedValue.toString(), etc. +``` + +For example, parsing the value `rgba(233, 45, 66, .5)` will return the following: + +```js +{ + nodes: [ + { + type: 'function', + value: 'rgba', + before: '', + after: '', + nodes: [ + { type: 'word', value: '233' }, + { type: 'div', value: ',', before: '', after: ' ' }, + { type: 'word', value: '45' }, + { type: 'div', value: ',', before: '', after: ' ' }, + { type: 'word', value: '66' }, + { type: 'div', value: ',', before: ' ', after: '' }, + { type: 'word', value: '.5' } + ] + } + ] +} +``` + +If you wanted to convert each `rgba()` value in `sourceCSS` to a hex value, you could do so like this: + +```js +var valueParser = require('postcss-value-parser'); + +var parsed = valueParser(sourceCSS); + +// walk() will visit all the of the nodes in the tree, +// invoking the callback for each. +parsed.walk(function (node) { + + // Since we only want to transform rgba() values, + // we can ignore anything else. + if (node.type !== 'function' && node.value !== 'rgba') return; + + // We can make an array of the rgba() arguments to feed to a + // convertToHex() function + var color = node.nodes.filter(function (node) { + return node.type === 'word'; + }).map(function (node) { + return Number(node.value); + }); // [233, 45, 66, .5] + + // Now we will transform the existing rgba() function node + // into a word node with the hex value + node.type = 'word'; + node.value = convertToHex(color); +}) + +parsed.toString(); // #E92D42 +``` + +## Nodes + +Each node is an object with these common properties: + +- **type**: The type of node (`word`, `string`, `div`, `space`, `comment`, or `function`). + Each type is documented below. +- **value**: Each node has a `value` property; but what exactly `value` means + is specific to the node type. Details are documented for each type below. +- **sourceIndex**: The starting index of the node within the original source + string. For example, given the source string `10px 20px`, the `word` node + whose value is `20px` will have a `sourceIndex` of `5`. + +### word + +The catch-all node type that includes keywords (e.g. `no-repeat`), +quantities (e.g. `20px`, `75%`, `1.5`), and hex colors (e.g. `#e6e6e6`). + +Node-specific properties: + +- **value**: The "word" itself. + +### string + +A quoted string value, e.g. `"something"` in `content: "something";`. + +Node-specific properties: + +- **value**: The text content of the string. +- **quote**: The quotation mark surrounding the string, either `"` or `'`. +- **unclosed**: `true` if the string was not closed properly. e.g. `"unclosed string `. + +### div + +A divider, for example + +- `,` in `animation-duration: 1s, 2s, 3s` +- `/` in `border-radius: 10px / 23px` +- `:` in `(min-width: 700px)` + +Node-specific properties: + +- **value**: The divider character. Either `,`, `/`, or `:` (see examples above). +- **before**: Whitespace before the divider. +- **after**: Whitespace after the divider. + +### space + +Whitespace used as a separator, e.g. ` ` occurring twice in `border: 1px solid black;`. + +Node-specific properties: + +- **value**: The whitespace itself. + +### comment + +A CSS comment starts with `/*` and ends with `*/` + +Node-specific properties: + +- **value**: The comment value without `/*` and `*/` +- **unclosed**: `true` if the comment was not closed properly. e.g. `/* comment without an end `. + +### function + +A CSS function, e.g. `rgb(0,0,0)` or `url(foo.bar)`. + +Function nodes have nodes nested within them: the function arguments. + +Additional properties: + +- **value**: The name of the function, e.g. `rgb` in `rgb(0,0,0)`. +- **before**: Whitespace after the opening parenthesis and before the first argument, + e.g. ` ` in `rgb( 0,0,0)`. +- **after**: Whitespace before the closing parenthesis and after the last argument, + e.g. ` ` in `rgb(0,0,0 )`. +- **nodes**: More nodes representing the arguments to the function. +- **unclosed**: `true` if the parentheses was not closed properly. e.g. `( unclosed-function `. + +Media features surrounded by parentheses are considered functions with an +empty value. For example, `(min-width: 700px)` parses to these nodes: + +```js +[ + { + type: 'function', value: '', before: '', after: '', + nodes: [ + { type: 'word', value: 'min-width' }, + { type: 'div', value: ':', before: '', after: ' ' }, + { type: 'word', value: '700px' } + ] + } +] +``` + +`url()` functions can be parsed a little bit differently depending on +whether the first character in the argument is a quotation mark. + +`url( /gfx/img/bg.jpg )` parses to: + +```js +{ type: 'function', sourceIndex: 0, value: 'url', before: ' ', after: ' ', nodes: [ + { type: 'word', sourceIndex: 5, value: '/gfx/img/bg.jpg' } +] } +``` + +`url( "/gfx/img/bg.jpg" )`, on the other hand, parses to: + +```js +{ type: 'function', sourceIndex: 0, value: 'url', before: ' ', after: ' ', nodes: [ + type: 'string', sourceIndex: 5, quote: '"', value: '/gfx/img/bg.jpg' }, +] } +``` + +### unicode-range + +The unicode-range CSS descriptor sets the specific range of characters to be +used from a font defined by @font-face and made available +for use on the current page (`unicode-range: U+0025-00FF`). + +Node-specific properties: + +- **value**: The "unicode-range" itself. + +## API + +``` +var valueParser = require('postcss-value-parser'); +``` + +### valueParser.unit(quantity) + +Parses `quantity`, distinguishing the number from the unit. Returns an object like the following: + +```js +// Given 2rem +{ + number: '2', + unit: 'rem' +} +``` + +If the `quantity` argument cannot be parsed as a number, returns `false`. + +*This function does not parse complete values*: you cannot pass it `1px solid black` and expect `px` as +the unit. Instead, you should pass it single quantities only. Parse `1px solid black`, then pass it +the stringified `1px` node (a `word` node) to parse the number and unit. + +### valueParser.stringify(nodes[, custom]) + +Stringifies a node or array of nodes. + +The `custom` function is called for each `node`; return a string to override the default behaviour. + +### valueParser.walk(nodes, callback[, bubble]) + +Walks each provided node, recursively walking all descendent nodes within functions. + +Returning `false` in the `callback` will prevent traversal of descendent nodes (within functions). +You can use this feature to for shallow iteration, walking over only the *immediate* children. +*Note: This only applies if `bubble` is `false` (which is the default).* + +By default, the tree is walked from the outermost node inwards. +To reverse the direction, pass `true` for the `bubble` argument. + +The `callback` is invoked with three arguments: `callback(node, index, nodes)`. + +- `node`: The current node. +- `index`: The index of the current node. +- `nodes`: The complete nodes array passed to `walk()`. + +Returns the `valueParser` instance. + +### var parsed = valueParser(value) + +Returns the parsed node tree. + +### parsed.nodes + +The array of nodes. + +### parsed.toString() + +Stringifies the node tree. + +### parsed.walk(callback[, bubble]) + +Walks each node inside `parsed.nodes`. See the documentation for `valueParser.walk()` above. + +# License + +MIT © [Bogdan Chadkin](mailto:trysound@yandex.ru) diff --git a/node_modules/postcss-value-parser/lib/index.d.ts b/node_modules/postcss-value-parser/lib/index.d.ts new file mode 100644 index 0000000..8759f3f --- /dev/null +++ b/node_modules/postcss-value-parser/lib/index.d.ts @@ -0,0 +1,177 @@ +declare namespace postcssValueParser { + interface BaseNode { + /** + * The offset, inclusive, inside the CSS value at which the node starts. + */ + sourceIndex: number; + + /** + * The offset, exclusive, inside the CSS value at which the node ends. + */ + sourceEndIndex: number; + + /** + * The node's characteristic value + */ + value: string; + } + + interface ClosableNode { + /** + * Whether the parsed CSS value ended before the node was properly closed + */ + unclosed?: true; + } + + interface AdjacentAwareNode { + /** + * The token at the start of the node + */ + before: string; + + /** + * The token at the end of the node + */ + after: string; + } + + interface CommentNode extends BaseNode, ClosableNode { + type: "comment"; + } + + interface DivNode extends BaseNode, AdjacentAwareNode { + type: "div"; + } + + interface FunctionNode extends BaseNode, ClosableNode, AdjacentAwareNode { + type: "function"; + + /** + * Nodes inside the function + */ + nodes: Node[]; + } + + interface SpaceNode extends BaseNode { + type: "space"; + } + + interface StringNode extends BaseNode, ClosableNode { + type: "string"; + + /** + * The quote type delimiting the string + */ + quote: '"' | "'"; + } + + interface UnicodeRangeNode extends BaseNode { + type: "unicode-range"; + } + + interface WordNode extends BaseNode { + type: "word"; + } + + /** + * Any node parsed from a CSS value + */ + type Node = + | CommentNode + | DivNode + | FunctionNode + | SpaceNode + | StringNode + | UnicodeRangeNode + | WordNode; + + interface CustomStringifierCallback { + /** + * @param node The node to stringify + * @returns The serialized CSS representation of the node + */ + (nodes: Node): string | undefined; + } + + interface WalkCallback { + /** + * @param node The currently visited node + * @param index The index of the node in the series of parsed nodes + * @param nodes The series of parsed nodes + * @returns Returning `false` will prevent traversal of descendant nodes (only applies if `bubble` was set to `true` in the `walk()` call) + */ + (node: Node, index: number, nodes: Node[]): void | boolean; + } + + /** + * A CSS dimension, decomposed into its numeric and unit parts + */ + interface Dimension { + number: string; + unit: string; + } + + /** + * A wrapper around a parsed CSS value that allows for inspecting and walking nodes + */ + interface ParsedValue { + /** + * The series of parsed nodes + */ + nodes: Node[]; + + /** + * Walk all parsed nodes, applying a callback + * + * @param callback A visitor callback that will be executed for each node + * @param bubble When set to `true`, walking will be done inside-out instead of outside-in + */ + walk(callback: WalkCallback, bubble?: boolean): this; + } + + interface ValueParser { + /** + * Decompose a CSS dimension into its numeric and unit part + * + * @param value The dimension to decompose + * @returns An object representing `number` and `unit` part of the dimension or `false` if the decomposing fails + */ + unit(value: string): Dimension | false; + + /** + * Serialize a series of nodes into a CSS value + * + * @param nodes The nodes to stringify + * @param custom A custom stringifier callback + * @returns The generated CSS value + */ + stringify(nodes: Node | Node[], custom?: CustomStringifierCallback): string; + + /** + * Walk a series of nodes, applying a callback + * + * @param nodes The nodes to walk + * @param callback A visitor callback that will be executed for each node + * @param bubble When set to `true`, walking will be done inside-out instead of outside-in + */ + walk(nodes: Node[], callback: WalkCallback, bubble?: boolean): void; + + /** + * Parse a CSS value into a series of nodes to operate on + * + * @param value The value to parse + */ + new (value: string): ParsedValue; + + /** + * Parse a CSS value into a series of nodes to operate on + * + * @param value The value to parse + */ + (value: string): ParsedValue; + } +} + +declare const postcssValueParser: postcssValueParser.ValueParser; + +export = postcssValueParser; diff --git a/node_modules/postcss-value-parser/lib/index.js b/node_modules/postcss-value-parser/lib/index.js new file mode 100644 index 0000000..f9ac0e6 --- /dev/null +++ b/node_modules/postcss-value-parser/lib/index.js @@ -0,0 +1,28 @@ +var parse = require("./parse"); +var walk = require("./walk"); +var stringify = require("./stringify"); + +function ValueParser(value) { + if (this instanceof ValueParser) { + this.nodes = parse(value); + return this; + } + return new ValueParser(value); +} + +ValueParser.prototype.toString = function() { + return Array.isArray(this.nodes) ? stringify(this.nodes) : ""; +}; + +ValueParser.prototype.walk = function(cb, bubble) { + walk(this.nodes, cb, bubble); + return this; +}; + +ValueParser.unit = require("./unit"); + +ValueParser.walk = walk; + +ValueParser.stringify = stringify; + +module.exports = ValueParser; diff --git a/node_modules/postcss-value-parser/lib/parse.js b/node_modules/postcss-value-parser/lib/parse.js new file mode 100644 index 0000000..950631c --- /dev/null +++ b/node_modules/postcss-value-parser/lib/parse.js @@ -0,0 +1,321 @@ +var openParentheses = "(".charCodeAt(0); +var closeParentheses = ")".charCodeAt(0); +var singleQuote = "'".charCodeAt(0); +var doubleQuote = '"'.charCodeAt(0); +var backslash = "\\".charCodeAt(0); +var slash = "/".charCodeAt(0); +var comma = ",".charCodeAt(0); +var colon = ":".charCodeAt(0); +var star = "*".charCodeAt(0); +var uLower = "u".charCodeAt(0); +var uUpper = "U".charCodeAt(0); +var plus = "+".charCodeAt(0); +var isUnicodeRange = /^[a-f0-9?-]+$/i; + +module.exports = function(input) { + var tokens = []; + var value = input; + + var next, + quote, + prev, + token, + escape, + escapePos, + whitespacePos, + parenthesesOpenPos; + var pos = 0; + var code = value.charCodeAt(pos); + var max = value.length; + var stack = [{ nodes: tokens }]; + var balanced = 0; + var parent; + + var name = ""; + var before = ""; + var after = ""; + + while (pos < max) { + // Whitespaces + if (code <= 32) { + next = pos; + do { + next += 1; + code = value.charCodeAt(next); + } while (code <= 32); + token = value.slice(pos, next); + + prev = tokens[tokens.length - 1]; + if (code === closeParentheses && balanced) { + after = token; + } else if (prev && prev.type === "div") { + prev.after = token; + prev.sourceEndIndex += token.length; + } else if ( + code === comma || + code === colon || + (code === slash && + value.charCodeAt(next + 1) !== star && + (!parent || + (parent && parent.type === "function" && parent.value !== "calc"))) + ) { + before = token; + } else { + tokens.push({ + type: "space", + sourceIndex: pos, + sourceEndIndex: next, + value: token + }); + } + + pos = next; + + // Quotes + } else if (code === singleQuote || code === doubleQuote) { + next = pos; + quote = code === singleQuote ? "'" : '"'; + token = { + type: "string", + sourceIndex: pos, + quote: quote + }; + do { + escape = false; + next = value.indexOf(quote, next + 1); + if (~next) { + escapePos = next; + while (value.charCodeAt(escapePos - 1) === backslash) { + escapePos -= 1; + escape = !escape; + } + } else { + value += quote; + next = value.length - 1; + token.unclosed = true; + } + } while (escape); + token.value = value.slice(pos + 1, next); + token.sourceEndIndex = token.unclosed ? next : next + 1; + tokens.push(token); + pos = next + 1; + code = value.charCodeAt(pos); + + // Comments + } else if (code === slash && value.charCodeAt(pos + 1) === star) { + next = value.indexOf("*/", pos); + + token = { + type: "comment", + sourceIndex: pos, + sourceEndIndex: next + 2 + }; + + if (next === -1) { + token.unclosed = true; + next = value.length; + token.sourceEndIndex = next; + } + + token.value = value.slice(pos + 2, next); + tokens.push(token); + + pos = next + 2; + code = value.charCodeAt(pos); + + // Operation within calc + } else if ( + (code === slash || code === star) && + parent && + parent.type === "function" && + parent.value === "calc" + ) { + token = value[pos]; + tokens.push({ + type: "word", + sourceIndex: pos - before.length, + sourceEndIndex: pos + token.length, + value: token + }); + pos += 1; + code = value.charCodeAt(pos); + + // Dividers + } else if (code === slash || code === comma || code === colon) { + token = value[pos]; + + tokens.push({ + type: "div", + sourceIndex: pos - before.length, + sourceEndIndex: pos + token.length, + value: token, + before: before, + after: "" + }); + before = ""; + + pos += 1; + code = value.charCodeAt(pos); + + // Open parentheses + } else if (openParentheses === code) { + // Whitespaces after open parentheses + next = pos; + do { + next += 1; + code = value.charCodeAt(next); + } while (code <= 32); + parenthesesOpenPos = pos; + token = { + type: "function", + sourceIndex: pos - name.length, + value: name, + before: value.slice(parenthesesOpenPos + 1, next) + }; + pos = next; + + if (name === "url" && code !== singleQuote && code !== doubleQuote) { + next -= 1; + do { + escape = false; + next = value.indexOf(")", next + 1); + if (~next) { + escapePos = next; + while (value.charCodeAt(escapePos - 1) === backslash) { + escapePos -= 1; + escape = !escape; + } + } else { + value += ")"; + next = value.length - 1; + token.unclosed = true; + } + } while (escape); + // Whitespaces before closed + whitespacePos = next; + do { + whitespacePos -= 1; + code = value.charCodeAt(whitespacePos); + } while (code <= 32); + if (parenthesesOpenPos < whitespacePos) { + if (pos !== whitespacePos + 1) { + token.nodes = [ + { + type: "word", + sourceIndex: pos, + sourceEndIndex: whitespacePos + 1, + value: value.slice(pos, whitespacePos + 1) + } + ]; + } else { + token.nodes = []; + } + if (token.unclosed && whitespacePos + 1 !== next) { + token.after = ""; + token.nodes.push({ + type: "space", + sourceIndex: whitespacePos + 1, + sourceEndIndex: next, + value: value.slice(whitespacePos + 1, next) + }); + } else { + token.after = value.slice(whitespacePos + 1, next); + token.sourceEndIndex = next; + } + } else { + token.after = ""; + token.nodes = []; + } + pos = next + 1; + token.sourceEndIndex = token.unclosed ? next : pos; + code = value.charCodeAt(pos); + tokens.push(token); + } else { + balanced += 1; + token.after = ""; + token.sourceEndIndex = pos + 1; + tokens.push(token); + stack.push(token); + tokens = token.nodes = []; + parent = token; + } + name = ""; + + // Close parentheses + } else if (closeParentheses === code && balanced) { + pos += 1; + code = value.charCodeAt(pos); + + parent.after = after; + parent.sourceEndIndex += after.length; + after = ""; + balanced -= 1; + stack[stack.length - 1].sourceEndIndex = pos; + stack.pop(); + parent = stack[balanced]; + tokens = parent.nodes; + + // Words + } else { + next = pos; + do { + if (code === backslash) { + next += 1; + } + next += 1; + code = value.charCodeAt(next); + } while ( + next < max && + !( + code <= 32 || + code === singleQuote || + code === doubleQuote || + code === comma || + code === colon || + code === slash || + code === openParentheses || + (code === star && + parent && + parent.type === "function" && + parent.value === "calc") || + (code === slash && + parent.type === "function" && + parent.value === "calc") || + (code === closeParentheses && balanced) + ) + ); + token = value.slice(pos, next); + + if (openParentheses === code) { + name = token; + } else if ( + (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && + plus === token.charCodeAt(1) && + isUnicodeRange.test(token.slice(2)) + ) { + tokens.push({ + type: "unicode-range", + sourceIndex: pos, + sourceEndIndex: next, + value: token + }); + } else { + tokens.push({ + type: "word", + sourceIndex: pos, + sourceEndIndex: next, + value: token + }); + } + + pos = next; + } + } + + for (pos = stack.length - 1; pos; pos -= 1) { + stack[pos].unclosed = true; + stack[pos].sourceEndIndex = value.length; + } + + return stack[0].nodes; +}; diff --git a/node_modules/postcss-value-parser/lib/stringify.js b/node_modules/postcss-value-parser/lib/stringify.js new file mode 100644 index 0000000..6079671 --- /dev/null +++ b/node_modules/postcss-value-parser/lib/stringify.js @@ -0,0 +1,48 @@ +function stringifyNode(node, custom) { + var type = node.type; + var value = node.value; + var buf; + var customResult; + + if (custom && (customResult = custom(node)) !== undefined) { + return customResult; + } else if (type === "word" || type === "space") { + return value; + } else if (type === "string") { + buf = node.quote || ""; + return buf + value + (node.unclosed ? "" : buf); + } else if (type === "comment") { + return "/*" + value + (node.unclosed ? "" : "*/"); + } else if (type === "div") { + return (node.before || "") + value + (node.after || ""); + } else if (Array.isArray(node.nodes)) { + buf = stringify(node.nodes, custom); + if (type !== "function") { + return buf; + } + return ( + value + + "(" + + (node.before || "") + + buf + + (node.after || "") + + (node.unclosed ? "" : ")") + ); + } + return value; +} + +function stringify(nodes, custom) { + var result, i; + + if (Array.isArray(nodes)) { + result = ""; + for (i = nodes.length - 1; ~i; i -= 1) { + result = stringifyNode(nodes[i], custom) + result; + } + return result; + } + return stringifyNode(nodes, custom); +} + +module.exports = stringify; diff --git a/node_modules/postcss-value-parser/lib/unit.js b/node_modules/postcss-value-parser/lib/unit.js new file mode 100644 index 0000000..c349661 --- /dev/null +++ b/node_modules/postcss-value-parser/lib/unit.js @@ -0,0 +1,120 @@ +var minus = "-".charCodeAt(0); +var plus = "+".charCodeAt(0); +var dot = ".".charCodeAt(0); +var exp = "e".charCodeAt(0); +var EXP = "E".charCodeAt(0); + +// Check if three code points would start a number +// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number +function likeNumber(value) { + var code = value.charCodeAt(0); + var nextCode; + + if (code === plus || code === minus) { + nextCode = value.charCodeAt(1); + + if (nextCode >= 48 && nextCode <= 57) { + return true; + } + + var nextNextCode = value.charCodeAt(2); + + if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) { + return true; + } + + return false; + } + + if (code === dot) { + nextCode = value.charCodeAt(1); + + if (nextCode >= 48 && nextCode <= 57) { + return true; + } + + return false; + } + + if (code >= 48 && code <= 57) { + return true; + } + + return false; +} + +// Consume a number +// https://www.w3.org/TR/css-syntax-3/#consume-number +module.exports = function(value) { + var pos = 0; + var length = value.length; + var code; + var nextCode; + var nextNextCode; + + if (length === 0 || !likeNumber(value)) { + return false; + } + + code = value.charCodeAt(pos); + + if (code === plus || code === minus) { + pos++; + } + + while (pos < length) { + code = value.charCodeAt(pos); + + if (code < 48 || code > 57) { + break; + } + + pos += 1; + } + + code = value.charCodeAt(pos); + nextCode = value.charCodeAt(pos + 1); + + if (code === dot && nextCode >= 48 && nextCode <= 57) { + pos += 2; + + while (pos < length) { + code = value.charCodeAt(pos); + + if (code < 48 || code > 57) { + break; + } + + pos += 1; + } + } + + code = value.charCodeAt(pos); + nextCode = value.charCodeAt(pos + 1); + nextNextCode = value.charCodeAt(pos + 2); + + if ( + (code === exp || code === EXP) && + ((nextCode >= 48 && nextCode <= 57) || + ((nextCode === plus || nextCode === minus) && + nextNextCode >= 48 && + nextNextCode <= 57)) + ) { + pos += nextCode === plus || nextCode === minus ? 3 : 2; + + while (pos < length) { + code = value.charCodeAt(pos); + + if (code < 48 || code > 57) { + break; + } + + pos += 1; + } + } + + return { + number: value.slice(0, pos), + unit: value.slice(pos) + }; +}; diff --git a/node_modules/postcss-value-parser/lib/walk.js b/node_modules/postcss-value-parser/lib/walk.js new file mode 100644 index 0000000..7666c5b --- /dev/null +++ b/node_modules/postcss-value-parser/lib/walk.js @@ -0,0 +1,22 @@ +module.exports = function walk(nodes, cb, bubble) { + var i, max, node, result; + + for (i = 0, max = nodes.length; i < max; i += 1) { + node = nodes[i]; + if (!bubble) { + result = cb(node, i, nodes); + } + + if ( + result !== false && + node.type === "function" && + Array.isArray(node.nodes) + ) { + walk(node.nodes, cb, bubble); + } + + if (bubble) { + cb(node, i, nodes); + } + } +}; diff --git a/node_modules/postcss-value-parser/package.json b/node_modules/postcss-value-parser/package.json new file mode 100644 index 0000000..02d744a --- /dev/null +++ b/node_modules/postcss-value-parser/package.json @@ -0,0 +1,58 @@ +{ + "name": "postcss-value-parser", + "version": "4.2.0", + "description": "Transforms css values and at-rule params into the tree", + "main": "lib/index.js", + "files": [ + "lib" + ], + "devDependencies": { + "eslint": "^5.16.0", + "husky": "^2.3.0", + "lint-staged": "^8.1.7", + "prettier": "^1.17.1", + "tap-spec": "^5.0.0", + "tape": "^4.10.2" + }, + "scripts": { + "lint:prettier": "prettier \"**/*.js\" \"**/*.ts\" --list-different", + "lint:js": "eslint . --cache", + "lint": "yarn lint:js && yarn lint:prettier", + "pretest": "yarn lint", + "test": "tape test/*.js | tap-spec" + }, + "eslintConfig": { + "env": { + "es6": true, + "node": true + }, + "extends": "eslint:recommended" + }, + "lint-staged": { + "*.js": [ + "eslint", + "prettier --write", + "git add" + ] + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "author": "Bogdan Chadkin ", + "license": "MIT", + "homepage": "https://github.com/TrySound/postcss-value-parser", + "repository": { + "type": "git", + "url": "https://github.com/TrySound/postcss-value-parser.git" + }, + "keywords": [ + "postcss", + "value", + "parser" + ], + "bugs": { + "url": "https://github.com/TrySound/postcss-value-parser/issues" + } +} diff --git a/node_modules/postcss/LICENSE b/node_modules/postcss/LICENSE new file mode 100644 index 0000000..da057b4 --- /dev/null +++ b/node_modules/postcss/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2013 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/postcss/README.md b/node_modules/postcss/README.md new file mode 100644 index 0000000..09dd856 --- /dev/null +++ b/node_modules/postcss/README.md @@ -0,0 +1,44 @@ +# PostCSS [![Gitter][chat-img]][chat] + +Philosopher’s stone, logo of PostCSS + +[chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg +[chat]: https://gitter.im/postcss/postcss + +PostCSS is a tool for transforming styles with JS plugins. +These plugins can lint your CSS, support variables and mixins, +transpile future CSS syntax, inline images, and more. + +PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, +and JetBrains. The [Autoprefixer] PostCSS plugin is one of the most popular +CSS processors. + +PostCSS takes a CSS file and provides an API to analyze and modify its rules +(by transforming them into an [Abstract Syntax Tree]). +This API can then be used by [plugins] to do a lot of useful things, +e.g., to find errors automatically, or to insert vendor prefixes. + +**Support / Discussion:** [Gitter](https://gitter.im/postcss/postcss)
+**Twitter account:** [@postcss](https://twitter.com/postcss)
+**VK.com page:** [postcss](https://vk.com/postcss)
+**中文翻译**: [`docs/README-cn.md`](./docs/README-cn.md) + +For PostCSS commercial support (consulting, improving the front-end culture +of your company, PostCSS plugins), contact [Evil Martians] +at . + +[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree +[Evil Martians]: https://evilmartians.com/?utm_source=postcss +[Autoprefixer]: https://github.com/postcss/autoprefixer +[plugins]: https://github.com/postcss/postcss#plugins + + + Sponsored by Evil Martians + + + +## Docs +Read full docs **[here](https://postcss.org/)**. diff --git a/node_modules/postcss/lib/at-rule.d.ts b/node_modules/postcss/lib/at-rule.d.ts new file mode 100644 index 0000000..186fae0 --- /dev/null +++ b/node_modules/postcss/lib/at-rule.d.ts @@ -0,0 +1,115 @@ +import Container, { ContainerProps } from './container.js' + +declare namespace AtRule { + export interface AtRuleRaws extends Record { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The space between the at-rule name and its parameters. + */ + afterName?: string + + /** + * The symbols between the last parameter and `{` for rules. + */ + between?: string + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + + /** + * The rule’s selector with comments. + */ + params?: { + value: string + raw: string + } + } + + export interface AtRuleProps extends ContainerProps { + /** Name of the at-rule. */ + name: string + /** Parameters following the name of the at-rule. */ + params?: string | number + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: AtRuleRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { AtRule_ as default } +} + +/** + * Represents an at-rule. + * + * ```js + * Once (root, { AtRule }) { + * let media = new AtRule({ name: 'media', params: 'print' }) + * media.append(…) + * root.append(media) + * } + * ``` + * + * If it’s followed in the CSS by a `{}` block, this node will have + * a nodes property representing its children. + * + * ```js + * const root = postcss.parse('@charset "UTF-8"; @media print {}') + * + * const charset = root.first + * charset.type //=> 'atrule' + * charset.nodes //=> undefined + * + * const media = root.last + * media.nodes //=> [] + * ``` + */ +declare class AtRule_ extends Container { + type: 'atrule' + parent: Container | undefined + raws: AtRule.AtRuleRaws + + /** + * The at-rule’s name immediately follows the `@`. + * + * ```js + * const root = postcss.parse('@media print {}') + * media.name //=> 'media' + * const media = root.first + * ``` + */ + name: string + + /** + * The at-rule’s parameters, the values that follow the at-rule’s name + * but precede any `{}` block. + * + * ```js + * const root = postcss.parse('@media print, screen {}') + * const media = root.first + * media.params //=> 'print, screen' + * ``` + */ + params: string + + constructor(defaults?: AtRule.AtRuleProps) + assign(overrides: object | AtRule.AtRuleProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} + +declare class AtRule extends AtRule_ {} + +export = AtRule diff --git a/node_modules/postcss/lib/at-rule.js b/node_modules/postcss/lib/at-rule.js new file mode 100644 index 0000000..9486447 --- /dev/null +++ b/node_modules/postcss/lib/at-rule.js @@ -0,0 +1,25 @@ +'use strict' + +let Container = require('./container') + +class AtRule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'atrule' + } + + append(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.append(...children) + } + + prepend(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.prepend(...children) + } +} + +module.exports = AtRule +AtRule.default = AtRule + +Container.registerAtRule(AtRule) diff --git a/node_modules/postcss/lib/comment.d.ts b/node_modules/postcss/lib/comment.d.ts new file mode 100644 index 0000000..2f00ff7 --- /dev/null +++ b/node_modules/postcss/lib/comment.d.ts @@ -0,0 +1,65 @@ +import Container from './container.js' +import Node, { NodeProps } from './node.js' + +declare namespace Comment { + export interface CommentRaws extends Record { + /** + * The space symbols before the node. + */ + before?: string + + /** + * The space symbols between `/*` and the comment’s text. + */ + left?: string + + /** + * The space symbols between the comment’s text. + */ + right?: string + } + + export interface CommentProps extends NodeProps { + /** Content of the comment. */ + text: string + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: CommentRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Comment_ as default } +} + +/** + * Represents a comment between declarations or statements (rule and at-rules). + * + * ```js + * Once (root, { Comment }) { + * let note = new Comment({ text: 'Note: …' }) + * root.append(note) + * } + * ``` + * + * Comments inside selectors, at-rule parameters, or declaration values + * will be stored in the `raws` properties explained above. + */ +declare class Comment_ extends Node { + type: 'comment' + parent: Container | undefined + raws: Comment.CommentRaws + + /** + * The comment's text. + */ + text: string + + constructor(defaults?: Comment.CommentProps) + assign(overrides: object | Comment.CommentProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} + +declare class Comment extends Comment_ {} + +export = Comment diff --git a/node_modules/postcss/lib/comment.js b/node_modules/postcss/lib/comment.js new file mode 100644 index 0000000..c566506 --- /dev/null +++ b/node_modules/postcss/lib/comment.js @@ -0,0 +1,13 @@ +'use strict' + +let Node = require('./node') + +class Comment extends Node { + constructor(defaults) { + super(defaults) + this.type = 'comment' + } +} + +module.exports = Comment +Comment.default = Comment diff --git a/node_modules/postcss/lib/container.d.ts b/node_modules/postcss/lib/container.d.ts new file mode 100644 index 0000000..32953fe --- /dev/null +++ b/node_modules/postcss/lib/container.d.ts @@ -0,0 +1,451 @@ +import Node, { ChildNode, NodeProps, ChildProps } from './node.js' +import Declaration from './declaration.js' +import Comment from './comment.js' +import AtRule from './at-rule.js' +import Rule from './rule.js' + +declare namespace Container { + export interface ValueOptions { + /** + * An array of property names. + */ + props?: string[] + + /** + * String that’s used to narrow down values and speed up the regexp search. + */ + fast?: string + } + + export interface ContainerProps extends NodeProps { + nodes?: (ChildNode | ChildProps)[] + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Container_ as default } +} + +/** + * The `Root`, `AtRule`, and `Rule` container nodes + * inherit some common methods to help work with their children. + * + * Note that all containers can store any content. If you write a rule inside + * a rule, PostCSS will parse it. + */ +declare abstract class Container_< + Child extends Node = ChildNode +> extends Node { + /** + * An array containing the container’s children. + * + * ```js + * const root = postcss.parse('a { color: black }') + * root.nodes.length //=> 1 + * root.nodes[0].selector //=> 'a' + * root.nodes[0].nodes[0].prop //=> 'color' + * ``` + */ + nodes: Child[] + + /** + * The container’s first child. + * + * ```js + * rule.first === rules.nodes[0] + * ``` + */ + get first(): Child | undefined + + /** + * The container’s last child. + * + * ```js + * rule.last === rule.nodes[rule.nodes.length - 1] + * ``` + */ + get last(): Child | undefined + + /** + * Iterates through the container’s immediate children, + * calling `callback` for each child. + * + * Returning `false` in the callback will break iteration. + * + * This method only iterates through the container’s immediate children. + * If you need to recursively iterate through all the container’s descendant + * nodes, use `Container#walk`. + * + * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe + * if you are mutating the array of child nodes during iteration. + * PostCSS will adjust the current index to match the mutations. + * + * ```js + * const root = postcss.parse('a { color: black; z-index: 1 }') + * const rule = root.first + * + * for (const decl of rule.nodes) { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Cycle will be infinite, because cloneBefore moves the current node + * // to the next index + * } + * + * rule.each(decl => { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Will be executed only for color and z-index + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + each( + callback: (node: Child, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each node. + * + * Like container.each(), this method is safe to use + * if you are mutating arrays during iteration. + * + * If you only need to iterate through the container’s immediate children, + * use `Container#each`. + * + * ```js + * root.walk(node => { + * // Traverses all descendant nodes. + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walk( + callback: (node: ChildNode, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each declaration node. + * + * If you pass a filter, iteration will only happen over declarations + * with matching properties. + * + * ```js + * root.walkDecls(decl => { + * checkPropertySupport(decl.prop) + * }) + * + * root.walkDecls('border-radius', decl => { + * decl.remove() + * }) + * + * root.walkDecls(/^background/, decl => { + * decl.value = takeFirstColorFromGradient(decl.value) + * }) + * ``` + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param prop String or regular expression to filter declarations + * by property name. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkDecls( + propFilter: string | RegExp, + callback: (decl: Declaration, index: number) => false | void + ): false | undefined + walkDecls( + callback: (decl: Declaration, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each rule node. + * + * If you pass a filter, iteration will only happen over rules + * with matching selectors. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * const selectors = [] + * root.walkRules(rule => { + * selectors.push(rule.selector) + * }) + * console.log(`Your CSS uses ${ selectors.length } selectors`) + * ``` + * + * @param selector String or regular expression to filter rules by selector. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkRules( + selectorFilter: string | RegExp, + callback: (rule: Rule, index: number) => false | void + ): false | undefined + walkRules( + callback: (rule: Rule, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each at-rule node. + * + * If you pass a filter, iteration will only happen over at-rules + * that have matching names. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * root.walkAtRules(rule => { + * if (isOld(rule.name)) rule.remove() + * }) + * + * let first = false + * root.walkAtRules('charset', rule => { + * if (!first) { + * first = true + * } else { + * rule.remove() + * } + * }) + * ``` + * + * @param name String or regular expression to filter at-rules by name. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkAtRules( + nameFilter: string | RegExp, + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + walkAtRules( + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each comment node. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * root.walkComments(comment => { + * comment.remove() + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + + /** + * Inserts new nodes to the end of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.append(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + append( + ...nodes: (Node | Node[] | ChildProps | ChildProps[] | string | string[])[] + ): this + + /** + * Inserts new nodes to the start of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.prepend(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + prepend( + ...nodes: (Node | Node[] | ChildProps | ChildProps[] | string | string[])[] + ): this + + /** + * Add child to the end of the node. + * + * ```js + * rule.push(new Declaration({ prop: 'color', value: 'black' })) + * ``` + * + * @param child New node. + * @return This node for methods chain. + */ + push(child: Child): this + + /** + * Insert new node before old node within the container. + * + * ```js + * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) + * ``` + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertBefore( + oldNode: Child | number, + newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[] + ): this + + /** + * Insert new node after old node within the container. + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertAfter( + oldNode: Child | number, + newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[] + ): this + + /** + * Removes node from the container and cleans the parent properties + * from the node and its children. + * + * ```js + * rule.nodes.length //=> 5 + * rule.removeChild(decl) + * rule.nodes.length //=> 4 + * decl.parent //=> undefined + * ``` + * + * @param child Child or child’s index. + * @return This node for methods chain. + */ + removeChild(child: Child | number): this + + /** + * Removes all children from the container + * and cleans their parent properties. + * + * ```js + * rule.removeAll() + * rule.nodes.length //=> 0 + * ``` + * + * @return This node for methods chain. + */ + removeAll(): this + + /** + * Passes all declaration values within the container that match pattern + * through callback, replacing those values with the returned result + * of callback. + * + * This method is useful if you are using a custom unit or function + * and need to iterate through all values. + * + * ```js + * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => { + * return 15 * parseInt(string) + 'px' + * }) + * ``` + * + * @param pattern Replace pattern. + * @param {object} opts Options to speed up the search. + * @param callback String to replace pattern or callback + * that returns a new value. The callback + * will receive the same arguments + * as those passed to a function parameter + * of `String#replace`. + * @return This node for methods chain. + */ + replaceValues( + pattern: string | RegExp, + options: Container.ValueOptions, + replaced: string | { (substring: string, ...args: any[]): string } + ): this + replaceValues( + pattern: string | RegExp, + replaced: string | { (substring: string, ...args: any[]): string } + ): this + + /** + * Returns `true` if callback returns `true` + * for all of the container’s children. + * + * ```js + * const noPrefixes = rule.every(i => i.prop[0] !== '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is every child pass condition. + */ + every( + condition: (node: Child, index: number, nodes: Child[]) => boolean + ): boolean + + /** + * Returns `true` if callback returns `true` for (at least) one + * of the container’s children. + * + * ```js + * const hasPrefix = rule.some(i => i.prop[0] === '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is some child pass condition. + */ + some( + condition: (node: Child, index: number, nodes: Child[]) => boolean + ): boolean + + /** + * Returns a `child`’s index within the `Container#nodes` array. + * + * ```js + * rule.index( rule.nodes[2] ) //=> 2 + * ``` + * + * @param child Child of the current container. + * @return Child index. + */ + index(child: Child | number): number +} + +declare class Container extends Container_ {} + +export = Container diff --git a/node_modules/postcss/lib/container.js b/node_modules/postcss/lib/container.js new file mode 100644 index 0000000..0f047be --- /dev/null +++ b/node_modules/postcss/lib/container.js @@ -0,0 +1,439 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let Declaration = require('./declaration') +let Comment = require('./comment') +let Node = require('./node') + +let parse, Rule, AtRule, Root + +function cleanSource(nodes) { + return nodes.map(i => { + if (i.nodes) i.nodes = cleanSource(i.nodes) + delete i.source + return i + }) +} + +function markDirtyUp(node) { + node[isClean] = false + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markDirtyUp(i) + } + } +} + +class Container extends Node { + push(child) { + child.parent = this + this.proxyOf.nodes.push(child) + return this + } + + each(callback) { + if (!this.proxyOf.nodes) return undefined + let iterator = this.getIterator() + + let index, result + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator] + result = callback(this.proxyOf.nodes[index], index) + if (result === false) break + + this.indexes[iterator] += 1 + } + + delete this.indexes[iterator] + return result + } + + walk(callback) { + return this.each((child, i) => { + let result + try { + result = callback(child, i) + } catch (e) { + throw child.addToError(e) + } + if (result !== false && child.walk) { + result = child.walk(callback) + } + + return result + }) + } + + walkDecls(prop, callback) { + if (!callback) { + callback = prop + return this.walk((child, i) => { + if (child.type === 'decl') { + return callback(child, i) + } + }) + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'decl' && prop.test(child.prop)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'decl' && child.prop === prop) { + return callback(child, i) + } + }) + } + + walkRules(selector, callback) { + if (!callback) { + callback = selector + + return this.walk((child, i) => { + if (child.type === 'rule') { + return callback(child, i) + } + }) + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'rule' && selector.test(child.selector)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'rule' && child.selector === selector) { + return callback(child, i) + } + }) + } + + walkAtRules(name, callback) { + if (!callback) { + callback = name + return this.walk((child, i) => { + if (child.type === 'atrule') { + return callback(child, i) + } + }) + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'atrule' && name.test(child.name)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'atrule' && child.name === name) { + return callback(child, i) + } + }) + } + + walkComments(callback) { + return this.walk((child, i) => { + if (child.type === 'comment') { + return callback(child, i) + } + }) + } + + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last) + for (let node of nodes) this.proxyOf.nodes.push(node) + } + + this.markDirty() + + return this + } + + prepend(...children) { + children = children.reverse() + for (let child of children) { + let nodes = this.normalize(child, this.first, 'prepend').reverse() + for (let node of nodes) this.proxyOf.nodes.unshift(node) + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length + } + } + + this.markDirty() + + return this + } + + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween) + if (this.nodes) { + for (let node of this.nodes) node.cleanRaws(keepBetween) + } + } + + insertBefore(exist, add) { + let existIndex = this.index(exist) + let type = existIndex === 0 ? 'prepend' : false + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (existIndex <= index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + insertAfter(exist, add) { + let existIndex = this.index(exist) + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (existIndex < index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + removeChild(child) { + child = this.index(child) + this.proxyOf.nodes[child].parent = undefined + this.proxyOf.nodes.splice(child, 1) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (index >= child) { + this.indexes[id] = index - 1 + } + } + + this.markDirty() + + return this + } + + removeAll() { + for (let node of this.proxyOf.nodes) node.parent = undefined + this.proxyOf.nodes = [] + + this.markDirty() + + return this + } + + replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts + opts = {} + } + + this.walkDecls(decl => { + if (opts.props && !opts.props.includes(decl.prop)) return + if (opts.fast && !decl.value.includes(opts.fast)) return + + decl.value = decl.value.replace(pattern, callback) + }) + + this.markDirty() + + return this + } + + every(condition) { + return this.nodes.every(condition) + } + + some(condition) { + return this.nodes.some(condition) + } + + index(child) { + if (typeof child === 'number') return child + if (child.proxyOf) child = child.proxyOf + return this.proxyOf.nodes.indexOf(child) + } + + get first() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[0] + } + + get last() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] + } + + normalize(nodes, sample) { + if (typeof nodes === 'string') { + nodes = cleanSource(parse(nodes).nodes) + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type === 'root' && this.type !== 'document') { + nodes = nodes.nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type) { + nodes = [nodes] + } else if (nodes.prop) { + if (typeof nodes.value === 'undefined') { + throw new Error('Value field is missed in node creation') + } else if (typeof nodes.value !== 'string') { + nodes.value = String(nodes.value) + } + nodes = [new Declaration(nodes)] + } else if (nodes.selector) { + nodes = [new Rule(nodes)] + } else if (nodes.name) { + nodes = [new AtRule(nodes)] + } else if (nodes.text) { + nodes = [new Comment(nodes)] + } else { + throw new Error('Unknown node type in node creation') + } + + let processed = nodes.map(i => { + /* c8 ignore next */ + if (!i[my]) Container.rebuild(i) + i = i.proxyOf + if (i.parent) i.parent.removeChild(i) + if (i[isClean]) markDirtyUp(i) + if (typeof i.raws.before === 'undefined') { + if (sample && typeof sample.raws.before !== 'undefined') { + i.raws.before = sample.raws.before.replace(/\S/g, '') + } + } + i.parent = this.proxyOf + return i + }) + + return processed + } + + getProxyProcessor() { + return { + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if (prop === 'name' || prop === 'params' || prop === 'selector') { + node.markDirty() + } + return true + }, + + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (!node[prop]) { + return node[prop] + } else if ( + prop === 'each' || + (typeof prop === 'string' && prop.startsWith('walk')) + ) { + return (...args) => { + return node[prop]( + ...args.map(i => { + if (typeof i === 'function') { + return (child, index) => i(child.toProxy(), index) + } else { + return i + } + }) + ) + } + } else if (prop === 'every' || prop === 'some') { + return cb => { + return node[prop]((child, ...other) => + cb(child.toProxy(), ...other) + ) + } + } else if (prop === 'root') { + return () => node.root().toProxy() + } else if (prop === 'nodes') { + return node.nodes.map(i => i.toProxy()) + } else if (prop === 'first' || prop === 'last') { + return node[prop].toProxy() + } else { + return node[prop] + } + } + } + } + + getIterator() { + if (!this.lastEach) this.lastEach = 0 + if (!this.indexes) this.indexes = {} + + this.lastEach += 1 + let iterator = this.lastEach + this.indexes[iterator] = 0 + + return iterator + } +} + +Container.registerParse = dependant => { + parse = dependant +} + +Container.registerRule = dependant => { + Rule = dependant +} + +Container.registerAtRule = dependant => { + AtRule = dependant +} + +Container.registerRoot = dependant => { + Root = dependant +} + +module.exports = Container +Container.default = Container + +/* c8 ignore start */ +Container.rebuild = node => { + if (node.type === 'atrule') { + Object.setPrototypeOf(node, AtRule.prototype) + } else if (node.type === 'rule') { + Object.setPrototypeOf(node, Rule.prototype) + } else if (node.type === 'decl') { + Object.setPrototypeOf(node, Declaration.prototype) + } else if (node.type === 'comment') { + Object.setPrototypeOf(node, Comment.prototype) + } else if (node.type === 'root') { + Object.setPrototypeOf(node, Root.prototype) + } + + node[my] = true + + if (node.nodes) { + node.nodes.forEach(child => { + Container.rebuild(child) + }) + } +} +/* c8 ignore stop */ diff --git a/node_modules/postcss/lib/css-syntax-error.d.ts b/node_modules/postcss/lib/css-syntax-error.d.ts new file mode 100644 index 0000000..f89b484 --- /dev/null +++ b/node_modules/postcss/lib/css-syntax-error.d.ts @@ -0,0 +1,248 @@ +import { FilePosition } from './input.js' + +declare namespace CssSyntaxError { + /** + * A position that is part of a range. + */ + export interface RangePosition { + /** + * The line number in the input. + */ + line: number + + /** + * The column number in the input. + */ + column: number + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { CssSyntaxError_ as default } +} + +/** + * The CSS parser throws this error for broken CSS. + * + * Custom parsers can throw this error for broken custom syntax using + * the `Node#error` method. + * + * PostCSS will use the input source map to detect the original error location. + * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. + * + * If you need the position in the PostCSS input + * (e.g., to debug the previous compiler), use `error.input.file`. + * + * ```js + * // Raising error from plugin + * throw node.error('Unknown variable', { plugin: 'postcss-vars' }) + * ``` + * + * ```js + * // Catching and checking syntax error + * try { + * postcss.parse('a{') + * } catch (error) { + * if (error.name === 'CssSyntaxError') { + * error //=> CssSyntaxError + * } + * } + * ``` + */ +declare class CssSyntaxError_ { + /** + * Instantiates a CSS syntax error. Can be instantiated for a single position + * or for a range. + * @param message Error message. + * @param lineOrStartPos If for a single position, the line number, or if for + * a range, the inclusive start position of the error. + * @param columnOrEndPos If for a single position, the column number, or if for + * a range, the exclusive end position of the error. + * @param source Source code of the broken file. + * @param file Absolute path to the broken file. + * @param plugin PostCSS plugin name, if error came from plugin. + */ + constructor( + message: string, + lineOrStartPos?: number | CssSyntaxError.RangePosition, + columnOrEndPos?: number | CssSyntaxError.RangePosition, + source?: string, + file?: string, + plugin?: string + ) + + stack: string + + /** + * Always equal to `'CssSyntaxError'`. You should always check error type + * by `error.name === 'CssSyntaxError'` + * instead of `error instanceof CssSyntaxError`, + * because npm could have several PostCSS versions. + * + * ```js + * if (error.name === 'CssSyntaxError') { + * error //=> CssSyntaxError + * } + * ``` + */ + name: 'CssSyntaxError' + + /** + * Error message. + * + * ```js + * error.message //=> 'Unclosed block' + * ``` + */ + reason: string + + /** + * Full error text in the GNU error format + * with plugin, file, line and column. + * + * ```js + * error.message //=> 'a.css:1:1: Unclosed block' + * ``` + */ + message: string + + /** + * Absolute path to the broken file. + * + * ```js + * error.file //=> 'a.sass' + * error.input.file //=> 'a.css' + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.file`. + */ + file?: string + + /** + * Source line of the error. + * + * ```js + * error.line //=> 2 + * error.input.line //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.line`. + */ + line?: number + + /** + * Source column of the error. + * + * ```js + * error.column //=> 1 + * error.input.column //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.column`. + */ + column?: number + + /** + * Source line of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endLine //=> 3 + * error.input.endLine //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endLine`. + */ + endLine?: number + + /** + * Source column of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endColumn //=> 1 + * error.input.endColumn //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endColumn`. + */ + endColumn?: number + + /** + * Source code of the broken file. + * + * ```js + * error.source //=> 'a { b {} }' + * error.input.source //=> 'a b { }' + * ``` + */ + source?: string + + /** + * Plugin name, if error came from plugin. + * + * ```js + * error.plugin //=> 'postcss-vars' + * ``` + */ + plugin?: string + + /** + * Input object with PostCSS internal information + * about input file. If input has source map + * from previous tool, PostCSS will use origin + * (for example, Sass) source. You can use this + * object to get PostCSS input source. + * + * ```js + * error.input.file //=> 'a.css' + * error.file //=> 'a.sass' + * ``` + */ + input?: FilePosition + + /** + * Returns error position, message and source code of the broken part. + * + * ```js + * error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block + * // > 1 | a { + * // | ^" + * ``` + * + * @return Error position, message and source code. + */ + toString(): string + + /** + * Returns a few lines of CSS source that caused the error. + * + * If the CSS has an input source map without `sourceContent`, + * this method will return an empty string. + * + * ```js + * error.showSourceCode() //=> " 4 | } + * // 5 | a { + * // > 6 | bad + * // | ^ + * // 7 | } + * // 8 | b {" + * ``` + * + * @param color Whether arrow will be colored red by terminal + * color codes. By default, PostCSS will detect + * color support by `process.stdout.isTTY` + * and `process.env.NODE_DISABLE_COLORS`. + * @return Few lines of CSS source that caused the error. + */ + showSourceCode(color?: boolean): string +} + +declare class CssSyntaxError extends CssSyntaxError_ {} + +export = CssSyntaxError diff --git a/node_modules/postcss/lib/css-syntax-error.js b/node_modules/postcss/lib/css-syntax-error.js new file mode 100644 index 0000000..d6b369b --- /dev/null +++ b/node_modules/postcss/lib/css-syntax-error.js @@ -0,0 +1,100 @@ +'use strict' + +let pico = require('picocolors') + +let terminalHighlight = require('./terminal-highlight') + +class CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message) + this.name = 'CssSyntaxError' + this.reason = message + + if (file) { + this.file = file + } + if (source) { + this.source = source + } + if (plugin) { + this.plugin = plugin + } + if (typeof line !== 'undefined' && typeof column !== 'undefined') { + if (typeof line === 'number') { + this.line = line + this.column = column + } else { + this.line = line.line + this.column = line.column + this.endLine = column.line + this.endColumn = column.column + } + } + + this.setMessage() + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError) + } + } + + setMessage() { + this.message = this.plugin ? this.plugin + ': ' : '' + this.message += this.file ? this.file : '' + if (typeof this.line !== 'undefined') { + this.message += ':' + this.line + ':' + this.column + } + this.message += ': ' + this.reason + } + + showSourceCode(color) { + if (!this.source) return '' + + let css = this.source + if (color == null) color = pico.isColorSupported + if (terminalHighlight) { + if (color) css = terminalHighlight(css) + } + + let lines = css.split(/\r?\n/) + let start = Math.max(this.line - 3, 0) + let end = Math.min(this.line + 2, lines.length) + + let maxWidth = String(end).length + + let mark, aside + if (color) { + let { bold, red, gray } = pico.createColors(true) + mark = text => bold(red(text)) + aside = text => gray(text) + } else { + mark = aside = str => str + } + + return lines + .slice(start, end) + .map((line, index) => { + let number = start + 1 + index + let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ' + if (number === this.line) { + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line.slice(0, this.column - 1).replace(/[^\t]/g, ' ') + return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^') + } + return ' ' + aside(gutter) + line + }) + .join('\n') + } + + toString() { + let code = this.showSourceCode() + if (code) { + code = '\n\n' + code + '\n' + } + return this.name + ': ' + this.message + code + } +} + +module.exports = CssSyntaxError +CssSyntaxError.default = CssSyntaxError diff --git a/node_modules/postcss/lib/declaration.d.ts b/node_modules/postcss/lib/declaration.d.ts new file mode 100644 index 0000000..c9984a4 --- /dev/null +++ b/node_modules/postcss/lib/declaration.d.ts @@ -0,0 +1,133 @@ +import Container from './container.js' +import Node from './node.js' + +declare namespace Declaration { + export interface DeclarationRaws extends Record { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the property and value for declarations. + */ + between?: string + + /** + * The content of the important statement, if it is not just `!important`. + */ + important?: string + + /** + * Declaration value with comments. + */ + value?: { + value: string + raw: string + } + } + + export interface DeclarationProps { + /** Name of the declaration. */ + prop: string + /** Value of the declaration. */ + value: string + /** Whether the declaration has an `!important` annotation. */ + important?: boolean + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: DeclarationRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Declaration_ as default } +} + +/** + * Represents a CSS declaration. + * + * ```js + * Once (root, { Declaration }) { + * let color = new Declaration({ prop: 'color', value: 'black' }) + * root.append(color) + * } + * ``` + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * decl.type //=> 'decl' + * decl.toString() //=> ' color: black' + * ``` + */ +declare class Declaration_ extends Node { + type: 'decl' + parent: Container | undefined + raws: Declaration.DeclarationRaws + + /** + * The declaration's property name. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * decl.prop //=> 'color' + * ``` + */ + prop: string + + /** + * The declaration’s value. + * + * This value will be cleaned of comments. If the source value contained + * comments, those comments will be available in the `raws` property. + * If you have not changed the value, the result of `decl.toString()` + * will include the original raws value (comments and all). + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * decl.value //=> 'black' + * ``` + */ + value: string + + /** + * `true` if the declaration has an `!important` annotation. + * + * ```js + * const root = postcss.parse('a { color: black !important; color: red }') + * root.first.first.important //=> true + * root.first.last.important //=> undefined + * ``` + */ + important: boolean + + /** + * `true` if declaration is declaration of CSS Custom Property + * or Sass variable. + * + * ```js + * const root = postcss.parse(':root { --one: 1 }') + * let one = root.first.first + * one.variable //=> true + * ``` + * + * ```js + * const root = postcss.parse('$one: 1') + * let one = root.first + * one.variable //=> true + * ``` + */ + variable: boolean + + constructor(defaults?: Declaration.DeclarationProps) + assign(overrides: object | Declaration.DeclarationProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} + +declare class Declaration extends Declaration_ {} + +export = Declaration diff --git a/node_modules/postcss/lib/declaration.js b/node_modules/postcss/lib/declaration.js new file mode 100644 index 0000000..a04bdec --- /dev/null +++ b/node_modules/postcss/lib/declaration.js @@ -0,0 +1,24 @@ +'use strict' + +let Node = require('./node') + +class Declaration extends Node { + constructor(defaults) { + if ( + defaults && + typeof defaults.value !== 'undefined' && + typeof defaults.value !== 'string' + ) { + defaults = { ...defaults, value: String(defaults.value) } + } + super(defaults) + this.type = 'decl' + } + + get variable() { + return this.prop.startsWith('--') || this.prop[0] === '$' + } +} + +module.exports = Declaration +Declaration.default = Declaration diff --git a/node_modules/postcss/lib/document.d.ts b/node_modules/postcss/lib/document.d.ts new file mode 100644 index 0000000..7afb374 --- /dev/null +++ b/node_modules/postcss/lib/document.d.ts @@ -0,0 +1,63 @@ +import Container, { ContainerProps } from './container.js' +import { ProcessOptions } from './postcss.js' +import Result from './result.js' +import Root from './root.js' + +declare namespace Document { + export interface DocumentProps extends ContainerProps { + nodes?: Root[] + + /** + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * Every parser saves its own properties. + */ + raws?: Record + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Document_ as default } +} + +/** + * Represents a file and contains all its parsed nodes. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + * + * ```js + * const document = htmlParser( + * '' + * ) + * document.type //=> 'document' + * document.nodes.length //=> 2 + * ``` + */ +declare class Document_ extends Container { + type: 'document' + parent: undefined + + constructor(defaults?: Document.DocumentProps) + + /** + * Returns a `Result` instance representing the document’s CSS roots. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * const document = postcss.document() + * document.append(root1) + * document.append(root2) + * const result = document.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param opts Options. + * @return Result with current document’s CSS. + */ + toResult(options?: ProcessOptions): Result +} + +declare class Document extends Document_ {} + +export = Document diff --git a/node_modules/postcss/lib/document.js b/node_modules/postcss/lib/document.js new file mode 100644 index 0000000..4468991 --- /dev/null +++ b/node_modules/postcss/lib/document.js @@ -0,0 +1,33 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Document extends Container { + constructor(defaults) { + // type needs to be passed to super, otherwise child roots won't be normalized correctly + super({ type: 'document', ...defaults }) + + if (!this.nodes) { + this.nodes = [] + } + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + + return lazy.stringify() + } +} + +Document.registerLazyResult = dependant => { + LazyResult = dependant +} + +Document.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Document +Document.default = Document diff --git a/node_modules/postcss/lib/fromJSON.d.ts b/node_modules/postcss/lib/fromJSON.d.ts new file mode 100644 index 0000000..e1deedb --- /dev/null +++ b/node_modules/postcss/lib/fromJSON.d.ts @@ -0,0 +1,9 @@ +import { JSONHydrator } from './postcss.js' + +interface FromJSON extends JSONHydrator { + default: FromJSON +} + +declare const fromJSON: FromJSON + +export = fromJSON diff --git a/node_modules/postcss/lib/fromJSON.js b/node_modules/postcss/lib/fromJSON.js new file mode 100644 index 0000000..09f2b89 --- /dev/null +++ b/node_modules/postcss/lib/fromJSON.js @@ -0,0 +1,54 @@ +'use strict' + +let Declaration = require('./declaration') +let PreviousMap = require('./previous-map') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Input = require('./input') +let Root = require('./root') +let Rule = require('./rule') + +function fromJSON(json, inputs) { + if (Array.isArray(json)) return json.map(n => fromJSON(n)) + + let { inputs: ownInputs, ...defaults } = json + if (ownInputs) { + inputs = [] + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype } + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + } + } + inputs.push(inputHydrated) + } + } + if (defaults.nodes) { + defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)) + } + if (defaults.source) { + let { inputId, ...source } = defaults.source + defaults.source = source + if (inputId != null) { + defaults.source.input = inputs[inputId] + } + } + if (defaults.type === 'root') { + return new Root(defaults) + } else if (defaults.type === 'decl') { + return new Declaration(defaults) + } else if (defaults.type === 'rule') { + return new Rule(defaults) + } else if (defaults.type === 'comment') { + return new Comment(defaults) + } else if (defaults.type === 'atrule') { + return new AtRule(defaults) + } else { + throw new Error('Unknown node type: ' + json.type) + } +} + +module.exports = fromJSON +fromJSON.default = fromJSON diff --git a/node_modules/postcss/lib/input.d.ts b/node_modules/postcss/lib/input.d.ts new file mode 100644 index 0000000..7376943 --- /dev/null +++ b/node_modules/postcss/lib/input.d.ts @@ -0,0 +1,194 @@ +import { CssSyntaxError, ProcessOptions } from './postcss.js' +import PreviousMap from './previous-map.js' + +declare namespace Input { + export interface FilePosition { + /** + * URL for the source file. + */ + url: string + + /** + * Absolute path to the source file. + */ + file?: string + + /** + * Line of inclusive start position in source file. + */ + line: number + + /** + * Column of inclusive start position in source file. + */ + column: number + + /** + * Line of exclusive end position in source file. + */ + endLine?: number + + /** + * Column of exclusive end position in source file. + */ + endColumn?: number + + /** + * Source code. + */ + source?: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Input_ as default } +} + +/** + * Represents the source CSS. + * + * ```js + * const root = postcss.parse(css, { from: file }) + * const input = root.source.input + * ``` + */ +declare class Input_ { + /** + * Input CSS source. + * + * ```js + * const input = postcss.parse('a{}', { from: file }).input + * input.css //=> "a{}" + * ``` + */ + css: string + + /** + * The input source map passed from a compilation step before PostCSS + * (for example, from Sass compiler). + * + * ```js + * root.source.input.map.consumer().sources //=> ['a.sass'] + * ``` + */ + map: PreviousMap + + /** + * The absolute path to the CSS source file defined + * with the `from` option. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.file //=> '/home/ai/a.css' + * ``` + */ + file?: string + + /** + * The unique ID of the CSS source. It will be created if `from` option + * is not provided (because PostCSS does not know the file path). + * + * ```js + * const root = postcss.parse(css) + * root.source.input.file //=> undefined + * root.source.input.id //=> "" + * ``` + */ + id?: string + + /** + * The flag to indicate whether or not the source code has Unicode BOM. + */ + hasBOM: boolean + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.from //=> "/home/ai/a.css" + * + * const root = postcss.parse(css) + * root.source.input.from //=> "" + * ``` + */ + get from(): string + + /** + * Reads the input source map and returns a symbol position + * in the input source (e.g., in a Sass file that was compiled + * to CSS before being passed to PostCSS). Optionally takes an + * end position, exclusive. + * + * ```js + * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 } + * root.source.input.origin(1, 1, 1, 4) + * //=> { file: 'a.css', line: 3, column: 1, endLine: 3, endColumn: 4 } + * ``` + * + * @param line Line for inclusive start position in input CSS. + * @param column Column for inclusive start position in input CSS. + * @param endLine Line for exclusive end position in input CSS. + * @param endColumn Column for exclusive end position in input CSS. + * + * @return Position in input source. + */ + origin( + line: number, + column: number, + endLine?: number, + endColumn?: number + ): Input.FilePosition | false + + /** + * Converts source offset to line and column. + * + * @param offset Source offset. + */ + fromOffset(offset: number): { line: number; col: number } | null + + /** + * Returns `CssSyntaxError` with information about the error and its position. + */ + error( + message: string, + line: number, + column: number, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError + error( + message: string, + offset: number, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError + error( + message: string, + start: + | { + offset: number + } + | { + line: number + column: number + }, + end: + | { + offset: number + } + | { + line: number + column: number + }, + opts?: { plugin?: CssSyntaxError['plugin'] } + ): CssSyntaxError +} + +declare class Input extends Input_ {} + +export = Input diff --git a/node_modules/postcss/lib/input.js b/node_modules/postcss/lib/input.js new file mode 100644 index 0000000..a1c52c7 --- /dev/null +++ b/node_modules/postcss/lib/input.js @@ -0,0 +1,248 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { fileURLToPath, pathToFileURL } = require('url') +let { resolve, isAbsolute } = require('path') +let { nanoid } = require('nanoid/non-secure') + +let terminalHighlight = require('./terminal-highlight') +let CssSyntaxError = require('./css-syntax-error') +let PreviousMap = require('./previous-map') + +let fromOffsetCache = Symbol('fromOffsetCache') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(resolve && isAbsolute) + +class Input { + constructor(css, opts = {}) { + if ( + css === null || + typeof css === 'undefined' || + (typeof css === 'object' && !css.toString) + ) { + throw new Error(`PostCSS received ${css} instead of CSS string`) + } + + this.css = css.toString() + + if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { + this.hasBOM = true + this.css = this.css.slice(1) + } else { + this.hasBOM = false + } + + if (opts.from) { + if ( + !pathAvailable || + /^\w+:\/\//.test(opts.from) || + isAbsolute(opts.from) + ) { + this.file = opts.from + } else { + this.file = resolve(opts.from) + } + } + + if (pathAvailable && sourceMapAvailable) { + let map = new PreviousMap(this.css, opts) + if (map.text) { + this.map = map + let file = map.consumer().file + if (!this.file && file) this.file = this.mapResolve(file) + } + } + + if (!this.file) { + this.id = '' + } + if (this.map) this.map.file = this.from + } + + fromOffset(offset) { + let lastLine, lineToIndex + if (!this[fromOffsetCache]) { + let lines = this.css.split('\n') + lineToIndex = new Array(lines.length) + let prevIndex = 0 + + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex + prevIndex += lines[i].length + 1 + } + + this[fromOffsetCache] = lineToIndex + } else { + lineToIndex = this[fromOffsetCache] + } + lastLine = lineToIndex[lineToIndex.length - 1] + + let min = 0 + if (offset >= lastLine) { + min = lineToIndex.length - 1 + } else { + let max = lineToIndex.length - 2 + let mid + while (min < max) { + mid = min + ((max - min) >> 1) + if (offset < lineToIndex[mid]) { + max = mid - 1 + } else if (offset >= lineToIndex[mid + 1]) { + min = mid + 1 + } else { + min = mid + break + } + } + } + return { + line: min + 1, + col: offset - lineToIndex[min] + 1 + } + } + + error(message, line, column, opts = {}) { + let result, endLine, endColumn + + if (line && typeof line === 'object') { + let start = line + let end = column + if (typeof start.offset === 'number') { + let pos = this.fromOffset(start.offset) + line = pos.line + column = pos.col + } else { + line = start.line + column = start.column + } + if (typeof end.offset === 'number') { + let pos = this.fromOffset(end.offset) + endLine = pos.line + endColumn = pos.col + } else { + endLine = end.line + endColumn = end.column + } + } else if (!column) { + let pos = this.fromOffset(line) + line = pos.line + column = pos.col + } + + let origin = this.origin(line, column, endLine, endColumn) + if (origin) { + result = new CssSyntaxError( + message, + origin.endLine === undefined + ? origin.line + : { line: origin.line, column: origin.column }, + origin.endLine === undefined + ? origin.column + : { line: origin.endLine, column: origin.endColumn }, + origin.source, + origin.file, + opts.plugin + ) + } else { + result = new CssSyntaxError( + message, + endLine === undefined ? line : { line, column }, + endLine === undefined ? column : { line: endLine, column: endColumn }, + this.css, + this.file, + opts.plugin + ) + } + + result.input = { line, column, endLine, endColumn, source: this.css } + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString() + } + result.input.file = this.file + } + + return result + } + + origin(line, column, endLine, endColumn) { + if (!this.map) return false + let consumer = this.map.consumer() + + let from = consumer.originalPositionFor({ line, column }) + if (!from.source) return false + + let to + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ line: endLine, column: endColumn }) + } + + let fromUrl + + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source) + } else { + fromUrl = new URL( + from.source, + this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) + ) + } + + let result = { + url: fromUrl.toString(), + line: from.line, + column: from.column, + endLine: to && to.line, + endColumn: to && to.column + } + + if (fromUrl.protocol === 'file:') { + if (fileURLToPath) { + result.file = fileURLToPath(fromUrl) + } else { + /* c8 ignore next 2 */ + throw new Error(`file: protocol is not available in this PostCSS build`) + } + } + + let source = consumer.sourceContentFor(from.source) + if (source) result.source = source + + return result + } + + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file + } + return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) + } + + get from() { + return this.file || this.id + } + + toJSON() { + let json = {} + for (let name of ['hasBOM', 'css', 'file', 'id']) { + if (this[name] != null) { + json[name] = this[name] + } + } + if (this.map) { + json.map = { ...this.map } + if (json.map.consumerCache) { + json.map.consumerCache = undefined + } + } + return json + } +} + +module.exports = Input +Input.default = Input + +if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input) +} diff --git a/node_modules/postcss/lib/lazy-result.d.ts b/node_modules/postcss/lib/lazy-result.d.ts new file mode 100644 index 0000000..089495c --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.d.ts @@ -0,0 +1,185 @@ +import Result, { Message, ResultOptions } from './result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Warning from './warning.js' +import Root from './root.js' + +declare namespace LazyResult { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { LazyResult_ as default } +} + +/** + * A Promise proxy for the result of PostCSS transformations. + * + * A `LazyResult` instance is returned by `Processor#process`. + * + * ```js + * const lazy = postcss([autoprefixer]).process(css) + * ``` + */ +declare class LazyResult_ implements PromiseLike { + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls `onFulfilled` with a Result instance. If a plugin throws + * an error, the `onRejected` callback will be executed. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => { + * console.log(result.css) + * }) + * ``` + */ + then: Promise['then'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onRejected for each error thrown in any plugin. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }).catch(error => { + * console.error(error) + * }) + * ``` + */ + catch: Promise['catch'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onFinally on any error or when all plugins will finish work. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).finally(() => { + * console.log('processing ended') + * }) + * ``` + */ + finally: Promise['finally'] + + /** + * @param processor Processor used for this transformation. + * @param css CSS to parse and transform. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, css: string, opts: ResultOptions) + + /** + * Returns the default string description of an object. + * Required to implement the Promise interface. + */ + get [Symbol.toStringTag](): string + + /** + * Returns a `Processor` instance, which will be used + * for CSS transformations. + */ + get processor(): Processor + + /** + * Options from the `Processor#process` call. + */ + get opts(): ResultOptions + + /** + * Processes input CSS through synchronous plugins, converts `Root` + * to a CSS string and returns `Result#css`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get css(): string + + /** + * An alias for the `css` property. Use it with syntaxes + * that generate non-CSS output. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get content(): string + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#map`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get map(): SourceMap + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#root`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get root(): Root + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#messages`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get messages(): Message[] + + /** + * Processes input CSS through synchronous plugins + * and calls `Result#warnings`. + * + * @return Warnings from plugins. + */ + warnings(): Warning[] + + /** + * Alias for the `LazyResult#css` property. + * + * ```js + * lazy + '' === lazy.css + * ``` + * + * @return Output CSS. + */ + toString(): string + + /** + * Run plugin in sync way and return `Result`. + * + * @return Result with output content. + */ + sync(): Result + + /** + * Run plugin in async way and return `Result`. + * + * @return Result with output content. + */ + async(): Promise +} + +declare class LazyResult extends LazyResult_ {} + +export = LazyResult diff --git a/node_modules/postcss/lib/lazy-result.js b/node_modules/postcss/lib/lazy-result.js new file mode 100644 index 0000000..584a95d --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.js @@ -0,0 +1,550 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let Container = require('./container') +let Document = require('./document') +let warnOnce = require('./warn-once') +let Result = require('./result') +let parse = require('./parse') +let Root = require('./root') + +const TYPE_TO_CLASS_NAME = { + document: 'Document', + root: 'Root', + atrule: 'AtRule', + rule: 'Rule', + decl: 'Declaration', + comment: 'Comment' +} + +const PLUGIN_PROPS = { + postcssPlugin: true, + prepare: true, + Once: true, + Document: true, + Root: true, + Declaration: true, + Rule: true, + AtRule: true, + Comment: true, + DeclarationExit: true, + RuleExit: true, + AtRuleExit: true, + CommentExit: true, + RootExit: true, + DocumentExit: true, + OnceExit: true +} + +const NOT_VISITORS = { + postcssPlugin: true, + prepare: true, + Once: true +} + +const CHILDREN = 0 + +function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then === 'function' +} + +function getEvents(node) { + let key = false + let type = TYPE_TO_CLASS_NAME[node.type] + if (node.type === 'decl') { + key = node.prop.toLowerCase() + } else if (node.type === 'atrule') { + key = node.name.toLowerCase() + } + + if (key && node.append) { + return [ + type, + type + '-' + key, + CHILDREN, + type + 'Exit', + type + 'Exit-' + key + ] + } else if (key) { + return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] + } else if (node.append) { + return [type, CHILDREN, type + 'Exit'] + } else { + return [type, type + 'Exit'] + } +} + +function toStack(node) { + let events + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit'] + } else if (node.type === 'root') { + events = ['Root', CHILDREN, 'RootExit'] + } else { + events = getEvents(node) + } + + return { + node, + events, + eventIndex: 0, + visitors: [], + visitorIndex: 0, + iterator: 0 + } +} + +function cleanMarks(node) { + node[isClean] = false + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) + return node +} + +let postcss = {} + +class LazyResult { + constructor(processor, css, opts) { + this.stringified = false + this.processed = false + + let root + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { + root = cleanMarks(css) + } else if (css instanceof LazyResult || css instanceof Result) { + root = cleanMarks(css.root) + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {} + if (!opts.map.inline) opts.map.inline = false + opts.map.prev = css.map + } + } else { + let parser = parse + if (opts.syntax) parser = opts.syntax.parse + if (opts.parser) parser = opts.parser + if (parser.parse) parser = parser.parse + + try { + root = parser(css, opts) + } catch (error) { + this.processed = true + this.error = error + } + + if (root && !root[my]) { + /* c8 ignore next 2 */ + Container.rebuild(root) + } + } + + this.result = new Result(processor, root, opts) + this.helpers = { ...postcss, result: this.result, postcss } + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }) + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } + + get processor() { + return this.result.processor + } + + get opts() { + return this.result.opts + } + + get css() { + return this.stringify().css + } + + get content() { + return this.stringify().content + } + + get map() { + return this.stringify().map + } + + get root() { + return this.sync().root + } + + get messages() { + return this.sync().messages + } + + warnings() { + return this.sync().warnings() + } + + toString() { + return this.css + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this.opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + return this.async().then(onFulfilled, onRejected) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + async() { + if (this.error) return Promise.reject(this.error) + if (this.processed) return Promise.resolve(this.result) + if (!this.processing) { + this.processing = this.runAsync() + } + return this.processing + } + + sync() { + if (this.error) throw this.error + if (this.processed) return this.result + this.processed = true + + if (this.processing) { + throw this.getAsyncError() + } + + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + this.walkSync(root) + } + if (this.listeners.OnceExit) { + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot) + } + } else { + this.visitSync(this.listeners.OnceExit, root) + } + } + } + + return this.result + } + + stringify() { + if (this.error) throw this.error + if (this.stringified) return this.result + this.stringified = true + + this.sync() + + let opts = this.result.opts + let str = stringify + if (opts.syntax) str = opts.syntax.stringify + if (opts.stringifier) str = opts.stringifier + if (str.stringify) str = str.stringify + + let map = new MapGenerator(str, this.result.root, this.result.opts) + let data = map.generate() + this.result.css = data[0] + this.result.map = data[1] + + return this.result + } + + walkSync(node) { + node[isClean] = true + let events = getEvents(node) + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each(child => { + if (!child[isClean]) this.walkSync(child) + }) + } + } else { + let visitors = this.listeners[event] + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) return + } + } + } + } + + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin + let promise + try { + promise = visitor(node, this.helpers) + } catch (e) { + throw this.handleError(e, node.proxyOf) + } + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + } + + runOnRoot(plugin) { + this.result.lastPlugin = plugin + try { + if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ) + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + + return plugin.Once(this.result.root, this.helpers) + } else if (typeof plugin === 'function') { + return plugin(this.result.root, this.result) + } + } catch (error) { + throw this.handleError(error) + } + } + + getAsyncError() { + throw new Error('Use process(css).then(cb) to work with async plugins') + } + + handleError(error, node) { + let plugin = this.result.lastPlugin + try { + if (node) node.addToError(error) + this.error = error + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin + error.setMessage() + } else if (plugin.postcssVersion) { + if (process.env.NODE_ENV !== 'production') { + let pluginName = plugin.postcssPlugin + let pluginVer = plugin.postcssVersion + let runtimeVer = this.result.processor.version + let a = pluginVer.split('.') + let b = runtimeVer.split('.') + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console + console.error( + 'Unknown error from PostCSS plugin. Your current PostCSS ' + + 'version is ' + + runtimeVer + + ', but ' + + pluginName + + ' uses ' + + pluginVer + + '. Perhaps this is the source of the error below.' + ) + } + } + } + } catch (err) { + /* c8 ignore next 3 */ + // eslint-disable-next-line no-console + if (console && console.error) console.error(err) + } + return error + } + + async runAsync() { + this.plugin = 0 + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i] + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + try { + await promise + } catch (error) { + throw this.handleError(error) + } + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + let stack = [toStack(root)] + while (stack.length > 0) { + let promise = this.visitTick(stack) + if (isPromise(promise)) { + try { + await promise + } catch (e) { + let node = stack[stack.length - 1].node + throw this.handleError(e, node) + } + } + } + } + + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin + try { + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ) + + await Promise.all(roots) + } else { + await visitor(root, this.helpers) + } + } catch (e) { + throw this.handleError(e) + } + } + } + } + + this.processed = true + return this.stringify() + } + + prepareVisitors() { + this.listeners = {} + let add = (plugin, type, cb) => { + if (!this.listeners[type]) this.listeners[type] = [] + this.listeners[type].push([plugin, cb]) + } + for (let plugin of this.plugins) { + if (typeof plugin === 'object') { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. ` + + `Try to update PostCSS (${this.processor.version} now).` + ) + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === 'object') { + for (let filter in plugin[event]) { + if (filter === '*') { + add(plugin, event, plugin[event][filter]) + } else { + add( + plugin, + event + '-' + filter.toLowerCase(), + plugin[event][filter] + ) + } + } + } else if (typeof plugin[event] === 'function') { + add(plugin, event, plugin[event]) + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0 + } + + visitTick(stack) { + let visit = stack[stack.length - 1] + let { node, visitors } = visit + + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + stack.pop() + return + } + + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex] + visit.visitorIndex += 1 + if (visit.visitorIndex === visitors.length) { + visit.visitors = [] + visit.visitorIndex = 0 + } + this.result.lastPlugin = plugin + try { + return visitor(node.toProxy(), this.helpers) + } catch (e) { + throw this.handleError(e, node) + } + } + + if (visit.iterator !== 0) { + let iterator = visit.iterator + let child + while ((child = node.nodes[node.indexes[iterator]])) { + node.indexes[iterator] += 1 + if (!child[isClean]) { + child[isClean] = true + stack.push(toStack(child)) + return + } + } + visit.iterator = 0 + delete node.indexes[iterator] + } + + let events = visit.events + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex] + visit.eventIndex += 1 + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true + visit.iterator = node.getIterator() + } + return + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event] + return + } + } + stack.pop() + } +} + +LazyResult.registerPostcss = dependant => { + postcss = dependant +} + +module.exports = LazyResult +LazyResult.default = LazyResult + +Root.registerLazyResult(LazyResult) +Document.registerLazyResult(LazyResult) diff --git a/node_modules/postcss/lib/list.d.ts b/node_modules/postcss/lib/list.d.ts new file mode 100644 index 0000000..6a56cad --- /dev/null +++ b/node_modules/postcss/lib/list.d.ts @@ -0,0 +1,57 @@ +declare namespace list { + type List = { + default: List + + /** + * Safely splits values. + * + * ```js + * Once (root, { list }) { + * list.split('1px calc(10% + 1px)', [' ', '\n', '\t']) //=> ['1px', 'calc(10% + 1px)'] + * } + * ``` + * + * @param string separated values. + * @param separators array of separators. + * @param last boolean indicator. + * @return Split values. + */ + split(string: string, separators: string[], last: boolean): string[] + + /** + * Safely splits space-separated values (such as those for `background`, + * `border-radius`, and other shorthand properties). + * + * ```js + * Once (root, { list }) { + * list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)'] + * } + * ``` + * + * @param str Space-separated values. + * @return Split values. + */ + space(str: string): string[] + + /** + * Safely splits comma-separated values (such as those for `transition-*` + * and `background` properties). + * + * ```js + * Once (root, { list }) { + * list.comma('black, linear-gradient(white, black)') + * //=> ['black', 'linear-gradient(white, black)'] + * } + * ``` + * + * @param str Comma-separated values. + * @return Split values. + */ + comma(str: string): string[] + } +} + +// eslint-disable-next-line @typescript-eslint/no-redeclare +declare const list: list.List + +export = list diff --git a/node_modules/postcss/lib/list.js b/node_modules/postcss/lib/list.js new file mode 100644 index 0000000..c3f9646 --- /dev/null +++ b/node_modules/postcss/lib/list.js @@ -0,0 +1,58 @@ +'use strict' + +let list = { + split(string, separators, last) { + let array = [] + let current = '' + let split = false + + let func = 0 + let inQuote = false + let prevQuote = '' + let escape = false + + for (let letter of string) { + if (escape) { + escape = false + } else if (letter === '\\') { + escape = true + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false + } + } else if (letter === '"' || letter === "'") { + inQuote = true + prevQuote = letter + } else if (letter === '(') { + func += 1 + } else if (letter === ')') { + if (func > 0) func -= 1 + } else if (func === 0) { + if (separators.includes(letter)) split = true + } + + if (split) { + if (current !== '') array.push(current.trim()) + current = '' + split = false + } else { + current += letter + } + } + + if (last || current !== '') array.push(current.trim()) + return array + }, + + space(string) { + let spaces = [' ', '\n', '\t'] + return list.split(string, spaces) + }, + + comma(string) { + return list.split(string, [','], true) + } +} + +module.exports = list +list.default = list diff --git a/node_modules/postcss/lib/map-generator.js b/node_modules/postcss/lib/map-generator.js new file mode 100644 index 0000000..a1ea65e --- /dev/null +++ b/node_modules/postcss/lib/map-generator.js @@ -0,0 +1,338 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { dirname, resolve, relative, sep } = require('path') +let { pathToFileURL } = require('url') + +let Input = require('./input') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(dirname && resolve && relative && sep) + +class MapGenerator { + constructor(stringify, root, opts, cssString) { + this.stringify = stringify + this.mapOpts = opts.map || {} + this.root = root + this.opts = opts + this.css = cssString + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute + } + + isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map + } + return this.previous().length > 0 + } + + previous() { + if (!this.previousMaps) { + this.previousMaps = [] + if (this.root) { + this.root.walk(node => { + if (node.source && node.source.input.map) { + let map = node.source.input.map + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map) + } + } + }) + } else { + let input = new Input(this.css, this.opts) + if (input.map) this.previousMaps.push(input.map) + } + } + + return this.previousMaps + } + + isInline() { + if (typeof this.mapOpts.inline !== 'undefined') { + return this.mapOpts.inline + } + + let annotation = this.mapOpts.annotation + if (typeof annotation !== 'undefined' && annotation !== true) { + return false + } + + if (this.previous().length) { + return this.previous().some(i => i.inline) + } + return true + } + + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent + } + if (this.previous().length) { + return this.previous().some(i => i.withContent()) + } + return true + } + + clearAnnotation() { + if (this.mapOpts.annotation === false) return + + if (this.root) { + let node + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i] + if (node.type !== 'comment') continue + if (node.text.indexOf('# sourceMappingURL=') === 0) { + this.root.removeChild(i) + } + } + } else if (this.css) { + this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') + } + } + + setSourcesContent() { + let already = {} + if (this.root) { + this.root.walk(node => { + if (node.source) { + let from = node.source.input.from + if (from && !already[from]) { + already[from] = true + let fromUrl = this.usesFileUrls + ? this.toFileUrl(from) + : this.toUrl(this.path(from)) + this.map.setSourceContent(fromUrl, node.source.input.css) + } + } + }) + } else if (this.css) { + let from = this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '' + this.map.setSourceContent(from, this.css) + } + } + + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)) + let root = prev.root || dirname(prev.file) + let map + + if (this.mapOpts.sourcesContent === false) { + map = new SourceMapConsumer(prev.text) + if (map.sourcesContent) { + map.sourcesContent = map.sourcesContent.map(() => null) + } + } else { + map = prev.consumer() + } + + this.map.applySourceMap(map, from, this.toUrl(this.path(root))) + } + } + + isAnnotation() { + if (this.isInline()) { + return true + } + if (typeof this.mapOpts.annotation !== 'undefined') { + return this.mapOpts.annotation + } + if (this.previous().length) { + return this.previous().some(i => i.annotation) + } + return true + } + + toBase64(str) { + if (Buffer) { + return Buffer.from(str).toString('base64') + } else { + return window.btoa(unescape(encodeURIComponent(str))) + } + } + + addAnnotation() { + let content + + if (this.isInline()) { + content = + 'data:application/json;base64,' + this.toBase64(this.map.toString()) + } else if (typeof this.mapOpts.annotation === 'string') { + content = this.mapOpts.annotation + } else if (typeof this.mapOpts.annotation === 'function') { + content = this.mapOpts.annotation(this.opts.to, this.root) + } else { + content = this.outputFile() + '.map' + } + let eol = '\n' + if (this.css.includes('\r\n')) eol = '\r\n' + + this.css += eol + '/*# sourceMappingURL=' + content + ' */' + } + + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to) + } else if (this.opts.from) { + return this.path(this.opts.from) + } else { + return 'to.css' + } + } + + generateMap() { + if (this.root) { + this.generateString() + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer() + prev.file = this.outputFile() + this.map = SourceMapGenerator.fromSourceMap(prev) + } else { + this.map = new SourceMapGenerator({ file: this.outputFile() }) + this.map.addMapping({ + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '', + generated: { line: 1, column: 0 }, + original: { line: 1, column: 0 } + }) + } + + if (this.isSourcesContent()) this.setSourcesContent() + if (this.root && this.previous().length > 0) this.applyPrevMaps() + if (this.isAnnotation()) this.addAnnotation() + + if (this.isInline()) { + return [this.css] + } else { + return [this.css, this.map] + } + } + + path(file) { + if (file.indexOf('<') === 0) return file + if (/^\w+:\/\//.test(file)) return file + if (this.mapOpts.absolute) return file + + let from = this.opts.to ? dirname(this.opts.to) : '.' + + if (typeof this.mapOpts.annotation === 'string') { + from = dirname(resolve(from, this.mapOpts.annotation)) + } + + file = relative(from, file) + return file + } + + toUrl(path) { + if (sep === '\\') { + path = path.replace(/\\/g, '/') + } + return encodeURI(path).replace(/[#?]/g, encodeURIComponent) + } + + toFileUrl(path) { + if (pathToFileURL) { + return pathToFileURL(path).toString() + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from) + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from) + } else { + return this.toUrl(this.path(node.source.input.from)) + } + } + + generateString() { + this.css = '' + this.map = new SourceMapGenerator({ file: this.outputFile() }) + + let line = 1 + let column = 1 + + let noSource = '' + let mapping = { + source: '', + generated: { line: 0, column: 0 }, + original: { line: 0, column: 0 } + } + + let lines, last + this.stringify(this.root, (str, node, type) => { + this.css += str + + if (node && type !== 'end') { + mapping.generated.line = line + mapping.generated.column = column - 1 + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.start.line + mapping.original.column = node.source.start.column - 1 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + this.map.addMapping(mapping) + } + } + + lines = str.match(/\n/g) + if (lines) { + line += lines.length + last = str.lastIndexOf('\n') + column = str.length - last + } else { + column += str.length + } + + if (node && type !== 'start') { + let p = node.parent || { raws: {} } + let childless = + node.type === 'decl' || (node.type === 'atrule' && !node.nodes) + if (!childless || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.end.line + mapping.original.column = node.source.end.column - 1 + mapping.generated.line = line + mapping.generated.column = column - 2 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + mapping.generated.line = line + mapping.generated.column = column - 1 + this.map.addMapping(mapping) + } + } + } + }) + } + + generate() { + this.clearAnnotation() + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap() + } else { + let result = '' + this.stringify(this.root, i => { + result += i + }) + return [result] + } + } +} + +module.exports = MapGenerator diff --git a/node_modules/postcss/lib/no-work-result.d.ts b/node_modules/postcss/lib/no-work-result.d.ts new file mode 100644 index 0000000..dd150c6 --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.d.ts @@ -0,0 +1,46 @@ +import Result, { Message, ResultOptions } from './result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Warning from './warning.js' +import Root from './root.js' +import LazyResult from './lazy-result.js' + +declare namespace NoWorkResult { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { NoWorkResult_ as default } +} + +/** + * A Promise proxy for the result of PostCSS transformations. + * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root` + * are accessed. See the example below for details. + * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined. + * + * ```js + * const noWorkResult = postcss().process(css) // No plugins are defined. + * // CSS is not parsed + * let root = noWorkResult.root // now css is parsed because we accessed the root + * ``` + */ +declare class NoWorkResult_ implements LazyResult { + then: Promise['then'] + catch: Promise['catch'] + finally: Promise['finally'] + constructor(processor: Processor, css: string, opts: ResultOptions) + get [Symbol.toStringTag](): string + get processor(): Processor + get opts(): ResultOptions + get css(): string + get content(): string + get map(): SourceMap + get root(): Root + get messages(): Message[] + warnings(): Warning[] + toString(): string + sync(): Result + async(): Promise +} + +declare class NoWorkResult extends NoWorkResult_ {} + +export = NoWorkResult diff --git a/node_modules/postcss/lib/no-work-result.js b/node_modules/postcss/lib/no-work-result.js new file mode 100644 index 0000000..8bab6f5 --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.js @@ -0,0 +1,135 @@ +'use strict' + +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let warnOnce = require('./warn-once') +let parse = require('./parse') +const Result = require('./result') + +class NoWorkResult { + constructor(processor, css, opts) { + css = css.toString() + this.stringified = false + + this._processor = processor + this._css = css + this._opts = opts + this._map = undefined + let root + + let str = stringify + this.result = new Result(this._processor, root, this._opts) + this.result.css = css + + let self = this + Object.defineProperty(this.result, 'root', { + get() { + return self.root + } + }) + + let map = new MapGenerator(str, root, this._opts, css) + if (map.isMap()) { + let [generatedCSS, generatedMap] = map.generate() + if (generatedCSS) { + this.result.css = generatedCSS + } + if (generatedMap) { + this.result.map = generatedMap + } + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } + + get processor() { + return this.result.processor + } + + get opts() { + return this.result.opts + } + + get css() { + return this.result.css + } + + get content() { + return this.result.css + } + + get map() { + return this.result.map + } + + get root() { + if (this._root) { + return this._root + } + + let root + let parser = parse + + try { + root = parser(this._css, this._opts) + } catch (error) { + this.error = error + } + + if (this.error) { + throw this.error + } else { + this._root = root + return root + } + } + + get messages() { + return [] + } + + warnings() { + return [] + } + + toString() { + return this._css + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this._opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + + return this.async().then(onFulfilled, onRejected) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + sync() { + if (this.error) throw this.error + return this.result + } +} + +module.exports = NoWorkResult +NoWorkResult.default = NoWorkResult diff --git a/node_modules/postcss/lib/node.d.ts b/node_modules/postcss/lib/node.d.ts new file mode 100644 index 0000000..00f62b7 --- /dev/null +++ b/node_modules/postcss/lib/node.d.ts @@ -0,0 +1,489 @@ +import Declaration, { DeclarationProps } from './declaration.js' +import Comment, { CommentProps } from './comment.js' +import { Stringifier, Syntax } from './postcss.js' +import AtRule = require('./at-rule.js') +import { AtRuleProps } from './at-rule.js' +import Rule, { RuleProps } from './rule.js' +import Warning, { WarningOptions } from './warning.js' +import CssSyntaxError from './css-syntax-error.js' +import Result from './result.js' +import Input from './input.js' +import Root from './root.js' +import Document from './document.js' +import Container from './container.js' + +declare namespace Node { + export type ChildNode = AtRule.default | Rule | Declaration | Comment + + export type AnyNode = AtRule.default | Rule | Declaration | Comment | Root | Document + + export type ChildProps = + | AtRuleProps + | RuleProps + | DeclarationProps + | CommentProps + + export interface Position { + /** + * Source offset in file. It starts from 0. + */ + offset: number + + /** + * Source line in file. In contrast to `offset` it starts from 1. + */ + column: number + + /** + * Source column in file. + */ + line: number + } + + export interface Range { + /** + * Start position, inclusive. + */ + start: Position + + /** + * End position, exclusive. + */ + end: Position + } + + export interface Source { + /** + * The file source of the node. + */ + input: Input + /** + * The inclusive starting position of the node’s source. + */ + start?: Position + /** + * The inclusive ending position of the node's source. + */ + end?: Position + } + + export interface NodeProps { + source?: Source + } + + export interface NodeErrorOptions { + /** + * Plugin name that created this error. PostCSS will set it automatically. + */ + plugin?: string + /** + * A word inside a node's string, that should be highlighted as source + * of error. + */ + word?: string + /** + * An index inside a node's string that should be highlighted as source + * of error. + */ + index?: number + /** + * An ending index inside a node's string that should be highlighted as + * source of error. + */ + endIndex?: number + } + + // eslint-disable-next-line @typescript-eslint/no-shadow + class Node extends Node_ {} + export { Node as default } +} + +/** + * All node classes inherit the following common methods. + * + * You should not extend this classes to create AST for selector or value + * parser. + */ +declare abstract class Node_ { + /** + * tring representing the node’s type. Possible values are `root`, `atrule`, + * `rule`, `decl`, or `comment`. + * + * ```js + * new Declaration({ prop: 'color', value: 'black' }).type //=> 'decl' + * ``` + */ + type: string + + /** + * The node’s parent node. + * + * ```js + * root.nodes[0].parent === root + * ``` + */ + parent: Document | Container | undefined + + /** + * The input source of the node. + * + * The property is used in source map generation. + * + * If you create a node manually (e.g., with `postcss.decl()`), + * that node will not have a `source` property and will be absent + * from the source map. For this reason, the plugin developer should + * consider cloning nodes to create new ones (in which case the new node’s + * source will reference the original, cloned node) or setting + * the `source` property manually. + * + * ```js + * decl.source.input.from //=> '/home/ai/a.sass' + * decl.source.start //=> { line: 10, column: 2 } + * decl.source.end //=> { line: 10, column: 12 } + * ``` + * + * ```js + * // Bad + * const prefixed = postcss.decl({ + * prop: '-moz-' + decl.prop, + * value: decl.value + * }) + * + * // Good + * const prefixed = decl.clone({ prop: '-moz-' + decl.prop }) + * ``` + * + * ```js + * if (atrule.name === 'add-link') { + * const rule = postcss.rule({ selector: 'a', source: atrule.source }) + * atrule.parent.insertBefore(atrule, rule) + * } + * ``` + */ + source?: Node.Source + + /** + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `after`: the space symbols after the last child of the node + * to the end of the node. + * * `between`: the symbols between the property and value + * for declarations, selector and `{` for rules, or last parameter + * and `{` for at-rules. + * * `semicolon`: contains true if the last child has + * an (optional) semicolon. + * * `afterName`: the space between the at-rule name and its parameters. + * * `left`: the space symbols between `/*` and the comment’s text. + * * `right`: the space symbols between the comment’s text + * and */. + * * `important`: the content of the important statement, + * if it is not just `!important`. + * + * PostCSS cleans selectors, declaration values and at-rule parameters + * from comments and extra spaces, but it stores origin content in raws + * properties. As such, if you don’t change a declaration’s value, + * PostCSS will use the raw value with comments. + * + * ```js + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '\n ', between: ':' } + * ``` + */ + raws: any + + /** + * @param defaults Value for node properties. + */ + constructor(defaults?: object) + + /** + * Returns a `CssSyntaxError` instance containing the original position + * of the node in the source, showing line and column numbers and also + * a small excerpt to facilitate debugging. + * + * If present, an input source map will be used to get the original position + * of the source, even from a previous compilation step + * (e.g., from Sass compilation). + * + * This method produces very useful error messages. + * + * ```js + * if (!variables[name]) { + * throw decl.error(`Unknown variable ${name}`, { word: name }) + * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black + * // color: $black + * // a + * // ^ + * // background: white + * } + * ``` + * + * @param message Error description. + * @param opts Options. + * + * @return Error object to throw it. + */ + error(message: string, options?: Node.NodeErrorOptions): CssSyntaxError + + /** + * This method is provided as a convenience wrapper for `Result#warn`. + * + * ```js + * Declaration: { + * bad: (decl, { result }) => { + * decl.warn(result, 'Deprecated property bad') + * } + * } + * ``` + * + * @param result The `Result` instance that will receive the warning. + * @param text Warning message. + * @param opts Warning Options. + * + * @return Created warning object. + */ + warn(result: Result, text: string, opts?: WarningOptions): Warning + + /** + * Removes the node from its parent and cleans the parent properties + * from the node and its children. + * + * ```js + * if (decl.prop.match(/^-webkit-/)) { + * decl.remove() + * } + * ``` + * + * @return Node to make calls chain. + */ + remove(): this + + /** + * Returns a CSS string representing the node. + * + * ```js + * new Rule({ selector: 'a' }).toString() //=> "a {}" + * ``` + * + * @param stringifier A syntax to use in string generation. + * @return CSS string of this node. + */ + toString(stringifier?: Stringifier | Syntax): string + + /** + * Assigns properties to the current node. + * + * ```js + * decl.assign({ prop: 'word-wrap', value: 'break-word' }) + * ``` + * + * @param overrides New properties to override the node. + * @return Current node to methods chain. + */ + assign(overrides: object): this + + /** + * Returns an exact clone of the node. + * + * The resulting cloned node and its (cloned) children will retain + * code style properties. + * + * ```js + * decl.raws.before //=> "\n " + * const cloned = decl.clone({ prop: '-moz-' + decl.prop }) + * cloned.raws.before //=> "\n " + * cloned.toString() //=> -moz-transform: scale(0) + * ``` + * + * @param overrides New properties to override in the clone. + * @return Clone of the node. + */ + clone(overrides?: object): this + + /** + * Shortcut to clone the node and insert the resulting cloned node + * before the current node. + * + * ```js + * decl.cloneBefore({ prop: '-moz-' + decl.prop }) + * ``` + * + * @param overrides Mew properties to override in the clone. + * + * @return New node + */ + cloneBefore(overrides?: object): this + + /** + * Shortcut to clone the node and insert the resulting cloned node + * after the current node. + * + * @param overrides New properties to override in the clone. + * @return New node. + */ + cloneAfter(overrides?: object): this + + /** + * Inserts node(s) before the current node and removes the current node. + * + * ```js + * AtRule: { + * mixin: atrule => { + * atrule.replaceWith(mixinRules[atrule.params]) + * } + * } + * ``` + * + * @param nodes Mode(s) to replace current one. + * @return Current node to methods chain. + */ + replaceWith( + ...nodes: (Node.ChildNode | Node.ChildProps | Node.ChildNode[] | Node.ChildProps[])[] + ): this + + /** + * Returns the next child of the node’s parent. + * Returns `undefined` if the current node is the last child. + * + * ```js + * if (comment.text === 'delete next') { + * const next = comment.next() + * if (next) { + * next.remove() + * } + * } + * ``` + * + * @return Next node. + */ + next(): Node.ChildNode | undefined + + /** + * Returns the previous child of the node’s parent. + * Returns `undefined` if the current node is the first child. + * + * ```js + * const annotation = decl.prev() + * if (annotation.type === 'comment') { + * readAnnotation(annotation.text) + * } + * ``` + * + * @return Previous node. + */ + prev(): Node.ChildNode | undefined + + /** + * Insert new node before current node to current node’s parent. + * + * Just alias for `node.parent.insertBefore(node, add)`. + * + * ```js + * decl.before('content: ""') + * ``` + * + * @param newNode New node. + * @return This node for methods chain. + */ + before(newNode: Node | Node.ChildProps | string | Node[]): this + + /** + * Insert new node after current node to current node’s parent. + * + * Just alias for `node.parent.insertAfter(node, add)`. + * + * ```js + * decl.after('color: black') + * ``` + * + * @param newNode New node. + * @return This node for methods chain. + */ + after(newNode: Node | Node.ChildProps | string | Node[]): this + + /** + * Finds the Root instance of the node’s tree. + * + * ```js + * root.nodes[0].nodes[0].root() === root + * ``` + * + * @return Root parent. + */ + root(): Root + + /** + * Returns a `Node#raws` value. If the node is missing + * the code style property (because the node was manually built or cloned), + * PostCSS will try to autodetect the code style property by looking + * at other nodes in the tree. + * + * ```js + * const root = postcss.parse('a { background: white }') + * root.nodes[0].append({ prop: 'color', value: 'black' }) + * root.nodes[0].nodes[1].raws.before //=> undefined + * root.nodes[0].nodes[1].raw('before') //=> ' ' + * ``` + * + * @param prop Name of code style property. + * @param defaultType Name of default value, it can be missed + * if the value is the same as prop. + * @return {string} Code style value. + */ + raw(prop: string, defaultType?: string): string + + /** + * Clear the code style properties for the node and its children. + * + * ```js + * node.raws.before //=> ' ' + * node.cleanRaws() + * node.raws.before //=> undefined + * ``` + * + * @param keepBetween Keep the `raws.between` symbols. + */ + cleanRaws(keepBetween?: boolean): void + + /** + * Fix circular links on `JSON.stringify()`. + * + * @return Cleaned object. + */ + toJSON(): object + + /** + * Convert string index to line/column. + * + * @param index The symbol number in the node’s string. + * @return Symbol position in file. + */ + positionInside(index: number): Node.Position + + /** + * Get the position for a word or an index inside the node. + * + * @param opts Options. + * @return Position. + */ + positionBy(opts?: Pick): Node.Position + + /** + * Get the range for a word or start and end index inside the node. + * The start index is inclusive; the end index is exclusive. + * + * @param opts Options. + * @return Range. + */ + rangeBy(opts?: Pick): Node.Range +} + +declare class Node extends Node_ {} + +export = Node diff --git a/node_modules/postcss/lib/node.js b/node_modules/postcss/lib/node.js new file mode 100644 index 0000000..bdcbac0 --- /dev/null +++ b/node_modules/postcss/lib/node.js @@ -0,0 +1,379 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let CssSyntaxError = require('./css-syntax-error') +let Stringifier = require('./stringifier') +let stringify = require('./stringify') + +function cloneNode(obj, parent) { + let cloned = new obj.constructor() + + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + /* c8 ignore next 2 */ + continue + } + if (i === 'proxyCache') continue + let value = obj[i] + let type = typeof value + + if (i === 'parent' && type === 'object') { + if (parent) cloned[i] = parent + } else if (i === 'source') { + cloned[i] = value + } else if (Array.isArray(value)) { + cloned[i] = value.map(j => cloneNode(j, cloned)) + } else { + if (type === 'object' && value !== null) value = cloneNode(value) + cloned[i] = value + } + } + + return cloned +} + +class Node { + constructor(defaults = {}) { + this.raws = {} + this[isClean] = false + this[my] = true + + for (let name in defaults) { + if (name === 'nodes') { + this.nodes = [] + for (let node of defaults[name]) { + if (typeof node.clone === 'function') { + this.append(node.clone()) + } else { + this.append(node) + } + } + } else { + this[name] = defaults[name] + } + } + } + + error(message, opts = {}) { + if (this.source) { + let { start, end } = this.rangeBy(opts) + return this.source.input.error( + message, + { line: start.line, column: start.column }, + { line: end.line, column: end.column }, + opts + ) + } + return new CssSyntaxError(message) + } + + warn(result, text, opts) { + let data = { node: this } + for (let i in opts) data[i] = opts[i] + return result.warn(text, data) + } + + remove() { + if (this.parent) { + this.parent.removeChild(this) + } + this.parent = undefined + return this + } + + toString(stringifier = stringify) { + if (stringifier.stringify) stringifier = stringifier.stringify + let result = '' + stringifier(this, i => { + result += i + }) + return result + } + + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name] + } + return this + } + + clone(overrides = {}) { + let cloned = cloneNode(this) + for (let name in overrides) { + cloned[name] = overrides[name] + } + return cloned + } + + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertBefore(this, cloned) + return cloned + } + + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertAfter(this, cloned) + return cloned + } + + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this + let foundSelf = false + for (let node of nodes) { + if (node === this) { + foundSelf = true + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node) + bookmark = node + } else { + this.parent.insertBefore(bookmark, node) + } + } + + if (!foundSelf) { + this.remove() + } + } + + return this + } + + next() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index + 1] + } + + prev() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index - 1] + } + + before(add) { + this.parent.insertBefore(this, add) + return this + } + + after(add) { + this.parent.insertAfter(this, add) + return this + } + + root() { + let result = this + while (result.parent && result.parent.type !== 'document') { + result = result.parent + } + return result + } + + raw(prop, defaultType) { + let str = new Stringifier() + return str.raw(this, prop, defaultType) + } + + cleanRaws(keepBetween) { + delete this.raws.before + delete this.raws.after + if (!keepBetween) delete this.raws.between + } + + toJSON(_, inputs) { + let fixed = {} + let emitInputs = inputs == null + inputs = inputs || new Map() + let inputsNextIndex = 0 + + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + /* c8 ignore next 2 */ + continue + } + if (name === 'parent' || name === 'proxyCache') continue + let value = this[name] + + if (Array.isArray(value)) { + fixed[name] = value.map(i => { + if (typeof i === 'object' && i.toJSON) { + return i.toJSON(null, inputs) + } else { + return i + } + }) + } else if (typeof value === 'object' && value.toJSON) { + fixed[name] = value.toJSON(null, inputs) + } else if (name === 'source') { + let inputId = inputs.get(value.input) + if (inputId == null) { + inputId = inputsNextIndex + inputs.set(value.input, inputsNextIndex) + inputsNextIndex++ + } + fixed[name] = { + inputId, + start: value.start, + end: value.end + } + } else { + fixed[name] = value + } + } + + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map(input => input.toJSON()) + } + + return fixed + } + + positionInside(index) { + let string = this.toString() + let column = this.source.start.column + let line = this.source.start.line + + for (let i = 0; i < index; i++) { + if (string[i] === '\n') { + column = 1 + line += 1 + } else { + column += 1 + } + } + + return { line, column } + } + + positionBy(opts) { + let pos = this.source.start + if (opts.index) { + pos = this.positionInside(opts.index) + } else if (opts.word) { + let index = this.toString().indexOf(opts.word) + if (index !== -1) pos = this.positionInside(index) + } + return pos + } + + rangeBy(opts) { + let start = { + line: this.source.start.line, + column: this.source.start.column + } + let end = this.source.end + ? { + line: this.source.end.line, + column: this.source.end.column + 1 + } + : { + line: start.line, + column: start.column + 1 + } + + if (opts.word) { + let index = this.toString().indexOf(opts.word) + if (index !== -1) { + start = this.positionInside(index) + end = this.positionInside(index + opts.word.length) + } + } else { + if (opts.start) { + start = { + line: opts.start.line, + column: opts.start.column + } + } else if (opts.index) { + start = this.positionInside(opts.index) + } + + if (opts.end) { + end = { + line: opts.end.line, + column: opts.end.column + } + } else if (opts.endIndex) { + end = this.positionInside(opts.endIndex) + } else if (opts.index) { + end = this.positionInside(opts.index + 1) + } + } + + if ( + end.line < start.line || + (end.line === start.line && end.column <= start.column) + ) { + end = { line: start.line, column: start.column + 1 } + } + + return { start, end } + } + + getProxyProcessor() { + return { + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if ( + prop === 'prop' || + prop === 'value' || + prop === 'name' || + prop === 'params' || + prop === 'important' || + /* c8 ignore next */ + prop === 'text' + ) { + node.markDirty() + } + return true + }, + + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (prop === 'root') { + return () => node.root().toProxy() + } else { + return node[prop] + } + } + } + } + + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()) + } + return this.proxyCache + } + + addToError(error) { + error.postcssNode = this + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source + error.stack = error.stack.replace( + /\n\s{4}at /, + `$&${s.input.from}:${s.start.line}:${s.start.column}$&` + ) + } + return error + } + + markDirty() { + if (this[isClean]) { + this[isClean] = false + let next = this + while ((next = next.parent)) { + next[isClean] = false + } + } + } + + get proxyOf() { + return this + } +} + +module.exports = Node +Node.default = Node diff --git a/node_modules/postcss/lib/parse.d.ts b/node_modules/postcss/lib/parse.d.ts new file mode 100644 index 0000000..4c943a4 --- /dev/null +++ b/node_modules/postcss/lib/parse.d.ts @@ -0,0 +1,9 @@ +import { Parser } from './postcss.js' + +interface Parse extends Parser { + default: Parse +} + +declare const parse: Parse + +export = parse diff --git a/node_modules/postcss/lib/parse.js b/node_modules/postcss/lib/parse.js new file mode 100644 index 0000000..971431f --- /dev/null +++ b/node_modules/postcss/lib/parse.js @@ -0,0 +1,42 @@ +'use strict' + +let Container = require('./container') +let Parser = require('./parser') +let Input = require('./input') + +function parse(css, opts) { + let input = new Input(css, opts) + let parser = new Parser(input) + try { + parser.parse() + } catch (e) { + if (process.env.NODE_ENV !== 'production') { + if (e.name === 'CssSyntaxError' && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += + '\nYou tried to parse SCSS with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-scss parser' + } else if (/\.sass/i.test(opts.from)) { + e.message += + '\nYou tried to parse Sass with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-sass parser' + } else if (/\.less$/i.test(opts.from)) { + e.message += + '\nYou tried to parse Less with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-less parser' + } + } + } + throw e + } + + return parser.root +} + +module.exports = parse +parse.default = parse + +Container.registerParse(parse) diff --git a/node_modules/postcss/lib/parser.js b/node_modules/postcss/lib/parser.js new file mode 100644 index 0000000..752d264 --- /dev/null +++ b/node_modules/postcss/lib/parser.js @@ -0,0 +1,603 @@ +'use strict' + +let Declaration = require('./declaration') +let tokenizer = require('./tokenize') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Root = require('./root') +let Rule = require('./rule') + +const SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true +} + +function findLastWithPosition(tokens) { + for (let i = tokens.length - 1; i >= 0; i--) { + let token = tokens[i] + let pos = token[3] || token[2] + if (pos) return pos + } +} + +class Parser { + constructor(input) { + this.input = input + + this.root = new Root() + this.current = this.root + this.spaces = '' + this.semicolon = false + this.customProperty = false + + this.createTokenizer() + this.root.source = { input, start: { offset: 0, line: 1, column: 1 } } + } + + createTokenizer() { + this.tokenizer = tokenizer(this.input) + } + + parse() { + let token + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + + switch (token[0]) { + case 'space': + this.spaces += token[1] + break + + case ';': + this.freeSemicolon(token) + break + + case '}': + this.end(token) + break + + case 'comment': + this.comment(token) + break + + case 'at-word': + this.atrule(token) + break + + case '{': + this.emptyRule(token) + break + + default: + this.other(token) + break + } + } + this.endFile() + } + + comment(token) { + let node = new Comment() + this.init(node, token[2]) + node.source.end = this.getPosition(token[3] || token[2]) + + let text = token[1].slice(2, -2) + if (/^\s*$/.test(text)) { + node.text = '' + node.raws.left = text + node.raws.right = '' + } else { + let match = text.match(/^(\s*)([^]*\S)(\s*)$/) + node.text = match[2] + node.raws.left = match[1] + node.raws.right = match[3] + } + } + + emptyRule(token) { + let node = new Rule() + this.init(node, token[2]) + node.selector = '' + node.raws.between = '' + this.current = node + } + + other(start) { + let end = false + let type = null + let colon = false + let bracket = null + let brackets = [] + let customProperty = start[1].startsWith('--') + + let tokens = [] + let token = start + while (token) { + type = token[0] + tokens.push(token) + + if (type === '(' || type === '[') { + if (!bracket) bracket = token + brackets.push(type === '(' ? ')' : ']') + } else if (customProperty && colon && type === '{') { + if (!bracket) bracket = token + brackets.push('}') + } else if (brackets.length === 0) { + if (type === ';') { + if (colon) { + this.decl(tokens, customProperty) + return + } else { + break + } + } else if (type === '{') { + this.rule(tokens) + return + } else if (type === '}') { + this.tokenizer.back(tokens.pop()) + end = true + break + } else if (type === ':') { + colon = true + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + if (brackets.length === 0) bracket = null + } + + token = this.tokenizer.nextToken() + } + + if (this.tokenizer.endOfFile()) end = true + if (brackets.length > 0) this.unclosedBracket(bracket) + + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0] + if (token !== 'space' && token !== 'comment') break + this.tokenizer.back(tokens.pop()) + } + } + this.decl(tokens, customProperty) + } else { + this.unknownWord(tokens) + } + } + + rule(tokens) { + tokens.pop() + + let node = new Rule() + this.init(node, tokens[0][2]) + + node.raws.between = this.spacesAndCommentsFromEnd(tokens) + this.raw(node, 'selector', tokens) + this.current = node + } + + decl(tokens, customProperty) { + let node = new Declaration() + this.init(node, tokens[0][2]) + + let last = tokens[tokens.length - 1] + if (last[0] === ';') { + this.semicolon = true + tokens.pop() + } + + node.source.end = this.getPosition( + last[3] || last[2] || findLastWithPosition(tokens) + ) + + while (tokens[0][0] !== 'word') { + if (tokens.length === 1) this.unknownWord(tokens) + node.raws.before += tokens.shift()[1] + } + node.source.start = this.getPosition(tokens[0][2]) + + node.prop = '' + while (tokens.length) { + let type = tokens[0][0] + if (type === ':' || type === 'space' || type === 'comment') { + break + } + node.prop += tokens.shift()[1] + } + + node.raws.between = '' + + let token + while (tokens.length) { + token = tokens.shift() + + if (token[0] === ':') { + node.raws.between += token[1] + break + } else { + if (token[0] === 'word' && /\w/.test(token[1])) { + this.unknownWord([token]) + } + node.raws.between += token[1] + } + } + + if (node.prop[0] === '_' || node.prop[0] === '*') { + node.raws.before += node.prop[0] + node.prop = node.prop.slice(1) + } + + let firstSpaces = [] + let next + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + firstSpaces.push(tokens.shift()) + } + + this.precheckMissedSemicolon(tokens) + + for (let i = tokens.length - 1; i >= 0; i--) { + token = tokens[i] + if (token[1].toLowerCase() === '!important') { + node.important = true + let string = this.stringFrom(tokens, i) + string = this.spacesFromEnd(tokens) + string + if (string !== ' !important') node.raws.important = string + break + } else if (token[1].toLowerCase() === 'important') { + let cache = tokens.slice(0) + let str = '' + for (let j = i; j > 0; j--) { + let type = cache[j][0] + if (str.trim().indexOf('!') === 0 && type !== 'space') { + break + } + str = cache.pop()[1] + str + } + if (str.trim().indexOf('!') === 0) { + node.important = true + node.raws.important = str + tokens = cache + } + } + + if (token[0] !== 'space' && token[0] !== 'comment') { + break + } + } + + let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment') + + if (hasWord) { + node.raws.between += firstSpaces.map(i => i[1]).join('') + firstSpaces = [] + } + this.raw(node, 'value', firstSpaces.concat(tokens), customProperty) + + if (node.value.includes(':') && !customProperty) { + this.checkMissedSemicolon(tokens) + } + } + + atrule(token) { + let node = new AtRule() + node.name = token[1].slice(1) + if (node.name === '') { + this.unnamedAtrule(node, token) + } + this.init(node, token[2]) + + let type + let prev + let shift + let last = false + let open = false + let params = [] + let brackets = [] + + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + type = token[0] + + if (type === '(' || type === '[') { + brackets.push(type === '(' ? ')' : ']') + } else if (type === '{' && brackets.length > 0) { + brackets.push('}') + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + } + + if (brackets.length === 0) { + if (type === ';') { + node.source.end = this.getPosition(token[2]) + this.semicolon = true + break + } else if (type === '{') { + open = true + break + } else if (type === '}') { + if (params.length > 0) { + shift = params.length - 1 + prev = params[shift] + while (prev && prev[0] === 'space') { + prev = params[--shift] + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]) + } + } + this.end(token) + break + } else { + params.push(token) + } + } else { + params.push(token) + } + + if (this.tokenizer.endOfFile()) { + last = true + break + } + } + + node.raws.between = this.spacesAndCommentsFromEnd(params) + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params) + this.raw(node, 'params', params) + if (last) { + token = params[params.length - 1] + node.source.end = this.getPosition(token[3] || token[2]) + this.spaces = node.raws.between + node.raws.between = '' + } + } else { + node.raws.afterName = '' + node.params = '' + } + + if (open) { + node.nodes = [] + this.current = node + } + } + + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.semicolon = false + + this.current.raws.after = (this.current.raws.after || '') + this.spaces + this.spaces = '' + + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]) + this.current = this.current.parent + } else { + this.unexpectedClose(token) + } + } + + endFile() { + if (this.current.parent) this.unclosedBlock() + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.current.raws.after = (this.current.raws.after || '') + this.spaces + } + + freeSemicolon(token) { + this.spaces += token[1] + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1] + if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces + this.spaces = '' + } + } + } + + // Helpers + + getPosition(offset) { + let pos = this.input.fromOffset(offset) + return { + offset, + line: pos.line, + column: pos.col + } + } + + init(node, offset) { + this.current.push(node) + node.source = { + start: this.getPosition(offset), + input: this.input + } + node.raws.before = this.spaces + this.spaces = '' + if (node.type !== 'comment') this.semicolon = false + } + + raw(node, prop, tokens, customProperty) { + let token, type + let length = tokens.length + let value = '' + let clean = true + let next, prev + + for (let i = 0; i < length; i += 1) { + token = tokens[i] + type = token[0] + if (type === 'space' && i === length - 1 && !customProperty) { + clean = false + } else if (type === 'comment') { + prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty' + next = tokens[i + 1] ? tokens[i + 1][0] : 'empty' + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { + if (value.slice(-1) === ',') { + clean = false + } else { + value += token[1] + } + } else { + clean = false + } + } else { + value += token[1] + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], '') + node.raws[prop] = { value, raw } + } + node[prop] = value + } + + spacesAndCommentsFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space' && lastTokenType !== 'comment') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + spacesAndCommentsFromStart(tokens) { + let next + let spaces = '' + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + spaces += tokens.shift()[1] + } + return spaces + } + + spacesFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + stringFrom(tokens, from) { + let result = '' + for (let i = from; i < tokens.length; i++) { + result += tokens[i][1] + } + tokens.splice(from, tokens.length - from) + return result + } + + colon(tokens) { + let brackets = 0 + let token, type, prev + for (let [i, element] of tokens.entries()) { + token = element + type = token[0] + + if (type === '(') { + brackets += 1 + } + if (type === ')') { + brackets -= 1 + } + if (brackets === 0 && type === ':') { + if (!prev) { + this.doubleColon(token) + } else if (prev[0] === 'word' && prev[1] === 'progid') { + continue + } else { + return i + } + } + + prev = token + } + return false + } + + // Errors + + unclosedBracket(bracket) { + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) + } + + unknownWord(tokens) { + throw this.input.error( + 'Unknown word', + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) + } + + unexpectedClose(token) { + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) + } + + unclosedBlock() { + let pos = this.current.source.start + throw this.input.error('Unclosed block', pos.line, pos.column) + } + + doubleColon(token) { + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + unnamedAtrule(node, token) { + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + precheckMissedSemicolon(/* tokens */) { + // Hook for Safe Parser + } + + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens) + if (colon === false) return + + let founded = 0 + let token + for (let j = colon - 1; j >= 0; j--) { + token = tokens[j] + if (token[0] !== 'space') { + founded += 1 + if (founded === 2) break + } + } + // If the token is a word, e.g. `!important`, `red` or any other valid property's value. + // Then we need to return the colon after that word token. [3] is the "end" colon of that word. + // And because we need it after that one we do +1 to get the next one. + throw this.input.error( + 'Missed semicolon', + token[0] === 'word' ? token[3] + 1 : token[2] + ) + } +} + +module.exports = Parser diff --git a/node_modules/postcss/lib/postcss.d.mts b/node_modules/postcss/lib/postcss.d.mts new file mode 100644 index 0000000..a8ca8c7 --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.mts @@ -0,0 +1,72 @@ +export { + // postcss function / namespace + default, + + // Value exports from postcss.mjs + stringify, + fromJSON, + // @ts-expect-error This value exists, but it’s untyped. + plugin, + parse, + list, + + document, + comment, + atRule, + rule, + decl, + root, + + CssSyntaxError, + Declaration, + Container, + Processor, + Document, + Comment, + Warning, + AtRule, + Result, + Input, + Rule, + Root, + Node, + + // Type-only exports + AcceptedPlugin, + AnyNode, + AtRuleProps, + Builder, + ChildNode, + ChildProps, + CommentProps, + ContainerProps, + DeclarationProps, + DocumentProps, + FilePosition, + Helpers, + JSONHydrator, + Message, + NodeErrorOptions, + NodeProps, + OldPlugin, + Parser, + Plugin, + PluginCreator, + Position, + Postcss, + ProcessOptions, + RootProps, + RuleProps, + Source, + SourceMap, + SourceMapOptions, + Stringifier, + Syntax, + TransformCallback, + Transformer, + WarningOptions, + + // This is a class, but it’s not re-exported. That’s why it’s exported as type-only here. + type LazyResult, + +} from './postcss.js' diff --git a/node_modules/postcss/lib/postcss.d.ts b/node_modules/postcss/lib/postcss.d.ts new file mode 100644 index 0000000..c407c45 --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.ts @@ -0,0 +1,441 @@ +import { SourceMapGenerator, RawSourceMap } from 'source-map-js' + +import Node, { + Position, + Source, + ChildNode, + NodeErrorOptions, + NodeProps, + ChildProps, + AnyNode +} from './node.js' +import Declaration, { DeclarationProps } from './declaration.js' +import Container, { ContainerProps } from './container.js' +import Document, { DocumentProps } from './document.js' +import Warning, { WarningOptions } from './warning.js' +import Comment, { CommentProps } from './comment.js' +import AtRule, { AtRuleProps } from './at-rule.js' +import Input, { FilePosition } from './input.js' +import Result, { Message } from './result.js' +import Root, { RootProps } from './root.js' +import Rule, { RuleProps } from './rule.js' +import CssSyntaxError from './css-syntax-error.js' +import list from './list.js' +import LazyResult from './lazy-result.js' +import Processor from './processor.js' + +type DocumentProcessor = ( + document: Document, + helper: postcss.Helpers +) => Promise | void +type RootProcessor = (root: Root, helper: postcss.Helpers) => Promise | void +type DeclarationProcessor = ( + decl: Declaration, + helper: postcss.Helpers +) => Promise | void +type RuleProcessor = (rule: Rule, helper: postcss.Helpers) => Promise | void +type AtRuleProcessor = (atRule: AtRule, helper: postcss.Helpers) => Promise | void +type CommentProcessor = ( + comment: Comment, + helper: postcss.Helpers +) => Promise | void + +interface Processors { + /** + * Will be called on `Document` node. + * + * Will be called again on children changes. + */ + Document?: DocumentProcessor + + /** + * Will be called on `Document` node, when all children will be processed. + * + * Will be called again on children changes. + */ + DocumentExit?: DocumentProcessor + + /** + * Will be called on `Root` node once. + */ + Once?: RootProcessor + + /** + * Will be called on `Root` node once, when all children will be processed. + */ + OnceExit?: RootProcessor + + /** + * Will be called on `Root` node. + * + * Will be called again on children changes. + */ + Root?: RootProcessor + + /** + * Will be called on `Root` node, when all children will be processed. + * + * Will be called again on children changes. + */ + RootExit?: RootProcessor + + /** + * Will be called on all `Declaration` nodes after listeners + * for `Declaration` event. + * + * Will be called again on node or children changes. + */ + Declaration?: DeclarationProcessor | { [prop: string]: DeclarationProcessor } + + /** + * Will be called on all `Declaration` nodes. + * + * Will be called again on node or children changes. + */ + DeclarationExit?: + | DeclarationProcessor + | { [prop: string]: DeclarationProcessor } + + /** + * Will be called on all `Rule` nodes. + * + * Will be called again on node or children changes. + */ + Rule?: RuleProcessor + + /** + * Will be called on all `Rule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + RuleExit?: RuleProcessor + + /** + * Will be called on all`AtRule` nodes. + * + * Will be called again on node or children changes. + */ + AtRule?: AtRuleProcessor | { [name: string]: AtRuleProcessor } + + /** + * Will be called on all `AtRule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + AtRuleExit?: AtRuleProcessor | { [name: string]: AtRuleProcessor } + + /** + * Will be called on all `Comment` nodes. + * + * Will be called again on node or children changes. + */ + Comment?: CommentProcessor + + /** + * Will be called on all `Comment` nodes after listeners + * for `Comment` event. + * + * Will be called again on node or children changes. + */ + CommentExit?: CommentProcessor +} + +declare namespace postcss { + export { + NodeErrorOptions, + DeclarationProps, + CssSyntaxError, + ContainerProps, + WarningOptions, + DocumentProps, + FilePosition, + CommentProps, + AtRuleProps, + Declaration, + ChildProps, + LazyResult, + ChildNode, + NodeProps, + Processor, + RuleProps, + RootProps, + Container, + Position, + Document, + AnyNode, + Warning, + Message, + Comment, + Source, + AtRule, + Result, + Input, + Node, + list, + Rule, + Root + } + + export type SourceMap = SourceMapGenerator & { + toJSON(): RawSourceMap + } + + export type Helpers = { result: Result; postcss: Postcss } & Postcss + + export interface Plugin extends Processors { + postcssPlugin: string + prepare?: (result: Result) => Processors + } + + export interface PluginCreator { + (opts?: PluginOptions): Plugin | Processor + postcss: true + } + + export interface Transformer extends TransformCallback { + postcssPlugin: string + postcssVersion: string + } + + export interface TransformCallback { + (root: Root, result: Result): Promise | void + } + + export interface OldPlugin extends Transformer { + (opts?: T): Transformer + postcss: Transformer + } + + export type AcceptedPlugin = + | Plugin + | PluginCreator + | OldPlugin + | TransformCallback + | { + postcss: TransformCallback | Processor + } + | Processor + + export interface Parser { + ( + css: string | { toString(): string }, + opts?: Pick + ): RootNode + } + + export interface Builder { + (part: string, node?: AnyNode, type?: 'start' | 'end'): void + } + + export interface Stringifier { + (node: AnyNode, builder: Builder): void + } + + export interface JSONHydrator { + (data: object[]): Node[] + (data: object): Node + } + + export interface Syntax { + /** + * Function to generate AST by string. + */ + parse?: Parser + + /** + * Class to generate string by AST. + */ + stringify?: Stringifier + } + + export interface SourceMapOptions { + /** + * Indicates that the source map should be embedded in the output CSS + * as a Base64-encoded comment. By default, it is `true`. + * But if all previous maps are external, not inline, PostCSS will not embed + * the map even if you do not set this option. + * + * If you have an inline source map, the result.map property will be empty, + * as the source map will be contained within the text of `result.css`. + */ + inline?: boolean + + /** + * Source map content from a previous processing step (e.g., Sass). + * + * PostCSS will try to read the previous source map + * automatically (based on comments within the source CSS), but you can use + * this option to identify it manually. + * + * If desired, you can omit the previous map with prev: `false`. + */ + prev?: string | boolean | object | ((file: string) => string) + + /** + * Indicates that PostCSS should set the origin content (e.g., Sass source) + * of the source map. By default, it is true. But if all previous maps do not + * contain sources content, PostCSS will also leave it out even if you + * do not set this option. + */ + sourcesContent?: boolean + + /** + * Indicates that PostCSS should add annotation comments to the CSS. + * By default, PostCSS will always add a comment with a path + * to the source map. PostCSS will not add annotations to CSS files + * that do not contain any comments. + * + * By default, PostCSS presumes that you want to save the source map as + * `opts.to + '.map'` and will use this path in the annotation comment. + * A different path can be set by providing a string value for annotation. + * + * If you have set `inline: true`, annotation cannot be disabled. + */ + annotation?: string | boolean | ((file: string, root: Root) => string) + + /** + * Override `from` in map’s sources. + */ + from?: string + + /** + * Use absolute path in generated source map. + */ + absolute?: boolean + } + + export interface ProcessOptions { + /** + * The path of the CSS source file. You should always set `from`, + * because it is used in source map generation and syntax error messages. + */ + from?: string + + /** + * The path where you'll put the output CSS file. You should always set `to` + * to generate correct source maps. + */ + to?: string + + /** + * Function to generate AST by string. + */ + parser?: Syntax | Parser + + /** + * Class to generate string by AST. + */ + stringifier?: Syntax | Stringifier + + /** + * Object with parse and stringify. + */ + syntax?: Syntax + + /** + * Source map options + */ + map?: SourceMapOptions | boolean + } + + export type Postcss = typeof postcss + + /** + * Default function to convert a node tree into a CSS string. + */ + export let stringify: Stringifier + + /** + * Parses source css and returns a new `Root` or `Document` node, + * which contains the source CSS nodes. + * + * ```js + * // Simple CSS concatenation with source map support + * const root1 = postcss.parse(css1, { from: file1 }) + * const root2 = postcss.parse(css2, { from: file2 }) + * root1.append(root2).toResult().css + * ``` + */ + export let parse: Parser + + /** + * Rehydrate a JSON AST (from `Node#toJSON`) back into the AST classes. + * + * ```js + * const json = root.toJSON() + * // save to file, send by network, etc + * const root2 = postcss.fromJSON(json) + * ``` + */ + export let fromJSON: JSONHydrator + + /** + * Creates a new `Comment` node. + * + * @param defaults Properties for the new node. + * @return New comment node + */ + export function comment(defaults?: CommentProps): Comment + + /** + * Creates a new `AtRule` node. + * + * @param defaults Properties for the new node. + * @return New at-rule node. + */ + export function atRule(defaults?: AtRuleProps): AtRule + + /** + * Creates a new `Declaration` node. + * + * @param defaults Properties for the new node. + * @return New declaration node. + */ + export function decl(defaults?: DeclarationProps): Declaration + + /** + * Creates a new `Rule` node. + * + * @param default Properties for the new node. + * @return New rule node. + */ + export function rule(defaults?: RuleProps): Rule + + /** + * Creates a new `Root` node. + * + * @param defaults Properties for the new node. + * @return New root node. + */ + export function root(defaults?: RootProps): Root + + /** + * Creates a new `Document` node. + * + * @param defaults Properties for the new node. + * @return New document node. + */ + export function document(defaults?: DocumentProps): Document + + export { postcss as default } +} + +/** + * Create a new `Processor` instance that will apply `plugins` + * as CSS processors. + * + * ```js + * let postcss = require('postcss') + * + * postcss(plugins).process(css, { from, to }).then(result => { + * console.log(result.css) + * }) + * ``` + * + * @param plugins PostCSS plugins. + * @return Processor to process multiple CSS. + */ +declare function postcss(plugins?: postcss.AcceptedPlugin[]): Processor +declare function postcss(...plugins: postcss.AcceptedPlugin[]): Processor + +export = postcss diff --git a/node_modules/postcss/lib/postcss.js b/node_modules/postcss/lib/postcss.js new file mode 100644 index 0000000..080ee83 --- /dev/null +++ b/node_modules/postcss/lib/postcss.js @@ -0,0 +1,101 @@ +'use strict' + +let CssSyntaxError = require('./css-syntax-error') +let Declaration = require('./declaration') +let LazyResult = require('./lazy-result') +let Container = require('./container') +let Processor = require('./processor') +let stringify = require('./stringify') +let fromJSON = require('./fromJSON') +let Document = require('./document') +let Warning = require('./warning') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Result = require('./result.js') +let Input = require('./input') +let parse = require('./parse') +let list = require('./list') +let Rule = require('./rule') +let Root = require('./root') +let Node = require('./node') + +function postcss(...plugins) { + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0] + } + return new Processor(plugins) +} + +postcss.plugin = function plugin(name, initializer) { + let warningPrinted = false + function creator(...args) { + // eslint-disable-next-line no-console + if (console && console.warn && !warningPrinted) { + warningPrinted = true + // eslint-disable-next-line no-console + console.warn( + name + + ': postcss.plugin was deprecated. Migration guide:\n' + + 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' + ) + if (process.env.LANG && process.env.LANG.startsWith('cn')) { + /* c8 ignore next 7 */ + // eslint-disable-next-line no-console + console.warn( + name + + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + + 'https://www.w3ctech.com/topic/2226' + ) + } + } + let transformer = initializer(...args) + transformer.postcssPlugin = name + transformer.postcssVersion = new Processor().version + return transformer + } + + let cache + Object.defineProperty(creator, 'postcss', { + get() { + if (!cache) cache = creator() + return cache + } + }) + + creator.process = function (css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts) + } + + return creator +} + +postcss.stringify = stringify +postcss.parse = parse +postcss.fromJSON = fromJSON +postcss.list = list + +postcss.comment = defaults => new Comment(defaults) +postcss.atRule = defaults => new AtRule(defaults) +postcss.decl = defaults => new Declaration(defaults) +postcss.rule = defaults => new Rule(defaults) +postcss.root = defaults => new Root(defaults) +postcss.document = defaults => new Document(defaults) + +postcss.CssSyntaxError = CssSyntaxError +postcss.Declaration = Declaration +postcss.Container = Container +postcss.Processor = Processor +postcss.Document = Document +postcss.Comment = Comment +postcss.Warning = Warning +postcss.AtRule = AtRule +postcss.Result = Result +postcss.Input = Input +postcss.Rule = Rule +postcss.Root = Root +postcss.Node = Node + +LazyResult.registerPostcss(postcss) + +module.exports = postcss +postcss.default = postcss diff --git a/node_modules/postcss/lib/postcss.mjs b/node_modules/postcss/lib/postcss.mjs new file mode 100644 index 0000000..3507598 --- /dev/null +++ b/node_modules/postcss/lib/postcss.mjs @@ -0,0 +1,30 @@ +import postcss from './postcss.js' + +export default postcss + +export const stringify = postcss.stringify +export const fromJSON = postcss.fromJSON +export const plugin = postcss.plugin +export const parse = postcss.parse +export const list = postcss.list + +export const document = postcss.document +export const comment = postcss.comment +export const atRule = postcss.atRule +export const rule = postcss.rule +export const decl = postcss.decl +export const root = postcss.root + +export const CssSyntaxError = postcss.CssSyntaxError +export const Declaration = postcss.Declaration +export const Container = postcss.Container +export const Processor = postcss.Processor +export const Document = postcss.Document +export const Comment = postcss.Comment +export const Warning = postcss.Warning +export const AtRule = postcss.AtRule +export const Result = postcss.Result +export const Input = postcss.Input +export const Rule = postcss.Rule +export const Root = postcss.Root +export const Node = postcss.Node diff --git a/node_modules/postcss/lib/previous-map.d.ts b/node_modules/postcss/lib/previous-map.d.ts new file mode 100644 index 0000000..ce0ddc2 --- /dev/null +++ b/node_modules/postcss/lib/previous-map.d.ts @@ -0,0 +1,81 @@ +import { SourceMapConsumer } from 'source-map-js' + +import { ProcessOptions } from './postcss.js' + +declare namespace PreviousMap { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { PreviousMap_ as default } +} + +/** + * Source map information from input CSS. + * For example, source map after Sass compiler. + * + * This class will automatically find source map in input CSS or in file system + * near input file (according `from` option). + * + * ```js + * const root = parse(css, { from: 'a.sass.css' }) + * root.input.map //=> PreviousMap + * ``` + */ +declare class PreviousMap_ { + /** + * Was source map inlined by data-uri to input CSS. + */ + inline: boolean + + /** + * `sourceMappingURL` content. + */ + annotation?: string + + /** + * Source map file content. + */ + text?: string + + /** + * The directory with source map file, if source map is in separated file. + */ + root?: string + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + */ + file?: string + + /** + * Path to source map file. + */ + mapFile?: string + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + /** + * Create a instance of `SourceMapGenerator` class + * from the `source-map` library to work with source map information. + * + * It is lazy method, so it will create object only on first call + * and then it will use cache. + * + * @return Object with source map information. + */ + consumer(): SourceMapConsumer + + /** + * Does source map contains `sourcesContent` with input source text. + * + * @return Is `sourcesContent` present. + */ + withContent(): boolean +} + +declare class PreviousMap extends PreviousMap_ {} + +export = PreviousMap diff --git a/node_modules/postcss/lib/previous-map.js b/node_modules/postcss/lib/previous-map.js new file mode 100644 index 0000000..d13a93a --- /dev/null +++ b/node_modules/postcss/lib/previous-map.js @@ -0,0 +1,142 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { existsSync, readFileSync } = require('fs') +let { dirname, join } = require('path') + +function fromBase64(str) { + if (Buffer) { + return Buffer.from(str, 'base64').toString() + } else { + /* c8 ignore next 2 */ + return window.atob(str) + } +} + +class PreviousMap { + constructor(css, opts) { + if (opts.map === false) return + this.loadAnnotation(css) + this.inline = this.startWith(this.annotation, 'data:') + + let prev = opts.map ? opts.map.prev : undefined + let text = this.loadMap(opts.from, prev) + if (!this.mapFile && opts.from) { + this.mapFile = opts.from + } + if (this.mapFile) this.root = dirname(this.mapFile) + if (text) this.text = text + } + + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text) + } + return this.consumerCache + } + + withContent() { + return !!( + this.consumer().sourcesContent && + this.consumer().sourcesContent.length > 0 + ) + } + + startWith(string, start) { + if (!string) return false + return string.substr(0, start.length) === start + } + + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() + } + + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/gm) + if (!comments) return + + // sourceMappingURLs from comments, strings, etc. + let start = css.lastIndexOf(comments.pop()) + let end = css.indexOf('*/', start) + + if (start > -1 && end > -1) { + // Locate the last sourceMappingURL to avoid pickin + this.annotation = this.getAnnotationURL(css.substring(start, end)) + } + } + + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/ + let baseUri = /^data:application\/json;base64,/ + let charsetUri = /^data:application\/json;charset=utf-?8,/ + let uri = /^data:application\/json,/ + + if (charsetUri.test(text) || uri.test(text)) { + return decodeURIComponent(text.substr(RegExp.lastMatch.length)) + } + + if (baseCharsetUri.test(text) || baseUri.test(text)) { + return fromBase64(text.substr(RegExp.lastMatch.length)) + } + + let encoding = text.match(/data:application\/json;([^,]+),/)[1] + throw new Error('Unsupported source map encoding ' + encoding) + } + + loadFile(path) { + this.root = dirname(path) + if (existsSync(path)) { + this.mapFile = path + return readFileSync(path, 'utf-8').toString().trim() + } + } + + loadMap(file, prev) { + if (prev === false) return false + + if (prev) { + if (typeof prev === 'string') { + return prev + } else if (typeof prev === 'function') { + let prevPath = prev(file) + if (prevPath) { + let map = this.loadFile(prevPath) + if (!map) { + throw new Error( + 'Unable to load previous source map: ' + prevPath.toString() + ) + } + return map + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString() + } else if (prev instanceof SourceMapGenerator) { + return prev.toString() + } else if (this.isMap(prev)) { + return JSON.stringify(prev) + } else { + throw new Error( + 'Unsupported previous source map format: ' + prev.toString() + ) + } + } else if (this.inline) { + return this.decodeInline(this.annotation) + } else if (this.annotation) { + let map = this.annotation + if (file) map = join(dirname(file), map) + return this.loadFile(map) + } + } + + isMap(map) { + if (typeof map !== 'object') return false + return ( + typeof map.mappings === 'string' || + typeof map._mappings === 'string' || + Array.isArray(map.sections) + ) + } +} + +module.exports = PreviousMap +PreviousMap.default = PreviousMap diff --git a/node_modules/postcss/lib/processor.d.ts b/node_modules/postcss/lib/processor.d.ts new file mode 100644 index 0000000..fe9825b --- /dev/null +++ b/node_modules/postcss/lib/processor.d.ts @@ -0,0 +1,111 @@ +import { + AcceptedPlugin, + Plugin, + ProcessOptions, + Transformer, + TransformCallback +} from './postcss.js' +import LazyResult from './lazy-result.js' +import Result from './result.js' +import Root from './root.js' +import NoWorkResult from './no-work-result.js' + +declare namespace Processor { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Processor_ as default } +} + +/** + * Contains plugins to process CSS. Create one `Processor` instance, + * initialize its plugins, and then use that instance on numerous CSS files. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.process(css1).then(result => console.log(result.css)) + * processor.process(css2).then(result => console.log(result.css)) + * ``` + */ +declare class Processor_ { + /** + * Current PostCSS version. + * + * ```js + * if (result.processor.version.split('.')[0] !== '6') { + * throw new Error('This plugin works only with PostCSS 6') + * } + * ``` + */ + version: string + + /** + * Plugins added to this processor. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.plugins.length //=> 2 + * ``` + */ + plugins: (Plugin | Transformer | TransformCallback)[] + + /** + * @param plugins PostCSS plugins + */ + constructor(plugins?: AcceptedPlugin[]) + + /** + * Adds a plugin to be used as a CSS processor. + * + * PostCSS plugin can be in 4 formats: + * * A plugin in `Plugin` format. + * * A plugin creator function with `pluginCreator.postcss = true`. + * PostCSS will call this function without argument to get plugin. + * * A function. PostCSS will pass the function a {@link Root} + * as the first argument and current `Result` instance + * as the second. + * * Another `Processor` instance. PostCSS will copy plugins + * from that instance into this one. + * + * Plugins can also be added by passing them as arguments when creating + * a `postcss` instance (see [`postcss(plugins)`]). + * + * Asynchronous plugins should return a `Promise` instance. + * + * ```js + * const processor = postcss() + * .use(autoprefixer) + * .use(postcssNested) + * ``` + * + * @param plugin PostCSS plugin or `Processor` with plugins. + * @return Current processor to make methods chain. + */ + use(plugin: AcceptedPlugin): this + + /** + * Parses source CSS and returns a `LazyResult` Promise proxy. + * Because some plugins can be asynchronous it doesn’t make + * any transformations. Transformations will be applied + * in the `LazyResult` methods. + * + * ```js + * processor.process(css, { from: 'a.css', to: 'a.out.css' }) + * .then(result => { + * console.log(result.css) + * }) + * ``` + * + * @param css String with input CSS or any object with a `toString()` method, + * like a Buffer. Optionally, send a `Result` instance + * and the processor will take the `Root` from it. + * @param opts Options. + * @return Promise proxy. + */ + process( + css: string | { toString(): string } | Result | LazyResult | Root, + options?: ProcessOptions + ): LazyResult | NoWorkResult +} + +declare class Processor extends Processor_ {} + +export = Processor diff --git a/node_modules/postcss/lib/processor.js b/node_modules/postcss/lib/processor.js new file mode 100644 index 0000000..f1566dd --- /dev/null +++ b/node_modules/postcss/lib/processor.js @@ -0,0 +1,67 @@ +'use strict' + +let NoWorkResult = require('./no-work-result') +let LazyResult = require('./lazy-result') +let Document = require('./document') +let Root = require('./root') + +class Processor { + constructor(plugins = []) { + this.version = '8.4.24' + this.plugins = this.normalize(plugins) + } + + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])) + return this + } + + process(css, opts = {}) { + if ( + this.plugins.length === 0 && + typeof opts.parser === 'undefined' && + typeof opts.stringifier === 'undefined' && + typeof opts.syntax === 'undefined' + ) { + return new NoWorkResult(this, css, opts) + } else { + return new LazyResult(this, css, opts) + } + } + + normalize(plugins) { + let normalized = [] + for (let i of plugins) { + if (i.postcss === true) { + i = i() + } else if (i.postcss) { + i = i.postcss + } + + if (typeof i === 'object' && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins) + } else if (typeof i === 'object' && i.postcssPlugin) { + normalized.push(i) + } else if (typeof i === 'function') { + normalized.push(i) + } else if (typeof i === 'object' && (i.parse || i.stringify)) { + if (process.env.NODE_ENV !== 'production') { + throw new Error( + 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + + 'one of the syntax/parser/stringifier options as outlined ' + + 'in your PostCSS runner documentation.' + ) + } + } else { + throw new Error(i + ' is not a PostCSS plugin') + } + } + return normalized + } +} + +module.exports = Processor +Processor.default = Processor + +Root.registerProcessor(Processor) +Document.registerProcessor(Processor) diff --git a/node_modules/postcss/lib/result.d.ts b/node_modules/postcss/lib/result.d.ts new file mode 100644 index 0000000..e5d2796 --- /dev/null +++ b/node_modules/postcss/lib/result.d.ts @@ -0,0 +1,206 @@ +import { + ProcessOptions, + Plugin, + SourceMap, + TransformCallback, + Root, + Document, + Node, + Warning, + WarningOptions +} from './postcss.js' +import Processor from './processor.js' + +declare namespace Result { + export interface Message { + /** + * Message type. + */ + type: string + + /** + * Source PostCSS plugin name. + */ + plugin?: string + + [others: string]: any + } + + export interface ResultOptions extends ProcessOptions { + /** + * The CSS node that was the source of the warning. + */ + node?: Node + + /** + * Name of plugin that created this warning. `Result#warn` will fill it + * automatically with `Plugin#postcssPlugin` value. + */ + plugin?: string + } + + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Result_ as default } +} + +/** + * Provides the result of the PostCSS transformations. + * + * A Result instance is returned by `LazyResult#then` + * or `Root#toResult` methods. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }) + * ``` + * + * ```js + * const result2 = postcss.parse(css).toResult() + * ``` + */ +declare class Result_ { + /** + * The Processor instance used for this transformation. + * + * ```js + * for (const plugin of result.processor.plugins) { + * if (plugin.postcssPlugin === 'postcss-bad') { + * throw 'postcss-good is incompatible with postcss-bad' + * } + * }) + * ``` + */ + processor: Processor + + /** + * Contains messages from plugins (e.g., warnings or custom messages). + * Each message should have type and plugin properties. + * + * ```js + * AtRule: { + * import: (atRule, { result }) { + * const importedFile = parseImport(atRule) + * result.messages.push({ + * type: 'dependency', + * plugin: 'postcss-import', + * file: importedFile, + * parent: result.opts.from + * }) + * } + * } + * ``` + */ + messages: Result.Message[] + + /** + * Root node after all transformations. + * + * ```js + * root.toResult().root === root + * ``` + */ + root: Root | Document + + /** + * Options from the `Processor#process` or `Root#toResult` call + * that produced this Result instance.] + * + * ```js + * root.toResult(opts).opts === opts + * ``` + */ + opts: Result.ResultOptions + + /** + * A CSS string representing of `Result#root`. + * + * ```js + * postcss.parse('a{}').toResult().css //=> "a{}" + * ``` + */ + css: string + + /** + * An instance of `SourceMapGenerator` class from the `source-map` library, + * representing changes to the `Result#root` instance. + * + * ```js + * result.map.toJSON() //=> { version: 3, file: 'a.css', … } + * ``` + * + * ```js + * if (result.map) { + * fs.writeFileSync(result.opts.to + '.map', result.map.toString()) + * } + * ``` + */ + map: SourceMap + + /** + * Last runned PostCSS plugin. + */ + lastPlugin: Plugin | TransformCallback + + /** + * @param processor Processor used for this transformation. + * @param root Root node after all transformations. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, root: Root | Document, opts: Result.ResultOptions) + + /** + * An alias for the `Result#css` property. + * Use it with syntaxes that generate non-CSS output. + * + * ```js + * result.css === result.content + * ``` + */ + get content(): string + + /** + * Returns for `Result#css` content. + * + * ```js + * result + '' === result.css + * ``` + * + * @return String representing of `Result#root`. + */ + toString(): string + + /** + * Creates an instance of `Warning` and adds it to `Result#messages`. + * + * ```js + * if (decl.important) { + * result.warn('Avoid !important', { node: decl, word: '!important' }) + * } + * ``` + * + * @param text Warning message. + * @param opts Warning options. + * @return Created warning. + */ + warn(message: string, options?: WarningOptions): Warning + + /** + * Returns warnings from plugins. Filters `Warning` instances + * from `Result#messages`. + * + * ```js + * result.warnings().forEach(warn => { + * console.warn(warn.toString()) + * }) + * ``` + * + * @return Warnings from plugins. + */ + warnings(): Warning[] +} + +declare class Result extends Result_ {} + +export = Result diff --git a/node_modules/postcss/lib/result.js b/node_modules/postcss/lib/result.js new file mode 100644 index 0000000..a39751d --- /dev/null +++ b/node_modules/postcss/lib/result.js @@ -0,0 +1,42 @@ +'use strict' + +let Warning = require('./warning') + +class Result { + constructor(processor, root, opts) { + this.processor = processor + this.messages = [] + this.root = root + this.opts = opts + this.css = undefined + this.map = undefined + } + + toString() { + return this.css + } + + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin + } + } + + let warning = new Warning(text, opts) + this.messages.push(warning) + + return warning + } + + warnings() { + return this.messages.filter(i => i.type === 'warning') + } + + get content() { + return this.css + } +} + +module.exports = Result +Result.default = Result diff --git a/node_modules/postcss/lib/root.d.ts b/node_modules/postcss/lib/root.d.ts new file mode 100644 index 0000000..d00cfbc --- /dev/null +++ b/node_modules/postcss/lib/root.d.ts @@ -0,0 +1,82 @@ +import Container, { ContainerProps } from './container.js' +import Document from './document.js' +import { ProcessOptions } from './postcss.js' +import Result from './result.js' + +declare namespace Root { + export interface RootRaws extends Record { + /** + * The space symbols after the last child to the end of file. + */ + after?: string + + /** + * Non-CSS code before `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeBefore?: string + + /** + * Non-CSS code after `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeAfter?: string + + /** + * Is the last child has an (optional) semicolon. + */ + semicolon?: boolean + } + + export interface RootProps extends ContainerProps { + /** + * Information used to generate byte-to-byte equal node string + * as it was in the origin input. + * */ + raws?: RootRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Root_ as default } +} + +/** + * Represents a CSS file and contains all its parsed nodes. + * + * ```js + * const root = postcss.parse('a{color:black} b{z-index:2}') + * root.type //=> 'root' + * root.nodes.length //=> 2 + * ``` + */ +declare class Root_ extends Container { + type: 'root' + parent: Document | undefined + raws: Root.RootRaws + + /** + * Returns a `Result` instance representing the root’s CSS. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * root1.append(root2) + * const result = root1.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param opts Options. + * @return Result with current root’s CSS. + */ + toResult(options?: ProcessOptions): Result + + constructor(defaults?: Root.RootProps) + assign(overrides: object | Root.RootProps): this +} + +declare class Root extends Root_ {} + +export = Root diff --git a/node_modules/postcss/lib/root.js b/node_modules/postcss/lib/root.js new file mode 100644 index 0000000..6f3dbb6 --- /dev/null +++ b/node_modules/postcss/lib/root.js @@ -0,0 +1,61 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Root extends Container { + constructor(defaults) { + super(defaults) + this.type = 'root' + if (!this.nodes) this.nodes = [] + } + + removeChild(child, ignore) { + let index = this.index(child) + + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before + } + + return super.removeChild(child) + } + + normalize(child, sample, type) { + let nodes = super.normalize(child) + + if (sample) { + if (type === 'prepend') { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before + } else { + delete sample.raws.before + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before + } + } + } + + return nodes + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + return lazy.stringify() + } +} + +Root.registerLazyResult = dependant => { + LazyResult = dependant +} + +Root.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Root +Root.default = Root + +Container.registerRoot(Root) diff --git a/node_modules/postcss/lib/rule.d.ts b/node_modules/postcss/lib/rule.d.ts new file mode 100644 index 0000000..37fbb25 --- /dev/null +++ b/node_modules/postcss/lib/rule.d.ts @@ -0,0 +1,113 @@ +import Container, { ContainerProps } from './container.js' + +declare namespace Rule { + export interface RuleRaws extends Record { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The symbols between the selector and `{` for rules. + */ + between?: string + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + + /** + * Contains `true` if there is semicolon after rule. + */ + ownSemicolon?: string + + /** + * The rule’s selector with comments. + */ + selector?: { + value: string + raw: string + } + } + + export interface RuleProps extends ContainerProps { + /** Selector or selectors of the rule. */ + selector?: string + /** Selectors of the rule represented as an array of strings. */ + selectors?: string[] + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: RuleRaws + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Rule_ as default } +} + +/** + * Represents a CSS rule: a selector followed by a declaration block. + * + * ```js + * Once (root, { Rule }) { + * let a = new Rule({ selector: 'a' }) + * a.append(…) + * root.append(a) + * } + * ``` + * + * ```js + * const root = postcss.parse('a{}') + * const rule = root.first + * rule.type //=> 'rule' + * rule.toString() //=> 'a{}' + * ``` + */ +declare class Rule_ extends Container { + type: 'rule' + parent: Container | undefined + raws: Rule.RuleRaws + + /** + * The rule’s full selector represented as a string. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * rule.selector //=> 'a, b' + * ``` + */ + selector: string + + /** + * An array containing the rule’s individual selectors. + * Groups of selectors are split at commas. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * + * rule.selector //=> 'a, b' + * rule.selectors //=> ['a', 'b'] + * + * rule.selectors = ['a', 'strong'] + * rule.selector //=> 'a, strong' + * ``` + */ + selectors: string[] + + constructor(defaults?: Rule.RuleProps) + assign(overrides: object | Rule.RuleProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} + +declare class Rule extends Rule_ {} + +export = Rule diff --git a/node_modules/postcss/lib/rule.js b/node_modules/postcss/lib/rule.js new file mode 100644 index 0000000..a93ab25 --- /dev/null +++ b/node_modules/postcss/lib/rule.js @@ -0,0 +1,27 @@ +'use strict' + +let Container = require('./container') +let list = require('./list') + +class Rule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'rule' + if (!this.nodes) this.nodes = [] + } + + get selectors() { + return list.comma(this.selector) + } + + set selectors(values) { + let match = this.selector ? this.selector.match(/,\s*/) : null + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') + this.selector = values.join(sep) + } +} + +module.exports = Rule +Rule.default = Rule + +Container.registerRule(Rule) diff --git a/node_modules/postcss/lib/stringifier.d.ts b/node_modules/postcss/lib/stringifier.d.ts new file mode 100644 index 0000000..249acf4 --- /dev/null +++ b/node_modules/postcss/lib/stringifier.d.ts @@ -0,0 +1,46 @@ +import { + Document, + Root, + Comment, + Declaration, + Builder, + AnyNode, + Rule, + AtRule, + Container +} from './postcss.js' + +declare namespace Stringifier { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Stringifier_ as default } +} + +declare class Stringifier_ { + builder: Builder + constructor(builder: Builder) + stringify(node: AnyNode, semicolon?: boolean): void + document(node: Document): void + root(node: Root): void + comment(node: Comment): void + decl(node: Declaration, semicolon?: boolean): void + rule(node: Rule): void + atrule(node: AtRule, semicolon?: boolean): void + body(node: Container): void + block(node: AnyNode, start: string): void + raw(node: AnyNode, own: string | null, detect?: string): string + rawSemicolon(root: Root): boolean | undefined + rawEmptyBody(root: Root): string | undefined + rawIndent(root: Root): string | undefined + rawBeforeComment(root: Root, node: Comment): string | undefined + rawBeforeDecl(root: Root, node: Declaration): string | undefined + rawBeforeRule(root: Root): string | undefined + rawBeforeClose(root: Root): string | undefined + rawBeforeOpen(root: Root): string | undefined + rawColon(root: Root): string | undefined + beforeAfter(node: AnyNode, detect: 'before' | 'after'): string + rawValue(node: AnyNode, prop: string): string +} + +declare class Stringifier extends Stringifier_ {} + +export = Stringifier diff --git a/node_modules/postcss/lib/stringifier.js b/node_modules/postcss/lib/stringifier.js new file mode 100644 index 0000000..4065c47 --- /dev/null +++ b/node_modules/postcss/lib/stringifier.js @@ -0,0 +1,353 @@ +'use strict' + +const DEFAULT_RAW = { + colon: ': ', + indent: ' ', + beforeDecl: '\n', + beforeRule: '\n', + beforeOpen: ' ', + beforeClose: '\n', + beforeComment: '\n', + after: '\n', + emptyBody: '', + commentLeft: ' ', + commentRight: ' ', + semicolon: false +} + +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1) +} + +class Stringifier { + constructor(builder) { + this.builder = builder + } + + stringify(node, semicolon) { + /* c8 ignore start */ + if (!this[node.type]) { + throw new Error( + 'Unknown AST node type ' + + node.type + + '. ' + + 'Maybe you need to change PostCSS stringifier.' + ) + } + /* c8 ignore stop */ + this[node.type](node, semicolon) + } + + document(node) { + this.body(node) + } + + root(node) { + this.body(node) + if (node.raws.after) this.builder(node.raws.after) + } + + comment(node) { + let left = this.raw(node, 'left', 'commentLeft') + let right = this.raw(node, 'right', 'commentRight') + this.builder('/*' + left + node.text + right + '*/', node) + } + + decl(node, semicolon) { + let between = this.raw(node, 'between', 'colon') + let string = node.prop + between + this.rawValue(node, 'value') + + if (node.important) { + string += node.raws.important || ' !important' + } + + if (semicolon) string += ';' + this.builder(string, node) + } + + rule(node) { + this.block(node, this.rawValue(node, 'selector')) + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end') + } + } + + atrule(node, semicolon) { + let name = '@' + node.name + let params = node.params ? this.rawValue(node, 'params') : '' + + if (typeof node.raws.afterName !== 'undefined') { + name += node.raws.afterName + } else if (params) { + name += ' ' + } + + if (node.nodes) { + this.block(node, name + params) + } else { + let end = (node.raws.between || '') + (semicolon ? ';' : '') + this.builder(name + params + end, node) + } + } + + body(node) { + let last = node.nodes.length - 1 + while (last > 0) { + if (node.nodes[last].type !== 'comment') break + last -= 1 + } + + let semicolon = this.raw(node, 'semicolon') + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i] + let before = this.raw(child, 'before') + if (before) this.builder(before) + this.stringify(child, last !== i || semicolon) + } + } + + block(node, start) { + let between = this.raw(node, 'between', 'beforeOpen') + this.builder(start + between + '{', node, 'start') + + let after + if (node.nodes && node.nodes.length) { + this.body(node) + after = this.raw(node, 'after') + } else { + after = this.raw(node, 'after', 'emptyBody') + } + + if (after) this.builder(after) + this.builder('}', node, 'end') + } + + raw(node, own, detect) { + let value + if (!detect) detect = own + + // Already had + if (own) { + value = node.raws[own] + if (typeof value !== 'undefined') return value + } + + let parent = node.parent + + if (detect === 'before') { + // Hack for first rule in CSS + if (!parent || (parent.type === 'root' && parent.first === node)) { + return '' + } + + // `root` nodes in `document` should use only their own raws + if (parent && parent.type === 'document') { + return '' + } + } + + // Floating child without parent + if (!parent) return DEFAULT_RAW[detect] + + // Detect style by other nodes + let root = node.root() + if (!root.rawCache) root.rawCache = {} + if (typeof root.rawCache[detect] !== 'undefined') { + return root.rawCache[detect] + } + + if (detect === 'before' || detect === 'after') { + return this.beforeAfter(node, detect) + } else { + let method = 'raw' + capitalize(detect) + if (this[method]) { + value = this[method](root, node) + } else { + root.walk(i => { + value = i.raws[own] + if (typeof value !== 'undefined') return false + }) + } + } + + if (typeof value === 'undefined') value = DEFAULT_RAW[detect] + + root.rawCache[detect] = value + return value + } + + rawSemicolon(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length && i.last.type === 'decl') { + value = i.raws.semicolon + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawEmptyBody(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawIndent(root) { + if (root.raws.indent) return root.raws.indent + let value + root.walk(i => { + let p = i.parent + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== 'undefined') { + let parts = i.raws.before.split('\n') + value = parts[parts.length - 1] + value = value.replace(/\S/g, '') + return false + } + } + }) + return value + } + + rawBeforeComment(root, node) { + let value + root.walkComments(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeDecl') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeDecl(root, node) { + let value + root.walkDecls(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeRule') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeRule(root) { + let value + root.walk(i => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawBeforeClose(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== 'undefined') { + value = i.raws.after + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawBeforeOpen(root) { + let value + root.walk(i => { + if (i.type !== 'decl') { + value = i.raws.between + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawColon(root) { + let value + root.walkDecls(i => { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, '') + return false + } + }) + return value + } + + beforeAfter(node, detect) { + let value + if (node.type === 'decl') { + value = this.raw(node, null, 'beforeDecl') + } else if (node.type === 'comment') { + value = this.raw(node, null, 'beforeComment') + } else if (detect === 'before') { + value = this.raw(node, null, 'beforeRule') + } else { + value = this.raw(node, null, 'beforeClose') + } + + let buf = node.parent + let depth = 0 + while (buf && buf.type !== 'root') { + depth += 1 + buf = buf.parent + } + + if (value.includes('\n')) { + let indent = this.raw(node, null, 'indent') + if (indent.length) { + for (let step = 0; step < depth; step++) value += indent + } + } + + return value + } + + rawValue(node, prop) { + let value = node[prop] + let raw = node.raws[prop] + if (raw && raw.value === value) { + return raw.raw + } + + return value + } +} + +module.exports = Stringifier +Stringifier.default = Stringifier diff --git a/node_modules/postcss/lib/stringify.d.ts b/node_modules/postcss/lib/stringify.d.ts new file mode 100644 index 0000000..06ad0b4 --- /dev/null +++ b/node_modules/postcss/lib/stringify.d.ts @@ -0,0 +1,9 @@ +import { Stringifier } from './postcss.js' + +interface Stringify extends Stringifier { + default: Stringify +} + +declare const stringify: Stringify + +export = stringify diff --git a/node_modules/postcss/lib/stringify.js b/node_modules/postcss/lib/stringify.js new file mode 100644 index 0000000..77bd017 --- /dev/null +++ b/node_modules/postcss/lib/stringify.js @@ -0,0 +1,11 @@ +'use strict' + +let Stringifier = require('./stringifier') + +function stringify(node, builder) { + let str = new Stringifier(builder) + str.stringify(node) +} + +module.exports = stringify +stringify.default = stringify diff --git a/node_modules/postcss/lib/symbols.js b/node_modules/postcss/lib/symbols.js new file mode 100644 index 0000000..a142c26 --- /dev/null +++ b/node_modules/postcss/lib/symbols.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports.isClean = Symbol('isClean') + +module.exports.my = Symbol('my') diff --git a/node_modules/postcss/lib/terminal-highlight.js b/node_modules/postcss/lib/terminal-highlight.js new file mode 100644 index 0000000..1f9f19e --- /dev/null +++ b/node_modules/postcss/lib/terminal-highlight.js @@ -0,0 +1,70 @@ +'use strict' + +let pico = require('picocolors') + +let tokenizer = require('./tokenize') + +let Input + +function registerInput(dependant) { + Input = dependant +} + +const HIGHLIGHT_THEME = { + 'brackets': pico.cyan, + 'at-word': pico.cyan, + 'comment': pico.gray, + 'string': pico.green, + 'class': pico.yellow, + 'hash': pico.magenta, + 'call': pico.cyan, + '(': pico.cyan, + ')': pico.cyan, + '{': pico.yellow, + '}': pico.yellow, + '[': pico.yellow, + ']': pico.yellow, + ':': pico.yellow, + ';': pico.yellow +} + +function getTokenType([type, value], processor) { + if (type === 'word') { + if (value[0] === '.') { + return 'class' + } + if (value[0] === '#') { + return 'hash' + } + } + + if (!processor.endOfFile()) { + let next = processor.nextToken() + processor.back(next) + if (next[0] === 'brackets' || next[0] === '(') return 'call' + } + + return type +} + +function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }) + let result = '' + while (!processor.endOfFile()) { + let token = processor.nextToken() + let color = HIGHLIGHT_THEME[getTokenType(token, processor)] + if (color) { + result += token[1] + .split(/\r?\n/) + .map(i => color(i)) + .join('\n') + } else { + result += token[1] + } + } + return result +} + +terminalHighlight.registerInput = registerInput + +module.exports = terminalHighlight diff --git a/node_modules/postcss/lib/tokenize.js b/node_modules/postcss/lib/tokenize.js new file mode 100644 index 0000000..8dac706 --- /dev/null +++ b/node_modules/postcss/lib/tokenize.js @@ -0,0 +1,266 @@ +'use strict' + +const SINGLE_QUOTE = "'".charCodeAt(0) +const DOUBLE_QUOTE = '"'.charCodeAt(0) +const BACKSLASH = '\\'.charCodeAt(0) +const SLASH = '/'.charCodeAt(0) +const NEWLINE = '\n'.charCodeAt(0) +const SPACE = ' '.charCodeAt(0) +const FEED = '\f'.charCodeAt(0) +const TAB = '\t'.charCodeAt(0) +const CR = '\r'.charCodeAt(0) +const OPEN_SQUARE = '['.charCodeAt(0) +const CLOSE_SQUARE = ']'.charCodeAt(0) +const OPEN_PARENTHESES = '('.charCodeAt(0) +const CLOSE_PARENTHESES = ')'.charCodeAt(0) +const OPEN_CURLY = '{'.charCodeAt(0) +const CLOSE_CURLY = '}'.charCodeAt(0) +const SEMICOLON = ';'.charCodeAt(0) +const ASTERISK = '*'.charCodeAt(0) +const COLON = ':'.charCodeAt(0) +const AT = '@'.charCodeAt(0) + +const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g +const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g +const RE_BAD_BRACKET = /.[\n"'(/\\]/ +const RE_HEX_ESCAPE = /[\da-f]/i + +module.exports = function tokenizer(input, options = {}) { + let css = input.css.valueOf() + let ignore = options.ignoreErrors + + let code, next, quote, content, escape + let escaped, escapePos, prev, n, currentToken + + let length = css.length + let pos = 0 + let buffer = [] + let returned = [] + + function position() { + return pos + } + + function unclosed(what) { + throw input.error('Unclosed ' + what, pos) + } + + function endOfFile() { + return returned.length === 0 && pos >= length + } + + function nextToken(opts) { + if (returned.length) return returned.pop() + if (pos >= length) return + + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false + + code = css.charCodeAt(pos) + + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos + do { + next += 1 + code = css.charCodeAt(next) + } while ( + code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED + ) + + currentToken = ['space', css.slice(pos, next)] + pos = next - 1 + break + } + + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code) + currentToken = [controlChar, controlChar, pos] + break + } + + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : '' + n = css.charCodeAt(pos + 1) + if ( + prev === 'url' && + n !== SINGLE_QUOTE && + n !== DOUBLE_QUOTE && + n !== SPACE && + n !== NEWLINE && + n !== TAB && + n !== FEED && + n !== CR + ) { + next = pos + do { + escaped = false + next = css.indexOf(')', next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + break + } else { + unclosed('bracket') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['brackets', css.slice(pos, next + 1), pos, next] + + pos = next + } else { + next = css.indexOf(')', pos + 1) + content = css.slice(pos, next + 1) + + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ['(', '(', pos] + } else { + currentToken = ['brackets', content, pos, next] + pos = next + } + } + + break + } + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"' + next = pos + do { + escaped = false + next = css.indexOf(quote, next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1 + break + } else { + unclosed('string') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['string', css.slice(pos, next + 1), pos, next] + pos = next + break + } + + case AT: { + RE_AT_END.lastIndex = pos + 1 + RE_AT_END.test(css) + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_AT_END.lastIndex - 2 + } + + currentToken = ['at-word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + case BACKSLASH: { + next = pos + escape = true + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1 + escape = !escape + } + code = css.charCodeAt(next + 1) + if ( + escape && + code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED + ) { + next += 1 + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1 + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1 + } + } + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf('*/', pos + 2) + 1 + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length + } else { + unclosed('comment') + } + } + + currentToken = ['comment', css.slice(pos, next + 1), pos, next] + pos = next + } else { + RE_WORD_END.lastIndex = pos + 1 + RE_WORD_END.test(css) + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_WORD_END.lastIndex - 2 + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + buffer.push(currentToken) + pos = next + } + + break + } + } + + pos++ + return currentToken + } + + function back(token) { + returned.push(token) + } + + return { + back, + nextToken, + endOfFile, + position + } +} diff --git a/node_modules/postcss/lib/warn-once.js b/node_modules/postcss/lib/warn-once.js new file mode 100644 index 0000000..316e1cf --- /dev/null +++ b/node_modules/postcss/lib/warn-once.js @@ -0,0 +1,13 @@ +/* eslint-disable no-console */ +'use strict' + +let printed = {} + +module.exports = function warnOnce(message) { + if (printed[message]) return + printed[message] = true + + if (typeof console !== 'undefined' && console.warn) { + console.warn(message) + } +} diff --git a/node_modules/postcss/lib/warning.d.ts b/node_modules/postcss/lib/warning.d.ts new file mode 100644 index 0000000..20ec065 --- /dev/null +++ b/node_modules/postcss/lib/warning.d.ts @@ -0,0 +1,147 @@ +import { RangePosition } from './css-syntax-error.js' +import Node from './node.js' + +declare namespace Warning { + export interface WarningOptions { + /** + * CSS node that caused the warning. + */ + node?: Node + + /** + * Word in CSS source that caused the warning. + */ + word?: string + + /** + * Start index, inclusive, in CSS node string that caused the warning. + */ + index?: number + + /** + * End index, exclusive, in CSS node string that caused the warning. + */ + endIndex?: number + + /** + * Start position, inclusive, in CSS node string that caused the warning. + */ + start?: RangePosition + + /** + * End position, exclusive, in CSS node string that caused the warning. + */ + end?: RangePosition + + /** + * Name of the plugin that created this warning. `Result#warn` fills + * this property automatically. + */ + plugin?: string + } + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + export { Warning_ as default } +} + +/** + * Represents a plugin’s warning. It can be created using `Node#warn`. + * + * ```js + * if (decl.important) { + * decl.warn(result, 'Avoid !important', { word: '!important' }) + * } + * ``` + */ +declare class Warning_ { + /** + * Type to filter warnings from `Result#messages`. + * Always equal to `"warning"`. + */ + type: 'warning' + + /** + * The warning message. + * + * ```js + * warning.text //=> 'Try to avoid !important' + * ``` + */ + text: string + + /** + * The name of the plugin that created this warning. + * When you call `Node#warn` it will fill this property automatically. + * + * ```js + * warning.plugin //=> 'postcss-important' + * ``` + */ + plugin: string + + /** + * Contains the CSS node that caused the warning. + * + * ```js + * warning.node.toString() //=> 'color: white !important' + * ``` + */ + node: Node + + /** + * Line for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.line //=> 5 + * ``` + */ + line: number + + /** + * Column for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.column //=> 6 + * ``` + */ + column: number + + /** + * Line for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endLine //=> 6 + * ``` + */ + endLine?: number + + /** + * Column for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endColumn //=> 4 + * ``` + */ + endColumn?: number + + /** + * @param text Warning message. + * @param opts Warning options. + */ + constructor(text: string, opts?: Warning.WarningOptions) + + /** + * Returns a warning position and message. + * + * ```js + * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important' + * ``` + * + * @return Warning position and message. + */ + toString(): string +} + +declare class Warning extends Warning_ {} + +export = Warning diff --git a/node_modules/postcss/lib/warning.js b/node_modules/postcss/lib/warning.js new file mode 100644 index 0000000..65aa525 --- /dev/null +++ b/node_modules/postcss/lib/warning.js @@ -0,0 +1,37 @@ +'use strict' + +class Warning { + constructor(text, opts = {}) { + this.type = 'warning' + this.text = text + + if (opts.node && opts.node.source) { + let range = opts.node.rangeBy(opts) + this.line = range.start.line + this.column = range.start.column + this.endLine = range.end.line + this.endColumn = range.end.column + } + + for (let opt in opts) this[opt] = opts[opt] + } + + toString() { + if (this.node) { + return this.node.error(this.text, { + plugin: this.plugin, + index: this.index, + word: this.word + }).message + } + + if (this.plugin) { + return this.plugin + ': ' + this.text + } + + return this.text + } +} + +module.exports = Warning +Warning.default = Warning diff --git a/node_modules/postcss/package.json b/node_modules/postcss/package.json new file mode 100755 index 0000000..8561fbc --- /dev/null +++ b/node_modules/postcss/package.json @@ -0,0 +1,88 @@ +{ + "name": "postcss", + "version": "8.4.24", + "description": "Tool for transforming styles with JS plugins", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "exports": { + ".": { + "require": "./lib/postcss.js", + "import": "./lib/postcss.mjs" + }, + "./lib/at-rule": "./lib/at-rule.js", + "./lib/comment": "./lib/comment.js", + "./lib/container": "./lib/container.js", + "./lib/css-syntax-error": "./lib/css-syntax-error.js", + "./lib/declaration": "./lib/declaration.js", + "./lib/fromJSON": "./lib/fromJSON.js", + "./lib/input": "./lib/input.js", + "./lib/lazy-result": "./lib/lazy-result.js", + "./lib/no-work-result": "./lib/no-work-result.js", + "./lib/list": "./lib/list.js", + "./lib/map-generator": "./lib/map-generator.js", + "./lib/node": "./lib/node.js", + "./lib/parse": "./lib/parse.js", + "./lib/parser": "./lib/parser.js", + "./lib/postcss": "./lib/postcss.js", + "./lib/previous-map": "./lib/previous-map.js", + "./lib/processor": "./lib/processor.js", + "./lib/result": "./lib/result.js", + "./lib/root": "./lib/root.js", + "./lib/rule": "./lib/rule.js", + "./lib/stringifier": "./lib/stringifier.js", + "./lib/stringify": "./lib/stringify.js", + "./lib/symbols": "./lib/symbols.js", + "./lib/terminal-highlight": "./lib/terminal-highlight.js", + "./lib/tokenize": "./lib/tokenize.js", + "./lib/warn-once": "./lib/warn-once.js", + "./lib/warning": "./lib/warning.js", + "./package.json": "./package.json" + }, + "main": "./lib/postcss.js", + "types": "./lib/postcss.d.ts", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "homepage": "https://postcss.org/", + "repository": "postcss/postcss", + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "browser": { + "./lib/terminal-highlight": false, + "source-map-js": false, + "path": false, + "url": false, + "fs": false + } +} diff --git a/node_modules/pretty-hrtime/.jshintignore b/node_modules/pretty-hrtime/.jshintignore new file mode 100644 index 0000000..cb28eb3 --- /dev/null +++ b/node_modules/pretty-hrtime/.jshintignore @@ -0,0 +1 @@ +node_modules/** diff --git a/node_modules/pretty-hrtime/.npmignore b/node_modules/pretty-hrtime/.npmignore new file mode 100644 index 0000000..094a5f3 --- /dev/null +++ b/node_modules/pretty-hrtime/.npmignore @@ -0,0 +1,10 @@ +.DS_Store +*.log +node_modules +build +*.node +components +*.orig +.idea +test +.travis.yml diff --git a/node_modules/pretty-hrtime/LICENSE b/node_modules/pretty-hrtime/LICENSE new file mode 100644 index 0000000..b7346ab --- /dev/null +++ b/node_modules/pretty-hrtime/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 [Richardson & Sons, LLC](http://richardsonandsons.com/) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/pretty-hrtime/README.md b/node_modules/pretty-hrtime/README.md new file mode 100644 index 0000000..f4be28d --- /dev/null +++ b/node_modules/pretty-hrtime/README.md @@ -0,0 +1,57 @@ +[![Build Status](https://secure.travis-ci.org/robrich/pretty-hrtime.png?branch=master)](https://travis-ci.org/robrich/pretty-hrtime) +[![Dependency Status](https://david-dm.org/robrich/pretty-hrtime.png)](https://david-dm.org/robrich/pretty-hrtime) + +pretty-hrtime +============ + +[process.hrtime()](http://nodejs.org/api/process.html#process_process_hrtime) to words + +Usage +----- + +```javascript +var prettyHrtime = require('pretty-hrtime'); + +var start = process.hrtime(); +// do stuff +var end = process.hrtime(start); + +var words = prettyHrtime(end); +console.log(words); // '1.2 ms' + +words = prettyHrtime(end, {verbose:true}); +console.log(words); // '1 millisecond 209 microseconds' + +words = prettyHrtime(end, {precise:true}); +console.log(words); // '1.20958 ms' +``` + +Note: process.hrtime() has been available since 0.7.6. +See [http://nodejs.org/changelog.html](http://nodejs.org/changelog.html) +and [https://github.com/joyent/node/commit/f06abd](https://github.com/joyent/node/commit/f06abd). + +LICENSE +------- + +(MIT License) + +Copyright (c) 2013 [Richardson & Sons, LLC](http://richardsonandsons.com/) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/pretty-hrtime/index.js b/node_modules/pretty-hrtime/index.js new file mode 100644 index 0000000..bed3f89 --- /dev/null +++ b/node_modules/pretty-hrtime/index.js @@ -0,0 +1,80 @@ +/*jshint node:true */ + +"use strict"; + +var minimalDesc = ['h', 'min', 's', 'ms', 'μs', 'ns']; +var verboseDesc = ['hour', 'minute', 'second', 'millisecond', 'microsecond', 'nanosecond']; +var convert = [60*60, 60, 1, 1e6, 1e3, 1]; + +module.exports = function (source, opts) { + var verbose, precise, i, spot, sourceAtStep, valAtStep, decimals, strAtStep, results, totalSeconds; + + verbose = false; + precise = false; + if (opts) { + verbose = opts.verbose || false; + precise = opts.precise || false; + } + + if (!Array.isArray(source) || source.length !== 2) { + return ''; + } + if (typeof source[0] !== 'number' || typeof source[1] !== 'number') { + return ''; + } + + // normalize source array due to changes in node v5.4+ + if (source[1] < 0) { + totalSeconds = source[0] + source[1] / 1e9; + source[0] = parseInt(totalSeconds); + source[1] = parseFloat((totalSeconds % 1).toPrecision(9)) * 1e9; + } + + results = ''; + + // foreach unit + for (i = 0; i < 6; i++) { + spot = i < 3 ? 0 : 1; // grabbing first or second spot in source array + sourceAtStep = source[spot]; + if (i !== 3 && i !== 0) { + sourceAtStep = sourceAtStep % convert[i-1]; // trim off previous portions + } + if (i === 2) { + sourceAtStep += source[1]/1e9; // get partial seconds from other portion of the array + } + valAtStep = sourceAtStep / convert[i]; // val at this unit + if (valAtStep >= 1) { + if (verbose) { + valAtStep = Math.floor(valAtStep); // deal in whole units, subsequent laps will get the decimal portion + } + if (!precise) { + // don't fling too many decimals + decimals = valAtStep >= 10 ? 0 : 2; + strAtStep = valAtStep.toFixed(decimals); + } else { + strAtStep = valAtStep.toString(); + } + if (strAtStep.indexOf('.') > -1 && strAtStep[strAtStep.length-1] === '0') { + strAtStep = strAtStep.replace(/\.?0+$/,''); // remove trailing zeros + } + if (results) { + results += ' '; // append space if we have a previous value + } + results += strAtStep; // append the value + // append units + if (verbose) { + results += ' '+verboseDesc[i]; + if (strAtStep !== '1') { + results += 's'; + } + } else { + results += ' '+minimalDesc[i]; + } + if (!verbose) { + break; // verbose gets as many groups as necessary, the rest get only one + } + } + } + + return results; +}; diff --git a/node_modules/pretty-hrtime/package.json b/node_modules/pretty-hrtime/package.json new file mode 100644 index 0000000..e4a7985 --- /dev/null +++ b/node_modules/pretty-hrtime/package.json @@ -0,0 +1,25 @@ +{ + "name": "pretty-hrtime", + "description": "process.hrtime() to words", + "version": "1.0.3", + "homepage": "https://github.com/robrich/pretty-hrtime", + "repository": "git://github.com/robrich/pretty-hrtime.git", + "author": "Rob Richardson (http://robrich.org/)", + "main": "./index.js", + "keywords": [ + "hrtime", + "benchmark" + ], + "devDependencies": { + "jshint": "^2.9.4", + "mocha": "^3.1.2", + "should": "^11.1.1" + }, + "scripts": { + "test": "mocha && jshint ." + }, + "engines": { + "node": ">= 0.8" + }, + "license": "MIT" +} diff --git a/node_modules/queue-microtask/LICENSE b/node_modules/queue-microtask/LICENSE new file mode 100755 index 0000000..c7e6852 --- /dev/null +++ b/node_modules/queue-microtask/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/queue-microtask/README.md b/node_modules/queue-microtask/README.md new file mode 100644 index 0000000..0be05a6 --- /dev/null +++ b/node_modules/queue-microtask/README.md @@ -0,0 +1,90 @@ +# queue-microtask [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[ci-image]: https://img.shields.io/github/workflow/status/feross/queue-microtask/ci/master +[ci-url]: https://github.com/feross/queue-microtask/actions +[npm-image]: https://img.shields.io/npm/v/queue-microtask.svg +[npm-url]: https://npmjs.org/package/queue-microtask +[downloads-image]: https://img.shields.io/npm/dm/queue-microtask.svg +[downloads-url]: https://npmjs.org/package/queue-microtask +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +### fast, tiny [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask) shim for modern engines + +- Use [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask) in all modern JS engines. +- No dependencies. Less than 10 lines. No shims or complicated fallbacks. +- Optimal performance in all modern environments + - Uses `queueMicrotask` in modern environments + - Fallback to `Promise.resolve().then(fn)` in Node.js 10 and earlier, and old browsers (same performance as `queueMicrotask`) + +## install + +``` +npm install queue-microtask +``` + +## usage + +```js +const queueMicrotask = require('queue-microtask') + +queueMicrotask(() => { /* this will run soon */ }) +``` + +## What is `queueMicrotask` and why would one use it? + +The `queueMicrotask` function is a WHATWG standard. It queues a microtask to be executed prior to control returning to the event loop. + +A microtask is a short function which will run after the current task has completed its work and when there is no other code waiting to be run before control of the execution context is returned to the event loop. + +The code `queueMicrotask(fn)` is equivalent to the code `Promise.resolve().then(fn)`. It is also very similar to [`process.nextTick(fn)`](https://nodejs.org/api/process.html#process_process_nexttick_callback_args) in Node. + +Using microtasks lets code run without interfering with any other, potentially higher priority, code that is pending, but before the JS engine regains control over the execution context. + +See the [spec](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing) or [Node documentation](https://nodejs.org/api/globals.html#globals_queuemicrotask_callback) for more information. + +## Who is this package for? + +This package allows you to use `queueMicrotask` safely in all modern JS engines. Use it if you prioritize small JS bundle size over support for old browsers. + +If you just need to support Node 12 and later, use `queueMicrotask` directly. If you need to support all versions of Node, use this package. + +## Why not use `process.nextTick`? + +In Node, `queueMicrotask` and `process.nextTick` are [essentially equivalent](https://nodejs.org/api/globals.html#globals_queuemicrotask_callback), though there are [subtle differences](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks) that don't matter in most situations. + +You can think of `queueMicrotask` as a standardized version of `process.nextTick` that works in the browser. No need to rely on your browser bundler to shim `process` for the browser environment. + +## Why not use `setTimeout(fn, 0)`? + +This approach is the most compatible, but it has problems. Modern browsers throttle timers severely, so `setTimeout(…, 0)` usually takes at least 4ms to run. Furthermore, the throttling gets even worse if the page is backgrounded. If you have many `setTimeout` calls, then this can severely limit the performance of your program. + +## Why not use a microtask library like [`immediate`](https://www.npmjs.com/package/immediate) or [`asap`](https://www.npmjs.com/package/asap)? + +These packages are great! However, if you prioritize small JS bundle size over optimal performance in old browsers then you may want to consider this package. + +This package (`queue-microtask`) is four times smaller than `immediate`, twice as small as `asap`, and twice as small as using `process.nextTick` and letting the browser bundler shim it automatically. + +Note: This package throws an exception in JS environments which lack `Promise` support -- which are usually very old browsers and Node.js versions. + +Since the `queueMicrotask` API is supported in Node.js, Chrome, Firefox, Safari, Opera, and Edge, **the vast majority of users will get optimal performance**. Any JS environment with `Promise`, which is almost all of them, also get optimal performance. If you need support for JS environments which lack `Promise` support, use one of the alternative packages. + +## What is a shim? + +> In computer programming, a shim is a library that transparently intercepts API calls and changes the arguments passed, handles the operation itself or redirects the operation elsewhere. – [Wikipedia](https://en.wikipedia.org/wiki/Shim_(computing)) + +This package could also be described as a "ponyfill". + +> A ponyfill is almost the same as a polyfill, but not quite. Instead of patching functionality for older browsers, a ponyfill provides that functionality as a standalone module you can use. – [PonyFoo](https://ponyfoo.com/articles/polyfills-or-ponyfills) + +## API + +### `queueMicrotask(fn)` + +The `queueMicrotask()` method queues a microtask. + +The `fn` argument is a function to be executed after all pending tasks have completed but before yielding control to the browser's event loop. + +## license + +MIT. Copyright (c) [Feross Aboukhadijeh](https://feross.org). diff --git a/node_modules/queue-microtask/index.d.ts b/node_modules/queue-microtask/index.d.ts new file mode 100644 index 0000000..b6a8646 --- /dev/null +++ b/node_modules/queue-microtask/index.d.ts @@ -0,0 +1,2 @@ +declare const queueMicrotask: (cb: () => void) => void +export = queueMicrotask diff --git a/node_modules/queue-microtask/index.js b/node_modules/queue-microtask/index.js new file mode 100644 index 0000000..5560534 --- /dev/null +++ b/node_modules/queue-microtask/index.js @@ -0,0 +1,9 @@ +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let promise + +module.exports = typeof queueMicrotask === 'function' + ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) + // reuse resolved promise, and allocate it lazily + : cb => (promise || (promise = Promise.resolve())) + .then(cb) + .catch(err => setTimeout(() => { throw err }, 0)) diff --git a/node_modules/queue-microtask/package.json b/node_modules/queue-microtask/package.json new file mode 100644 index 0000000..d29a401 --- /dev/null +++ b/node_modules/queue-microtask/package.json @@ -0,0 +1,55 @@ +{ + "name": "queue-microtask", + "description": "fast, tiny `queueMicrotask` shim for modern engines", + "version": "1.2.3", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/queue-microtask/issues" + }, + "devDependencies": { + "standard": "*", + "tape": "^5.2.2" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/queue-microtask", + "keywords": [ + "asap", + "immediate", + "micro task", + "microtask", + "nextTick", + "process.nextTick", + "queue micro task", + "queue microtask", + "queue-microtask", + "queueMicrotask", + "setImmediate", + "task" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/queue-microtask.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + } +} diff --git a/node_modules/read-cache/LICENSE b/node_modules/read-cache/LICENSE new file mode 100644 index 0000000..4b98a41 --- /dev/null +++ b/node_modules/read-cache/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2016 Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/read-cache/README.md b/node_modules/read-cache/README.md new file mode 100644 index 0000000..16a5c36 --- /dev/null +++ b/node_modules/read-cache/README.md @@ -0,0 +1,46 @@ +# read-cache [![Build Status](https://travis-ci.org/TrySound/read-cache.svg?branch=master)](https://travis-ci.org/TrySound/read-cache) + +Reads and caches the entire contents of a file until it is modified. + + +## Install + +``` +$ npm i read-cache +``` + + +## Usage + +```js +// foo.js +var readCache = require('read-cache'); + +readCache('foo.js').then(function (contents) { + console.log(contents); +}); +``` + + +## API + +### readCache(path[, encoding]) + +Returns a promise that resolves with the file's contents. + +### readCache.sync(path[, encoding]) + +Returns the content of the file. + +### readCache.get(path[, encoding]) + +Returns the content of cached file or null. + +### readCache.clear() + +Clears the contents of the cache. + + +## License + +MIT © [Bogdan Chadkin](mailto:trysound@yandex.ru) diff --git a/node_modules/read-cache/index.js b/node_modules/read-cache/index.js new file mode 100644 index 0000000..b5263e6 --- /dev/null +++ b/node_modules/read-cache/index.js @@ -0,0 +1,78 @@ +var fs = require('fs'); +var path = require('path'); +var pify = require('pify'); + +var stat = pify(fs.stat); +var readFile = pify(fs.readFile); +var resolve = path.resolve; + +var cache = Object.create(null); + +function convert(content, encoding) { + if (Buffer.isEncoding(encoding)) { + return content.toString(encoding); + } + return content; +} + +module.exports = function (path, encoding) { + path = resolve(path); + + return stat(path).then(function (stats) { + var item = cache[path]; + + if (item && item.mtime.getTime() === stats.mtime.getTime()) { + return convert(item.content, encoding); + } + + return readFile(path).then(function (data) { + cache[path] = { + mtime: stats.mtime, + content: data + }; + + return convert(data, encoding); + }); + }).catch(function (err) { + cache[path] = null; + return Promise.reject(err); + }); +}; + +module.exports.sync = function (path, encoding) { + path = resolve(path); + + try { + var stats = fs.statSync(path); + var item = cache[path]; + + if (item && item.mtime.getTime() === stats.mtime.getTime()) { + return convert(item.content, encoding); + } + + var data = fs.readFileSync(path); + + cache[path] = { + mtime: stats.mtime, + content: data + }; + + return convert(data, encoding); + } catch (err) { + cache[path] = null; + throw err; + } + +}; + +module.exports.get = function (path, encoding) { + path = resolve(path); + if (cache[path]) { + return convert(cache[path].content, encoding); + } + return null; +}; + +module.exports.clear = function () { + cache = Object.create(null); +}; diff --git a/node_modules/read-cache/package.json b/node_modules/read-cache/package.json new file mode 100644 index 0000000..87199b0 --- /dev/null +++ b/node_modules/read-cache/package.json @@ -0,0 +1,34 @@ +{ + "name": "read-cache", + "version": "1.0.0", + "description": "Reads and caches the entire contents of a file until it is modified", + "files": [ + "index.js" + ], + "main": "index.js", + "scripts": { + "test": "ava" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/TrySound/read-cache.git" + }, + "keywords": [ + "fs", + "read", + "cache" + ], + "author": "Bogdan Chadkin ", + "license": "MIT", + "bugs": { + "url": "https://github.com/TrySound/read-cache/issues" + }, + "homepage": "https://github.com/TrySound/read-cache#readme", + "devDependencies": { + "ava": "^0.9.1", + "del": "^2.2.0" + }, + "dependencies": { + "pify": "^2.3.0" + } +} diff --git a/node_modules/readdirp/LICENSE b/node_modules/readdirp/LICENSE new file mode 100644 index 0000000..037cbb4 --- /dev/null +++ b/node_modules/readdirp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/readdirp/README.md b/node_modules/readdirp/README.md new file mode 100644 index 0000000..465593c --- /dev/null +++ b/node_modules/readdirp/README.md @@ -0,0 +1,122 @@ +# readdirp [![Weekly downloads](https://img.shields.io/npm/dw/readdirp.svg)](https://github.com/paulmillr/readdirp) + +Recursive version of [fs.readdir](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback). Exposes a **stream API** and a **promise API**. + + +```sh +npm install readdirp +``` + +```javascript +const readdirp = require('readdirp'); + +// Use streams to achieve small RAM & CPU footprint. +// 1) Streams example with for-await. +for await (const entry of readdirp('.')) { + const {path} = entry; + console.log(`${JSON.stringify({path})}`); +} + +// 2) Streams example, non for-await. +// Print out all JS files along with their size within the current folder & subfolders. +readdirp('.', {fileFilter: '*.js', alwaysStat: true}) + .on('data', (entry) => { + const {path, stats: {size}} = entry; + console.log(`${JSON.stringify({path, size})}`); + }) + // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted + .on('warn', error => console.error('non-fatal error', error)) + .on('error', error => console.error('fatal error', error)) + .on('end', () => console.log('done')); + +// 3) Promise example. More RAM and CPU than streams / for-await. +const files = await readdirp.promise('.'); +console.log(files.map(file => file.path)); + +// Other options. +readdirp('test', { + fileFilter: '*.js', + directoryFilter: ['!.git', '!*modules'] + // directoryFilter: (di) => di.basename.length === 9 + type: 'files_directories', + depth: 1 +}); +``` + +For more examples, check out `examples` directory. + +## API + +`const stream = readdirp(root[, options])` — **Stream API** + +- Reads given root recursively and returns a `stream` of [entry infos](#entryinfo) +- Optionally can be used like `for await (const entry of stream)` with node.js 10+ (`asyncIterator`). +- `on('data', (entry) => {})` [entry info](#entryinfo) for every file / dir. +- `on('warn', (error) => {})` non-fatal `Error` that prevents a file / dir from being processed. Example: inaccessible to the user. +- `on('error', (error) => {})` fatal `Error` which also ends the stream. Example: illegal options where passed. +- `on('end')` — we are done. Called when all entries were found and no more will be emitted. +- `on('close')` — stream is destroyed via `stream.destroy()`. + Could be useful if you want to manually abort even on a non fatal error. + At that point the stream is no longer `readable` and no more entries, warning or errors are emitted +- To learn more about streams, consult the very detailed [nodejs streams documentation](https://nodejs.org/api/stream.html) + or the [stream-handbook](https://github.com/substack/stream-handbook) + +`const entries = await readdirp.promise(root[, options])` — **Promise API**. Returns a list of [entry infos](#entryinfo). + +First argument is awalys `root`, path in which to start reading and recursing into subdirectories. + +### options + +- `fileFilter: ["*.js"]`: filter to include or exclude files. A `Function`, Glob string or Array of glob strings. + - **Function**: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry + - **Glob string**: a string (e.g., `*.js`) which is matched using [picomatch](https://github.com/micromatch/picomatch), so go there for more + information. Globstars (`**`) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., `!*.txt` matches everything but text files. + - **Array of glob strings**: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown. + `['*.json', '*.js']` includes all JavaScript and Json files. + `['!.git', '!node_modules']` includes all directories except the '.git' and 'node_modules'. + - Directories that do not pass a filter will not be recursed into. +- `directoryFilter: ['!.git']`: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into. +- `depth: 5`: depth at which to stop recursing even if more subdirectories are found +- `type: 'files'`: determines if data events on the stream should be emitted for `'files'` (default), `'directories'`, `'files_directories'`, or `'all'`. Setting to `'all'` will also include entries for other types of file descriptors like character devices, unix sockets and named pipes. +- `alwaysStat: false`: always return `stats` property for every file. Default is `false`, readdirp will return `Dirent` entries. Setting it to `true` can double readdir execution time - use it only when you need file `size`, `mtime` etc. Cannot be enabled on node <10.10.0. +- `lstat: false`: include symlink entries in the stream along with files. When `true`, `fs.lstat` would be used instead of `fs.stat` + +### `EntryInfo` + +Has the following properties: + +- `path: 'assets/javascripts/react.js'`: path to the file/directory (relative to given root) +- `fullPath: '/Users/dev/projects/app/assets/javascripts/react.js'`: full path to the file/directory found +- `basename: 'react.js'`: name of the file/directory +- `dirent: fs.Dirent`: built-in [dir entry object](https://nodejs.org/api/fs.html#fs_class_fs_dirent) - only with `alwaysStat: false` +- `stats: fs.Stats`: built in [stat object](https://nodejs.org/api/fs.html#fs_class_fs_stats) - only with `alwaysStat: true` + +## Changelog + +- 3.5 (Oct 13, 2020) disallows recursive directory-based symlinks. + Before, it could have entered infinite loop. +- 3.4 (Mar 19, 2020) adds support for directory-based symlinks. +- 3.3 (Dec 6, 2019) stabilizes RAM consumption and enables perf management with `highWaterMark` option. Fixes race conditions related to `for-await` looping. +- 3.2 (Oct 14, 2019) improves performance by 250% and makes streams implementation more idiomatic. +- 3.1 (Jul 7, 2019) brings `bigint` support to `stat` output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions". +- 3.0 brings huge performance improvements and stream backpressure support. +- Upgrading 2.x to 3.x: + - Signature changed from `readdirp(options)` to `readdirp(root, options)` + - Replaced callback API with promise API. + - Renamed `entryType` option to `type` + - Renamed `entryType: 'both'` to `'files_directories'` + - `EntryInfo` + - Renamed `stat` to `stats` + - Emitted only when `alwaysStat: true` + - `dirent` is emitted instead of `stats` by default with `alwaysStat: false` + - Renamed `name` to `basename` + - Removed `parentDir` and `fullParentDir` properties +- Supported node.js versions: + - 3.x: node 8+ + - 2.x: node 0.6+ + +## License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller () + +MIT License, see [LICENSE](LICENSE) file. diff --git a/node_modules/readdirp/index.d.ts b/node_modules/readdirp/index.d.ts new file mode 100644 index 0000000..cbbd76c --- /dev/null +++ b/node_modules/readdirp/index.d.ts @@ -0,0 +1,43 @@ +// TypeScript Version: 3.2 + +/// + +import * as fs from 'fs'; +import { Readable } from 'stream'; + +declare namespace readdir { + interface EntryInfo { + path: string; + fullPath: string; + basename: string; + stats?: fs.Stats; + dirent?: fs.Dirent; + } + + interface ReaddirpOptions { + root?: string; + fileFilter?: string | string[] | ((entry: EntryInfo) => boolean); + directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean); + type?: 'files' | 'directories' | 'files_directories' | 'all'; + lstat?: boolean; + depth?: number; + alwaysStat?: boolean; + } + + interface ReaddirpStream extends Readable, AsyncIterable { + read(): EntryInfo; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + function promise( + root: string, + options?: ReaddirpOptions + ): Promise; +} + +declare function readdir( + root: string, + options?: readdir.ReaddirpOptions +): readdir.ReaddirpStream; + +export = readdir; diff --git a/node_modules/readdirp/index.js b/node_modules/readdirp/index.js new file mode 100644 index 0000000..cf739b2 --- /dev/null +++ b/node_modules/readdirp/index.js @@ -0,0 +1,287 @@ +'use strict'; + +const fs = require('fs'); +const { Readable } = require('stream'); +const sysPath = require('path'); +const { promisify } = require('util'); +const picomatch = require('picomatch'); + +const readdir = promisify(fs.readdir); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +/** + * @typedef {Object} EntryInfo + * @property {String} path + * @property {String} fullPath + * @property {fs.Stats=} stats + * @property {fs.Dirent=} dirent + * @property {String} basename + */ + +const BANG = '!'; +const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]); +const FILE_TYPE = 'files'; +const DIR_TYPE = 'directories'; +const FILE_DIR_TYPE = 'files_directories'; +const EVERYTHING_TYPE = 'all'; +const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; + +const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); +const [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10)); +const wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5)); + +const normalizeFilter = filter => { + if (filter === undefined) return; + if (typeof filter === 'function') return filter; + + if (typeof filter === 'string') { + const glob = picomatch(filter.trim()); + return entry => glob(entry.basename); + } + + if (Array.isArray(filter)) { + const positive = []; + const negative = []; + for (const item of filter) { + const trimmed = item.trim(); + if (trimmed.charAt(0) === BANG) { + negative.push(picomatch(trimmed.slice(1))); + } else { + positive.push(picomatch(trimmed)); + } + } + + if (negative.length > 0) { + if (positive.length > 0) { + return entry => + positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); + } + return entry => !negative.some(f => f(entry.basename)); + } + return entry => positive.some(f => f(entry.basename)); + } +}; + +class ReaddirpStream extends Readable { + static get defaultOptions() { + return { + root: '.', + /* eslint-disable no-unused-vars */ + fileFilter: (path) => true, + directoryFilter: (path) => true, + /* eslint-enable no-unused-vars */ + type: FILE_TYPE, + lstat: false, + depth: 2147483648, + alwaysStat: false + }; + } + + constructor(options = {}) { + super({ + objectMode: true, + autoDestroy: true, + highWaterMark: options.highWaterMark || 4096 + }); + const opts = { ...ReaddirpStream.defaultOptions, ...options }; + const { root, type } = opts; + + this._fileFilter = normalizeFilter(opts.fileFilter); + this._directoryFilter = normalizeFilter(opts.directoryFilter); + + const statMethod = opts.lstat ? lstat : stat; + // Use bigint stats if it's windows and stat() supports options (node 10+). + if (wantBigintFsStats) { + this._stat = path => statMethod(path, { bigint: true }); + } else { + this._stat = statMethod; + } + + this._maxDepth = opts.depth; + this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsEverything = type === EVERYTHING_TYPE; + this._root = sysPath.resolve(root); + this._isDirent = ('Dirent' in fs) && !opts.alwaysStat; + this._statsProp = this._isDirent ? 'dirent' : 'stats'; + this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; + + // Launch stream with one parent, the root dir. + this.parents = [this._exploreDir(root, 1)]; + this.reading = false; + this.parent = undefined; + } + + async _read(batch) { + if (this.reading) return; + this.reading = true; + + try { + while (!this.destroyed && batch > 0) { + const { path, depth, files = [] } = this.parent || {}; + + if (files.length > 0) { + const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); + for (const entry of await Promise.all(slice)) { + if (this.destroyed) return; + + const entryType = await this._getEntryType(entry); + if (entryType === 'directory' && this._directoryFilter(entry)) { + if (depth <= this._maxDepth) { + this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); + } + + if (this._wantsDir) { + this.push(entry); + batch--; + } + } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { + if (this._wantsFile) { + this.push(entry); + batch--; + } + } + } + } else { + const parent = this.parents.pop(); + if (!parent) { + this.push(null); + break; + } + this.parent = await parent; + if (this.destroyed) return; + } + } + } catch (error) { + this.destroy(error); + } finally { + this.reading = false; + } + } + + async _exploreDir(path, depth) { + let files; + try { + files = await readdir(path, this._rdOptions); + } catch (error) { + this._onError(error); + } + return { files, depth, path }; + } + + async _formatEntry(dirent, path) { + let entry; + try { + const basename = this._isDirent ? dirent.name : dirent; + const fullPath = sysPath.resolve(sysPath.join(path, basename)); + entry = { path: sysPath.relative(this._root, fullPath), fullPath, basename }; + entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); + } catch (err) { + this._onError(err); + } + return entry; + } + + _onError(err) { + if (isNormalFlowError(err) && !this.destroyed) { + this.emit('warn', err); + } else { + this.destroy(err); + } + } + + async _getEntryType(entry) { + // entry may be undefined, because a warning or an error were emitted + // and the statsProp is undefined + const stats = entry && entry[this._statsProp]; + if (!stats) { + return; + } + if (stats.isFile()) { + return 'file'; + } + if (stats.isDirectory()) { + return 'directory'; + } + if (stats && stats.isSymbolicLink()) { + const full = entry.fullPath; + try { + const entryRealPath = await realpath(full); + const entryRealPathStats = await lstat(entryRealPath); + if (entryRealPathStats.isFile()) { + return 'file'; + } + if (entryRealPathStats.isDirectory()) { + const len = entryRealPath.length; + if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath.sep) { + const recursiveError = new Error( + `Circular symlink detected: "${full}" points to "${entryRealPath}"` + ); + recursiveError.code = RECURSIVE_ERROR_CODE; + return this._onError(recursiveError); + } + return 'directory'; + } + } catch (error) { + this._onError(error); + } + } + } + + _includeAsFile(entry) { + const stats = entry && entry[this._statsProp]; + + return stats && this._wantsEverything && !stats.isDirectory(); + } +} + +/** + * @typedef {Object} ReaddirpArguments + * @property {Function=} fileFilter + * @property {Function=} directoryFilter + * @property {String=} type + * @property {Number=} depth + * @property {String=} root + * @property {Boolean=} lstat + * @property {Boolean=} bigint + */ + +/** + * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. + * @param {String} root Root directory + * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth + */ +const readdirp = (root, options = {}) => { + let type = options.entryType || options.type; + if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility + if (type) options.type = type; + if (!root) { + throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); + } else if (typeof root !== 'string') { + throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); + } else if (type && !ALL_TYPES.includes(type)) { + throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); + } + + options.root = root; + return new ReaddirpStream(options); +}; + +const readdirpPromise = (root, options = {}) => { + return new Promise((resolve, reject) => { + const files = []; + readdirp(root, options) + .on('data', entry => files.push(entry)) + .on('end', () => resolve(files)) + .on('error', error => reject(error)); + }); +}; + +readdirp.promise = readdirpPromise; +readdirp.ReaddirpStream = ReaddirpStream; +readdirp.default = readdirp; + +module.exports = readdirp; diff --git a/node_modules/readdirp/package.json b/node_modules/readdirp/package.json new file mode 100644 index 0000000..dba5388 --- /dev/null +++ b/node_modules/readdirp/package.json @@ -0,0 +1,122 @@ +{ + "name": "readdirp", + "description": "Recursive version of fs.readdir with streaming API.", + "version": "3.6.0", + "homepage": "https://github.com/paulmillr/readdirp", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/readdirp.git" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/paulmillr/readdirp/issues" + }, + "author": "Thorsten Lorenz (thlorenz.com)", + "contributors": [ + "Thorsten Lorenz (thlorenz.com)", + "Paul Miller (https://paulmillr.com)" + ], + "main": "index.js", + "engines": { + "node": ">=8.10.0" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "recursive", + "fs", + "stream", + "streams", + "readdir", + "filesystem", + "find", + "filter" + ], + "scripts": { + "dtslint": "dtslint", + "nyc": "nyc", + "mocha": "mocha --exit", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "test": "npm run lint && nyc npm run mocha" + }, + "dependencies": { + "picomatch": "^2.2.1" + }, + "devDependencies": { + "@types/node": "^14", + "chai": "^4.2", + "chai-subset": "^1.6", + "dtslint": "^3.3.0", + "eslint": "^7.0.0", + "mocha": "^7.1.1", + "nyc": "^15.0.0", + "rimraf": "^3.0.0", + "typescript": "^4.0.3" + }, + "nyc": { + "reporter": [ + "html", + "text" + ] + }, + "eslintConfig": { + "root": true, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 9, + "sourceType": "script" + }, + "env": { + "node": true, + "es6": true + }, + "rules": { + "array-callback-return": "error", + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], + "no-else-return": [ + "error", + { + "allowElseIf": false + } + ], + "no-lonely-if": "error", + "no-var": "error", + "object-shorthand": "error", + "prefer-arrow-callback": [ + "error", + { + "allowNamedFunctions": true + } + ], + "prefer-const": [ + "error", + { + "ignoreReadBeforeAssign": true + } + ], + "prefer-destructuring": [ + "error", + { + "object": true, + "array": false + } + ], + "prefer-spread": "error", + "prefer-template": "error", + "radix": "error", + "semi": "error", + "strict": "error", + "quotes": [ + "error", + "single" + ] + } + } +} diff --git a/node_modules/require-directory/.jshintrc b/node_modules/require-directory/.jshintrc new file mode 100644 index 0000000..e14e4dc --- /dev/null +++ b/node_modules/require-directory/.jshintrc @@ -0,0 +1,67 @@ +{ + "maxerr" : 50, + "bitwise" : true, + "camelcase" : true, + "curly" : true, + "eqeqeq" : true, + "forin" : true, + "immed" : true, + "indent" : 2, + "latedef" : true, + "newcap" : true, + "noarg" : true, + "noempty" : true, + "nonew" : true, + "plusplus" : true, + "quotmark" : true, + "undef" : true, + "unused" : true, + "strict" : true, + "trailing" : true, + "maxparams" : false, + "maxdepth" : false, + "maxstatements" : false, + "maxcomplexity" : false, + "maxlen" : false, + "asi" : false, + "boss" : false, + "debug" : false, + "eqnull" : true, + "es5" : false, + "esnext" : false, + "moz" : false, + "evil" : false, + "expr" : true, + "funcscope" : true, + "globalstrict" : true, + "iterator" : true, + "lastsemic" : false, + "laxbreak" : false, + "laxcomma" : false, + "loopfunc" : false, + "multistr" : false, + "proto" : false, + "scripturl" : false, + "smarttabs" : false, + "shadow" : false, + "sub" : false, + "supernew" : false, + "validthis" : false, + "browser" : true, + "couch" : false, + "devel" : true, + "dojo" : false, + "jquery" : false, + "mootools" : false, + "node" : true, + "nonstandard" : false, + "prototypejs" : false, + "rhino" : false, + "worker" : false, + "wsh" : false, + "yui" : false, + "nomen" : true, + "onevar" : true, + "passfail" : false, + "white" : true +} diff --git a/node_modules/require-directory/.npmignore b/node_modules/require-directory/.npmignore new file mode 100644 index 0000000..47cf365 --- /dev/null +++ b/node_modules/require-directory/.npmignore @@ -0,0 +1 @@ +test/** diff --git a/node_modules/require-directory/.travis.yml b/node_modules/require-directory/.travis.yml new file mode 100644 index 0000000..20fd86b --- /dev/null +++ b/node_modules/require-directory/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - 0.10 diff --git a/node_modules/require-directory/LICENSE b/node_modules/require-directory/LICENSE new file mode 100644 index 0000000..a70f253 --- /dev/null +++ b/node_modules/require-directory/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2011 Troy Goode + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/require-directory/README.markdown b/node_modules/require-directory/README.markdown new file mode 100644 index 0000000..926a063 --- /dev/null +++ b/node_modules/require-directory/README.markdown @@ -0,0 +1,184 @@ +# require-directory + +Recursively iterates over specified directory, `require()`'ing each file, and returning a nested hash structure containing those modules. + +**[Follow me (@troygoode) on Twitter!](https://twitter.com/intent/user?screen_name=troygoode)** + +[![NPM](https://nodei.co/npm/require-directory.png?downloads=true&stars=true)](https://nodei.co/npm/require-directory/) + +[![build status](https://secure.travis-ci.org/troygoode/node-require-directory.png)](http://travis-ci.org/troygoode/node-require-directory) + +## How To Use + +### Installation (via [npm](https://npmjs.org/package/require-directory)) + +```bash +$ npm install require-directory +``` + +### Usage + +A common pattern in node.js is to include an index file which creates a hash of the files in its current directory. Given a directory structure like so: + +* app.js +* routes/ + * index.js + * home.js + * auth/ + * login.js + * logout.js + * register.js + +`routes/index.js` uses `require-directory` to build the hash (rather than doing so manually) like so: + +```javascript +var requireDirectory = require('require-directory'); +module.exports = requireDirectory(module); +``` + +`app.js` references `routes/index.js` like any other module, but it now has a hash/tree of the exports from the `./routes/` directory: + +```javascript +var routes = require('./routes'); + +// snip + +app.get('/', routes.home); +app.get('/register', routes.auth.register); +app.get('/login', routes.auth.login); +app.get('/logout', routes.auth.logout); +``` + +The `routes` variable above is the equivalent of this: + +```javascript +var routes = { + home: require('routes/home.js'), + auth: { + login: require('routes/auth/login.js'), + logout: require('routes/auth/logout.js'), + register: require('routes/auth/register.js') + } +}; +``` + +*Note that `routes.index` will be `undefined` as you would hope.* + +### Specifying Another Directory + +You can specify which directory you want to build a tree of (if it isn't the current directory for whatever reason) by passing it as the second parameter. Not specifying the path (`requireDirectory(module)`) is the equivelant of `requireDirectory(module, __dirname)`: + +```javascript +var requireDirectory = require('require-directory'); +module.exports = requireDirectory(module, './some/subdirectory'); +``` + +For example, in the [example in the Usage section](#usage) we could have avoided creating `routes/index.js` and instead changed the first lines of `app.js` to: + +```javascript +var requireDirectory = require('require-directory'); +var routes = requireDirectory(module, './routes'); +``` + +## Options + +You can pass an options hash to `require-directory` as the 2nd parameter (or 3rd if you're passing the path to another directory as the 2nd parameter already). Here are the available options: + +### Whitelisting + +Whitelisting (either via RegExp or function) allows you to specify that only certain files be loaded. + +```javascript +var requireDirectory = require('require-directory'), + whitelist = /onlyinclude.js$/, + hash = requireDirectory(module, {include: whitelist}); +``` + +```javascript +var requireDirectory = require('require-directory'), + check = function(path){ + if(/onlyinclude.js$/.test(path)){ + return true; // don't include + }else{ + return false; // go ahead and include + } + }, + hash = requireDirectory(module, {include: check}); +``` + +### Blacklisting + +Blacklisting (either via RegExp or function) allows you to specify that all but certain files should be loaded. + +```javascript +var requireDirectory = require('require-directory'), + blacklist = /dontinclude\.js$/, + hash = requireDirectory(module, {exclude: blacklist}); +``` + +```javascript +var requireDirectory = require('require-directory'), + check = function(path){ + if(/dontinclude\.js$/.test(path)){ + return false; // don't include + }else{ + return true; // go ahead and include + } + }, + hash = requireDirectory(module, {exclude: check}); +``` + +### Visiting Objects As They're Loaded + +`require-directory` takes a function as the `visit` option that will be called for each module that is added to module.exports. + +```javascript +var requireDirectory = require('require-directory'), + visitor = function(obj) { + console.log(obj); // will be called for every module that is loaded + }, + hash = requireDirectory(module, {visit: visitor}); +``` + +The visitor can also transform the objects by returning a value: + +```javascript +var requireDirectory = require('require-directory'), + visitor = function(obj) { + return obj(new Date()); + }, + hash = requireDirectory(module, {visit: visitor}); +``` + +### Renaming Keys + +```javascript +var requireDirectory = require('require-directory'), + renamer = function(name) { + return name.toUpperCase(); + }, + hash = requireDirectory(module, {rename: renamer}); +``` + +### No Recursion + +```javascript +var requireDirectory = require('require-directory'), + hash = requireDirectory(module, {recurse: false}); +``` + +## Run Unit Tests + +```bash +$ npm run lint +$ npm test +``` + +## License + +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +## Author + +[Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com)) + diff --git a/node_modules/require-directory/index.js b/node_modules/require-directory/index.js new file mode 100644 index 0000000..cd37da7 --- /dev/null +++ b/node_modules/require-directory/index.js @@ -0,0 +1,86 @@ +'use strict'; + +var fs = require('fs'), + join = require('path').join, + resolve = require('path').resolve, + dirname = require('path').dirname, + defaultOptions = { + extensions: ['js', 'json', 'coffee'], + recurse: true, + rename: function (name) { + return name; + }, + visit: function (obj) { + return obj; + } + }; + +function checkFileInclusion(path, filename, options) { + return ( + // verify file has valid extension + (new RegExp('\\.(' + options.extensions.join('|') + ')$', 'i').test(filename)) && + + // if options.include is a RegExp, evaluate it and make sure the path passes + !(options.include && options.include instanceof RegExp && !options.include.test(path)) && + + // if options.include is a function, evaluate it and make sure the path passes + !(options.include && typeof options.include === 'function' && !options.include(path, filename)) && + + // if options.exclude is a RegExp, evaluate it and make sure the path doesn't pass + !(options.exclude && options.exclude instanceof RegExp && options.exclude.test(path)) && + + // if options.exclude is a function, evaluate it and make sure the path doesn't pass + !(options.exclude && typeof options.exclude === 'function' && options.exclude(path, filename)) + ); +} + +function requireDirectory(m, path, options) { + var retval = {}; + + // path is optional + if (path && !options && typeof path !== 'string') { + options = path; + path = null; + } + + // default options + options = options || {}; + for (var prop in defaultOptions) { + if (typeof options[prop] === 'undefined') { + options[prop] = defaultOptions[prop]; + } + } + + // if no path was passed in, assume the equivelant of __dirname from caller + // otherwise, resolve path relative to the equivalent of __dirname + path = !path ? dirname(m.filename) : resolve(dirname(m.filename), path); + + // get the path of each file in specified directory, append to current tree node, recurse + fs.readdirSync(path).forEach(function (filename) { + var joined = join(path, filename), + files, + key, + obj; + + if (fs.statSync(joined).isDirectory() && options.recurse) { + // this node is a directory; recurse + files = requireDirectory(m, joined, options); + // exclude empty directories + if (Object.keys(files).length) { + retval[options.rename(filename, joined, filename)] = files; + } + } else { + if (joined !== m.filename && checkFileInclusion(joined, filename, options)) { + // hash node key shouldn't include file extension + key = filename.substring(0, filename.lastIndexOf('.')); + obj = m.require(joined); + retval[options.rename(key, joined, filename)] = options.visit(obj, joined, filename) || obj; + } + } + }); + + return retval; +} + +module.exports = requireDirectory; +module.exports.defaults = defaultOptions; diff --git a/node_modules/require-directory/package.json b/node_modules/require-directory/package.json new file mode 100644 index 0000000..25ece4b --- /dev/null +++ b/node_modules/require-directory/package.json @@ -0,0 +1,40 @@ +{ + "author": "Troy Goode (http://github.com/troygoode/)", + "name": "require-directory", + "version": "2.1.1", + "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.", + "keywords": [ + "require", + "directory", + "library", + "recursive" + ], + "homepage": "https://github.com/troygoode/node-require-directory/", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/troygoode/node-require-directory.git" + }, + "contributors": [ + { + "name": "Troy Goode", + "email": "troygoode@gmail.com", + "web": "http://github.com/troygoode/" + } + ], + "license": "MIT", + "bugs": { + "url": "http://github.com/troygoode/node-require-directory/issues/" + }, + "engines": { + "node": ">=0.10.0" + }, + "devDependencies": { + "jshint": "^2.6.0", + "mocha": "^2.1.0" + }, + "scripts": { + "test": "mocha", + "lint": "jshint index.js test/test.js" + } +} diff --git a/node_modules/reusify/.coveralls.yml b/node_modules/reusify/.coveralls.yml new file mode 100644 index 0000000..359f683 --- /dev/null +++ b/node_modules/reusify/.coveralls.yml @@ -0,0 +1 @@ +repo_token: yIxhFqtaaz5iGVYfie9mODehFYogm8S8L diff --git a/node_modules/reusify/.travis.yml b/node_modules/reusify/.travis.yml new file mode 100644 index 0000000..1970476 --- /dev/null +++ b/node_modules/reusify/.travis.yml @@ -0,0 +1,28 @@ +language: node_js +sudo: false + +node_js: + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 4.0 + - iojs-v3 + - iojs-v2 + - iojs-v1 + - 0.12 + - 0.10 + +cache: + directories: + - node_modules + +after_script: +- npm run coverage + +notifications: + email: + on_success: never + on_failure: always diff --git a/node_modules/reusify/LICENSE b/node_modules/reusify/LICENSE new file mode 100644 index 0000000..fbf3a01 --- /dev/null +++ b/node_modules/reusify/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Matteo Collina + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/reusify/README.md b/node_modules/reusify/README.md new file mode 100644 index 0000000..badcb7c --- /dev/null +++ b/node_modules/reusify/README.md @@ -0,0 +1,145 @@ +# reusify + +[![npm version][npm-badge]][npm-url] +[![Build Status][travis-badge]][travis-url] +[![Coverage Status][coveralls-badge]][coveralls-url] + +Reuse your objects and functions for maximum speed. This technique will +make any function run ~10% faster. You call your functions a +lot, and it adds up quickly in hot code paths. + +``` +$ node benchmarks/createNoCodeFunction.js +Total time 53133 +Total iterations 100000000 +Iteration/s 1882069.5236482036 + +$ node benchmarks/reuseNoCodeFunction.js +Total time 50617 +Total iterations 100000000 +Iteration/s 1975620.838848608 +``` + +The above benchmark uses fibonacci to simulate a real high-cpu load. +The actual numbers might differ for your use case, but the difference +should not. + +The benchmark was taken using Node v6.10.0. + +This library was extracted from +[fastparallel](http://npm.im/fastparallel). + +## Example + +```js +var reusify = require('reusify') +var fib = require('reusify/benchmarks/fib') +var instance = reusify(MyObject) + +// get an object from the cache, +// or creates a new one when cache is empty +var obj = instance.get() + +// set the state +obj.num = 100 +obj.func() + +// reset the state. +// if the state contains any external object +// do not use delete operator (it is slow) +// prefer set them to null +obj.num = 0 + +// store an object in the cache +instance.release(obj) + +function MyObject () { + // you need to define this property + // so V8 can compile MyObject into an + // hidden class + this.next = null + this.num = 0 + + var that = this + + // this function is never reallocated, + // so it can be optimized by V8 + this.func = function () { + if (null) { + // do nothing + } else { + // calculates fibonacci + fib(that.num) + } + } +} +``` + +The above example was intended for synchronous code, let's see async: +```js +var reusify = require('reusify') +var instance = reusify(MyObject) + +for (var i = 0; i < 100; i++) { + getData(i, console.log) +} + +function getData (value, cb) { + var obj = instance.get() + + obj.value = value + obj.cb = cb + obj.run() +} + +function MyObject () { + this.next = null + this.value = null + + var that = this + + this.run = function () { + asyncOperation(that.value, that.handle) + } + + this.handle = function (err, result) { + that.cb(err, result) + that.value = null + that.cb = null + instance.release(that) + } +} +``` + +Also note how in the above examples, the code, that consumes an istance of `MyObject`, +reset the state to initial condition, just before storing it in the cache. +That's needed so that every subsequent request for an instance from the cache, +could get a clean instance. + +## Why + +It is faster because V8 doesn't have to collect all the functions you +create. On a short-lived benchmark, it is as fast as creating the +nested function, but on a longer time frame it creates less +pressure on the garbage collector. + +## Other examples +If you want to see some complex example, checkout [middie](https://github.com/fastify/middie) and [steed](https://github.com/mcollina/steed). + +## Acknowledgements + +Thanks to [Trevor Norris](https://github.com/trevnorris) for +getting me down the rabbit hole of performance, and thanks to [Mathias +Buss](http://github.com/mafintosh) for suggesting me to share this +trick. + +## License + +MIT + +[npm-badge]: https://badge.fury.io/js/reusify.svg +[npm-url]: https://badge.fury.io/js/reusify +[travis-badge]: https://api.travis-ci.org/mcollina/reusify.svg +[travis-url]: https://travis-ci.org/mcollina/reusify +[coveralls-badge]: https://coveralls.io/repos/mcollina/reusify/badge.svg?branch=master&service=github +[coveralls-url]: https://coveralls.io/github/mcollina/reusify?branch=master diff --git a/node_modules/reusify/benchmarks/createNoCodeFunction.js b/node_modules/reusify/benchmarks/createNoCodeFunction.js new file mode 100644 index 0000000..ce1aac7 --- /dev/null +++ b/node_modules/reusify/benchmarks/createNoCodeFunction.js @@ -0,0 +1,30 @@ +'use strict' + +var fib = require('./fib') +var max = 100000000 +var start = Date.now() + +// create a funcion with the typical error +// pattern, that delegates the heavy load +// to something else +function createNoCodeFunction () { + /* eslint no-constant-condition: "off" */ + var num = 100 + + ;(function () { + if (null) { + // do nothing + } else { + fib(num) + } + })() +} + +for (var i = 0; i < max; i++) { + createNoCodeFunction() +} + +var time = Date.now() - start +console.log('Total time', time) +console.log('Total iterations', max) +console.log('Iteration/s', max / time * 1000) diff --git a/node_modules/reusify/benchmarks/fib.js b/node_modules/reusify/benchmarks/fib.js new file mode 100644 index 0000000..e22cc48 --- /dev/null +++ b/node_modules/reusify/benchmarks/fib.js @@ -0,0 +1,13 @@ +'use strict' + +function fib (num) { + var fib = [] + + fib[0] = 0 + fib[1] = 1 + for (var i = 2; i <= num; i++) { + fib[i] = fib[i - 2] + fib[i - 1] + } +} + +module.exports = fib diff --git a/node_modules/reusify/benchmarks/reuseNoCodeFunction.js b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js new file mode 100644 index 0000000..3358d6e --- /dev/null +++ b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js @@ -0,0 +1,38 @@ +'use strict' + +var reusify = require('../') +var fib = require('./fib') +var instance = reusify(MyObject) +var max = 100000000 +var start = Date.now() + +function reuseNoCodeFunction () { + var obj = instance.get() + obj.num = 100 + obj.func() + obj.num = 0 + instance.release(obj) +} + +function MyObject () { + this.next = null + var that = this + this.num = 0 + this.func = function () { + /* eslint no-constant-condition: "off" */ + if (null) { + // do nothing + } else { + fib(that.num) + } + } +} + +for (var i = 0; i < max; i++) { + reuseNoCodeFunction() +} + +var time = Date.now() - start +console.log('Total time', time) +console.log('Total iterations', max) +console.log('Iteration/s', max / time * 1000) diff --git a/node_modules/reusify/package.json b/node_modules/reusify/package.json new file mode 100644 index 0000000..ee66aee --- /dev/null +++ b/node_modules/reusify/package.json @@ -0,0 +1,45 @@ +{ + "name": "reusify", + "version": "1.0.4", + "description": "Reuse objects and functions with style", + "main": "reusify.js", + "scripts": { + "lint": "standard", + "test": "tape test.js | faucet", + "istanbul": "istanbul cover tape test.js", + "coverage": "npm run istanbul; cat coverage/lcov.info | coveralls" + }, + "pre-commit": [ + "lint", + "test" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/reusify.git" + }, + "keywords": [ + "reuse", + "object", + "performance", + "function", + "fast" + ], + "author": "Matteo Collina ", + "license": "MIT", + "bugs": { + "url": "https://github.com/mcollina/reusify/issues" + }, + "homepage": "https://github.com/mcollina/reusify#readme", + "engines": { + "node": ">=0.10.0", + "iojs": ">=1.0.0" + }, + "devDependencies": { + "coveralls": "^2.13.3", + "faucet": "0.0.1", + "istanbul": "^0.4.5", + "pre-commit": "^1.2.2", + "standard": "^10.0.3", + "tape": "^4.8.0" + } +} diff --git a/node_modules/reusify/reusify.js b/node_modules/reusify/reusify.js new file mode 100644 index 0000000..e6f36f3 --- /dev/null +++ b/node_modules/reusify/reusify.js @@ -0,0 +1,33 @@ +'use strict' + +function reusify (Constructor) { + var head = new Constructor() + var tail = head + + function get () { + var current = head + + if (current.next) { + head = current.next + } else { + head = new Constructor() + tail = head + } + + current.next = null + + return current + } + + function release (obj) { + tail.next = obj + tail = obj + } + + return { + get: get, + release: release + } +} + +module.exports = reusify diff --git a/node_modules/reusify/test.js b/node_modules/reusify/test.js new file mode 100644 index 0000000..929cfd7 --- /dev/null +++ b/node_modules/reusify/test.js @@ -0,0 +1,66 @@ +'use strict' + +var test = require('tape') +var reusify = require('./') + +test('reuse objects', function (t) { + t.plan(6) + + function MyObject () { + t.pass('constructor called') + this.next = null + } + + var instance = reusify(MyObject) + var obj = instance.get() + + t.notEqual(obj, instance.get(), 'two instance created') + t.notOk(obj.next, 'next must be null') + + instance.release(obj) + + // the internals keeps a hot copy ready for reuse + // putting this one back in the queue + instance.release(instance.get()) + + // comparing the old one with the one we got + // never do this in real code, after release you + // should never reuse that instance + t.equal(obj, instance.get(), 'instance must be reused') +}) + +test('reuse more than 2 objects', function (t) { + function MyObject () { + t.pass('constructor called') + this.next = null + } + + var instance = reusify(MyObject) + var obj = instance.get() + var obj2 = instance.get() + var obj3 = instance.get() + + t.notOk(obj.next, 'next must be null') + t.notOk(obj2.next, 'next must be null') + t.notOk(obj3.next, 'next must be null') + + t.notEqual(obj, obj2) + t.notEqual(obj, obj3) + t.notEqual(obj3, obj2) + + instance.release(obj) + instance.release(obj2) + instance.release(obj3) + + // skip one + instance.get() + + var obj4 = instance.get() + var obj5 = instance.get() + var obj6 = instance.get() + + t.equal(obj4, obj) + t.equal(obj5, obj2) + t.equal(obj6, obj3) + t.end() +}) diff --git a/node_modules/run-parallel/LICENSE b/node_modules/run-parallel/LICENSE new file mode 100644 index 0000000..c7e6852 --- /dev/null +++ b/node_modules/run-parallel/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/run-parallel/README.md b/node_modules/run-parallel/README.md new file mode 100644 index 0000000..edc3da4 --- /dev/null +++ b/node_modules/run-parallel/README.md @@ -0,0 +1,85 @@ +# run-parallel [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/run-parallel/master.svg +[travis-url]: https://travis-ci.org/feross/run-parallel +[npm-image]: https://img.shields.io/npm/v/run-parallel.svg +[npm-url]: https://npmjs.org/package/run-parallel +[downloads-image]: https://img.shields.io/npm/dm/run-parallel.svg +[downloads-url]: https://npmjs.org/package/run-parallel +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +### Run an array of functions in parallel + +![parallel](https://raw.githubusercontent.com/feross/run-parallel/master/img.png) [![Sauce Test Status](https://saucelabs.com/browser-matrix/run-parallel.svg)](https://saucelabs.com/u/run-parallel) + +### install + +``` +npm install run-parallel +``` + +### usage + +#### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its callback, the main +`callback` is immediately called with the value of the error. Once the `tasks` have +completed, the results are passed to the final `callback` as an array. + +It is also possible to use an object instead of an array. Each property will be run as a +function and the results will be passed to the final `callback` as an object instead of +an array. This can be a more readable way of handling the results. + +##### arguments + +- `tasks` - An array or object containing functions to run. Each function is passed a +`callback(err, result)` which it must call on completion with an error `err` (which can +be `null`) and an optional `result` value. +- `callback(err, results)` - An optional callback to run once all the functions have +completed. This function gets a results array (or object) containing all the result +arguments passed to the task callbacks. + +##### example + +```js +var parallel = require('run-parallel') + +parallel([ + function (callback) { + setTimeout(function () { + callback(null, 'one') + }, 200) + }, + function (callback) { + setTimeout(function () { + callback(null, 'two') + }, 100) + } +], +// optional callback +function (err, results) { + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}) +``` + +This module is basically equavalent to +[`async.parallel`](https://github.com/caolan/async#paralleltasks-callback), but it's +handy to just have the one function you need instead of the kitchen sink. Modularity! +Especially handy if you're serving to the browser and need to reduce your javascript +bundle size. + +Works great in the browser with [browserify](http://browserify.org/)! + +### see also + +- [run-auto](https://github.com/feross/run-auto) +- [run-parallel-limit](https://github.com/feross/run-parallel-limit) +- [run-series](https://github.com/feross/run-series) +- [run-waterfall](https://github.com/feross/run-waterfall) + +### license + +MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org). diff --git a/node_modules/run-parallel/index.js b/node_modules/run-parallel/index.js new file mode 100644 index 0000000..6307141 --- /dev/null +++ b/node_modules/run-parallel/index.js @@ -0,0 +1,51 @@ +/*! run-parallel. MIT License. Feross Aboukhadijeh */ +module.exports = runParallel + +const queueMicrotask = require('queue-microtask') + +function runParallel (tasks, cb) { + let results, pending, keys + let isSync = true + + if (Array.isArray(tasks)) { + results = [] + pending = tasks.length + } else { + keys = Object.keys(tasks) + results = {} + pending = keys.length + } + + function done (err) { + function end () { + if (cb) cb(err, results) + cb = null + } + if (isSync) queueMicrotask(end) + else end() + } + + function each (i, err, result) { + results[i] = result + if (--pending === 0 || err) { + done(err) + } + } + + if (!pending) { + // empty + done(null) + } else if (keys) { + // object + keys.forEach(function (key) { + tasks[key](function (err, result) { each(key, err, result) }) + }) + } else { + // array + tasks.forEach(function (task, i) { + task(function (err, result) { each(i, err, result) }) + }) + } + + isSync = false +} diff --git a/node_modules/run-parallel/package.json b/node_modules/run-parallel/package.json new file mode 100644 index 0000000..1f14757 --- /dev/null +++ b/node_modules/run-parallel/package.json @@ -0,0 +1,58 @@ +{ + "name": "run-parallel", + "description": "Run an array of functions in parallel", + "version": "1.2.0", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/run-parallel/issues" + }, + "dependencies": { + "queue-microtask": "^1.2.2" + }, + "devDependencies": { + "airtap": "^3.0.0", + "standard": "*", + "tape": "^5.0.1" + }, + "homepage": "https://github.com/feross/run-parallel", + "keywords": [ + "parallel", + "async", + "function", + "callback", + "asynchronous", + "run", + "array", + "run parallel" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/run-parallel.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "airtap -- test/*.js", + "test-browser-local": "airtap --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] +} diff --git a/node_modules/slash/index.d.ts b/node_modules/slash/index.d.ts new file mode 100644 index 0000000..10438fb --- /dev/null +++ b/node_modules/slash/index.d.ts @@ -0,0 +1,23 @@ +/** +Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar`. + +[Forward-slash paths can be used in Windows](http://superuser.com/a/176395/6877) as long as they're not extended-length paths and don't contain any non-ascii characters. + +@param path - A Windows backslash path. +@returns A path with forward slashes. + +@example +``` +import path from 'path'; +import slash from 'slash'; + +const string = path.join('foo', 'bar'); +// Unix => foo/bar +// Windows => foo\\bar + +slash(string); +// Unix => foo/bar +// Windows => foo/bar +``` +*/ +export default function slash(path: string): string; diff --git a/node_modules/slash/index.js b/node_modules/slash/index.js new file mode 100644 index 0000000..b52d8de --- /dev/null +++ b/node_modules/slash/index.js @@ -0,0 +1,10 @@ +export default function slash(path) { + const isExtendedLengthPath = /^\\\\\?\\/.test(path); + const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex + + if (isExtendedLengthPath || hasNonAscii) { + return path; + } + + return path.replace(/\\/g, '/'); +} diff --git a/node_modules/slash/license b/node_modules/slash/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/slash/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/slash/package.json b/node_modules/slash/package.json new file mode 100644 index 0000000..ef78101 --- /dev/null +++ b/node_modules/slash/package.json @@ -0,0 +1,38 @@ +{ + "name": "slash", + "version": "4.0.0", + "description": "Convert Windows backslash paths to slash paths", + "license": "MIT", + "repository": "sindresorhus/slash", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "seperator", + "slash", + "backslash", + "windows", + "convert" + ], + "devDependencies": { + "ava": "^3.15.0", + "tsd": "^0.14.0", + "xo": "^0.38.2" + } +} diff --git a/node_modules/slash/readme.md b/node_modules/slash/readme.md new file mode 100644 index 0000000..2a66eef --- /dev/null +++ b/node_modules/slash/readme.md @@ -0,0 +1,48 @@ +# slash + +> Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar` + +[Forward-slash paths can be used in Windows](http://superuser.com/a/176395/6877) as long as they're not extended-length paths and don't contain any non-ascii characters. + +This was created since the `path` methods in Node.js outputs `\\` paths on Windows. + +## Install + +``` +$ npm install slash +``` + +## Usage + +```js +import path from 'path'; +import slash from 'slash'; + +const string = path.join('foo', 'bar'); +// Unix => foo/bar +// Windows => foo\\bar + +slash(string); +// Unix => foo/bar +// Windows => foo/bar +``` + +## API + +### slash(path) + +Type: `string` + +Accepts a Windows backslash path and returns a path with forward slashes. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/source-map-js/CHANGELOG.md b/node_modules/source-map-js/CHANGELOG.md new file mode 100644 index 0000000..4cd5307 --- /dev/null +++ b/node_modules/source-map-js/CHANGELOG.md @@ -0,0 +1,320 @@ +# Change Log + +## 1.0.2 + +* Add types for path imports ([#13](https://github.com/7rulnik/source-map-js/pull/13)) [@TrySound](https://github.com/TrySound) + +## 1.0.1 + +* Remove cleanComments optimization ([#10](https://github.com/7rulnik/source-map-js/pull/10)) [@ai](https://github.com/ai) + +## 1.0.0 + +* Fix package.json#typings field ([#6](https://github.com/7rulnik/source-map-js/pull/6)) [@chalkygames123](https://github.com/chalkygames123) + +* Reduce memory usage of eachMapping w/ loop ([#5](https://github.com/7rulnik/source-map-js/pull/5)) [@noppa](https://github.com/noppa) + +* Reduce npm package size ([#7](https://github.com/7rulnik/source-map-js/pull/7)) [@ai](https://github.com/ai) + +---------- +# It doesn't related to this fork: + +## 0.5.6 + +* Fix for regression when people were using numbers as names in source maps. See + #236. + +## 0.5.5 + +* Fix "regression" of unsupported, implementation behavior that half the world + happens to have come to depend on. See #235. + +* Fix regression involving function hoisting in SpiderMonkey. See #233. + +## 0.5.4 + +* Large performance improvements to source-map serialization. See #228 and #229. + +## 0.5.3 + +* Do not include unnecessary distribution files. See + commit ef7006f8d1647e0a83fdc60f04f5a7ca54886f86. + +## 0.5.2 + +* Include browser distributions of the library in package.json's `files`. See + issue #212. + +## 0.5.1 + +* Fix latent bugs in IndexedSourceMapConsumer.prototype._parseMappings. See + ff05274becc9e6e1295ed60f3ea090d31d843379. + +## 0.5.0 + +* Node 0.8 is no longer supported. + +* Use webpack instead of dryice for bundling. + +* Big speedups serializing source maps. See pull request #203. + +* Fix a bug with `SourceMapConsumer.prototype.sourceContentFor` and sources that + explicitly start with the source root. See issue #199. + +## 0.4.4 + +* Fix an issue where using a `SourceMapGenerator` after having created a + `SourceMapConsumer` from it via `SourceMapConsumer.fromSourceMap` failed. See + issue #191. + +* Fix an issue with where `SourceMapGenerator` would mistakenly consider + different mappings as duplicates of each other and avoid generating them. See + issue #192. + +## 0.4.3 + +* A very large number of performance improvements, particularly when parsing + source maps. Collectively about 75% of time shaved off of the source map + parsing benchmark! + +* Fix a bug in `SourceMapConsumer.prototype.allGeneratedPositionsFor` and fuzzy + searching in the presence of a column option. See issue #177. + +* Fix a bug with joining a source and its source root when the source is above + the root. See issue #182. + +* Add the `SourceMapConsumer.prototype.hasContentsOfAllSources` method to + determine when all sources' contents are inlined into the source map. See + issue #190. + +## 0.4.2 + +* Add an `.npmignore` file so that the benchmarks aren't pulled down by + dependent projects. Issue #169. + +* Add an optional `column` argument to + `SourceMapConsumer.prototype.allGeneratedPositionsFor` and better handle lines + with no mappings. Issues #172 and #173. + +## 0.4.1 + +* Fix accidentally defining a global variable. #170. + +## 0.4.0 + +* The default direction for fuzzy searching was changed back to its original + direction. See #164. + +* There is now a `bias` option you can supply to `SourceMapConsumer` to control + the fuzzy searching direction. See #167. + +* About an 8% speed up in parsing source maps. See #159. + +* Added a benchmark for parsing and generating source maps. + +## 0.3.0 + +* Change the default direction that searching for positions fuzzes when there is + not an exact match. See #154. + +* Support for environments using json2.js for JSON serialization. See #156. + +## 0.2.0 + +* Support for consuming "indexed" source maps which do not have any remote + sections. See pull request #127. This introduces a minor backwards + incompatibility if you are monkey patching `SourceMapConsumer.prototype` + methods. + +## 0.1.43 + +* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue + #148 for some discussion and issues #150, #151, and #152 for implementations. + +## 0.1.42 + +* Fix an issue where `SourceNode`s from different versions of the source-map + library couldn't be used in conjunction with each other. See issue #142. + +## 0.1.41 + +* Fix a bug with getting the source content of relative sources with a "./" + prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768). + +* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the + column span of each mapping. + +* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find + all generated positions associated with a given original source and line. + +## 0.1.40 + +* Performance improvements for parsing source maps in SourceMapConsumer. + +## 0.1.39 + +* Fix a bug where setting a source's contents to null before any source content + had been set before threw a TypeError. See issue #131. + +## 0.1.38 + +* Fix a bug where finding relative paths from an empty path were creating + absolute paths. See issue #129. + +## 0.1.37 + +* Fix a bug where if the source root was an empty string, relative source paths + would turn into absolute source paths. Issue #124. + +## 0.1.36 + +* Allow the `names` mapping property to be an empty string. Issue #121. + +## 0.1.35 + +* A third optional parameter was added to `SourceNode.fromStringWithSourceMap` + to specify a path that relative sources in the second parameter should be + relative to. Issue #105. + +* If no file property is given to a `SourceMapGenerator`, then the resulting + source map will no longer have a `null` file property. The property will + simply not exist. Issue #104. + +* Fixed a bug where consecutive newlines were ignored in `SourceNode`s. + Issue #116. + +## 0.1.34 + +* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103. + +* Fix bug involving source contents and the + `SourceMapGenerator.prototype.applySourceMap`. Issue #100. + +## 0.1.33 + +* Fix some edge cases surrounding path joining and URL resolution. + +* Add a third parameter for relative path to + `SourceMapGenerator.prototype.applySourceMap`. + +* Fix issues with mappings and EOLs. + +## 0.1.32 + +* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns + (issue 92). + +* Fixed test runner to actually report number of failed tests as its process + exit code. + +* Fixed a typo when reporting bad mappings (issue 87). + +## 0.1.31 + +* Delay parsing the mappings in SourceMapConsumer until queried for a source + location. + +* Support Sass source maps (which at the time of writing deviate from the spec + in small ways) in SourceMapConsumer. + +## 0.1.30 + +* Do not join source root with a source, when the source is a data URI. + +* Extend the test runner to allow running single specific test files at a time. + +* Performance improvements in `SourceNode.prototype.walk` and + `SourceMapConsumer.prototype.eachMapping`. + +* Source map browser builds will now work inside Workers. + +* Better error messages when attempting to add an invalid mapping to a + `SourceMapGenerator`. + +## 0.1.29 + +* Allow duplicate entries in the `names` and `sources` arrays of source maps + (usually from TypeScript) we are parsing. Fixes github issue 72. + +## 0.1.28 + +* Skip duplicate mappings when creating source maps from SourceNode; github + issue 75. + +## 0.1.27 + +* Don't throw an error when the `file` property is missing in SourceMapConsumer, + we don't use it anyway. + +## 0.1.26 + +* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70. + +## 0.1.25 + +* Make compatible with browserify + +## 0.1.24 + +* Fix issue with absolute paths and `file://` URIs. See + https://bugzilla.mozilla.org/show_bug.cgi?id=885597 + +## 0.1.23 + +* Fix issue with absolute paths and sourcesContent, github issue 64. + +## 0.1.22 + +* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21. + +## 0.1.21 + +* Fixed handling of sources that start with a slash so that they are relative to + the source root's host. + +## 0.1.20 + +* Fixed github issue #43: absolute URLs aren't joined with the source root + anymore. + +## 0.1.19 + +* Using Travis CI to run tests. + +## 0.1.18 + +* Fixed a bug in the handling of sourceRoot. + +## 0.1.17 + +* Added SourceNode.fromStringWithSourceMap. + +## 0.1.16 + +* Added missing documentation. + +* Fixed the generating of empty mappings in SourceNode. + +## 0.1.15 + +* Added SourceMapGenerator.applySourceMap. + +## 0.1.14 + +* The sourceRoot is now handled consistently. + +## 0.1.13 + +* Added SourceMapGenerator.fromSourceMap. + +## 0.1.12 + +* SourceNode now generates empty mappings too. + +## 0.1.11 + +* Added name support to SourceNode. + +## 0.1.10 + +* Added sourcesContent support to the customer and generator. diff --git a/node_modules/source-map-js/LICENSE b/node_modules/source-map-js/LICENSE new file mode 100644 index 0000000..ed1b7cf --- /dev/null +++ b/node_modules/source-map-js/LICENSE @@ -0,0 +1,28 @@ + +Copyright (c) 2009-2011, Mozilla Foundation and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the names of the Mozilla Foundation nor the names of project + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/source-map-js/README.md b/node_modules/source-map-js/README.md new file mode 100644 index 0000000..ba01846 --- /dev/null +++ b/node_modules/source-map-js/README.md @@ -0,0 +1,758 @@ +# Source Map JS + +[![NPM](https://nodei.co/npm/source-map-js.png?downloads=true&downloadRank=true)](https://www.npmjs.com/package/source-map-js) + +Difference between original [source-map](https://github.com/mozilla/source-map): + +> TL,DR: it's fork of original source-map@0.6, but with perfomance optimizations. + +This journey starts from [source-map@0.7.0](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md#070). Some part of it was rewritten to Rust and WASM and API became async. + +It's still a major block for many libraries like PostCSS or Sass for example because they need to migrate the whole API to the async way. This is the reason why 0.6.1 has 2x more downloads than 0.7.3 while it's faster several times. + +![Downloads count](media/downloads.png) + +More important that WASM version has some optimizations in JS code too. This is why [community asked to create branch for 0.6 version](https://github.com/mozilla/source-map/issues/324) and port these optimizations but, sadly, the answer was «no». A bit later I discovered [the issue](https://github.com/mozilla/source-map/issues/370) created by [Ben Rothman (@benthemonkey)](https://github.com/benthemonkey) with no response at all. + +[Roman Dvornov (@lahmatiy)](https://github.com/lahmatiy) wrote a [serveral posts](https://t.me/gorshochekvarit/76) (russian, only, sorry) about source-map library in his own Telegram channel. He mentioned the article [«Maybe you don't need Rust and WASM to speed up your JS»](https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html) written by [Vyacheslav Egorov (@mraleph)](https://github.com/mraleph). This article contains optimizations and hacks that lead to almost the same performance compare to WASM implementation. + +I decided to fork the original source-map and port these optimizations from the article and several others PR from the original source-map. + +--------- + +This is a library to generate and consume the source map format +[described here][format]. + +[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit + +## Use with Node + + $ npm install source-map-js + + + +-------------------------------------------------------------------------------- + + + + + +## Table of Contents + +- [Examples](#examples) + - [Consuming a source map](#consuming-a-source-map) + - [Generating a source map](#generating-a-source-map) + - [With SourceNode (high level API)](#with-sourcenode-high-level-api) + - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api) +- [API](#api) + - [SourceMapConsumer](#sourcemapconsumer) + - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap) + - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans) + - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition) + - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition) + - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition) + - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources) + - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing) + - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order) + - [SourceMapGenerator](#sourcemapgenerator) + - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap) + - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer) + - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping) + - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath) + - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring) + - [SourceNode](#sourcenode) + - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name) + - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath) + - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk) + - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk) + - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn) + - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn) + - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep) + - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement) + - [SourceNode.prototype.toString()](#sourcenodeprototypetostring) + - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap) + + + +## Examples + +### Consuming a source map + +```js +var rawSourceMap = { + version: 3, + file: 'min.js', + names: ['bar', 'baz', 'n'], + sources: ['one.js', 'two.js'], + sourceRoot: 'http://example.com/www/js/', + mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' +}; + +var smc = new SourceMapConsumer(rawSourceMap); + +console.log(smc.sources); +// [ 'http://example.com/www/js/one.js', +// 'http://example.com/www/js/two.js' ] + +console.log(smc.originalPositionFor({ + line: 2, + column: 28 +})); +// { source: 'http://example.com/www/js/two.js', +// line: 2, +// column: 10, +// name: 'n' } + +console.log(smc.generatedPositionFor({ + source: 'http://example.com/www/js/two.js', + line: 2, + column: 10 +})); +// { line: 2, column: 28 } + +smc.eachMapping(function (m) { + // ... +}); +``` + +### Generating a source map + +In depth guide: +[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/) + +#### With SourceNode (high level API) + +```js +function compile(ast) { + switch (ast.type) { + case 'BinaryExpression': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + [compile(ast.left), " + ", compile(ast.right)] + ); + case 'Literal': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + String(ast.value) + ); + // ... + default: + throw new Error("Bad AST"); + } +} + +var ast = parse("40 + 2", "add.js"); +console.log(compile(ast).toStringWithSourceMap({ + file: 'add.js' +})); +// { code: '40 + 2', +// map: [object SourceMapGenerator] } +``` + +#### With SourceMapGenerator (low level API) + +```js +var map = new SourceMapGenerator({ + file: "source-mapped.js" +}); + +map.addMapping({ + generated: { + line: 10, + column: 35 + }, + source: "foo.js", + original: { + line: 33, + column: 2 + }, + name: "christopher" +}); + +console.log(map.toString()); +// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}' +``` + +## API + +Get a reference to the module: + +```js +// Node.js +var sourceMap = require('source-map'); + +// Browser builds +var sourceMap = window.sourceMap; + +// Inside Firefox +const sourceMap = require("devtools/toolkit/sourcemap/source-map.js"); +``` + +### SourceMapConsumer + +A SourceMapConsumer instance represents a parsed source map which we can query +for information about the original file positions by giving it a file position +in the generated source. + +#### new SourceMapConsumer(rawSourceMap) + +The only parameter is the raw source map (either as a string which can be +`JSON.parse`'d, or an object). According to the spec, source maps have the +following attributes: + +* `version`: Which version of the source map spec this map is following. + +* `sources`: An array of URLs to the original source files. + +* `names`: An array of identifiers which can be referenced by individual + mappings. + +* `sourceRoot`: Optional. The URL root from which all sources are relative. + +* `sourcesContent`: Optional. An array of contents of the original source files. + +* `mappings`: A string of base64 VLQs which contain the actual mappings. + +* `file`: Optional. The generated filename this source map is associated with. + +```js +var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData); +``` + +#### SourceMapConsumer.prototype.computeColumnSpans() + +Compute the last column for each generated mapping. The last column is +inclusive. + +```js +// Before: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] + +consumer.computeColumnSpans(); + +// After: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1, +// lastColumn: 9 }, +// { line: 2, +// column: 10, +// lastColumn: 19 }, +// { line: 2, +// column: 20, +// lastColumn: Infinity } ] + +``` + +#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition) + +Returns the original source, line, and column information for the generated +source's line and column positions provided. The only argument is an object with +the following properties: + +* `line`: The line number in the generated source. Line numbers in + this library are 1-based (note that the underlying source map + specification uses 0-based line numbers -- this library handles the + translation). + +* `column`: The column number in the generated source. Column numbers + in this library are 0-based. + +* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or + `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest + element that is smaller than or greater than the one we are searching for, + respectively, if the exact element cannot be found. Defaults to + `SourceMapConsumer.GREATEST_LOWER_BOUND`. + +and an object is returned with the following properties: + +* `source`: The original source file, or null if this information is not + available. + +* `line`: The line number in the original source, or null if this information is + not available. The line number is 1-based. + +* `column`: The column number in the original source, or null if this + information is not available. The column number is 0-based. + +* `name`: The original identifier, or null if this information is not available. + +```js +consumer.originalPositionFor({ line: 2, column: 10 }) +// { source: 'foo.coffee', +// line: 2, +// column: 2, +// name: null } + +consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 }) +// { source: null, +// line: null, +// column: null, +// name: null } +``` + +#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition) + +Returns the generated line and column information for the original source, +line, and column positions provided. The only argument is an object with +the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: The column number in the original source. The column + number is 0-based. + +and an object is returned with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 }) +// { line: 1, +// column: 56 } +``` + +#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition) + +Returns all generated line and column information for the original source, line, +and column provided. If no column is provided, returns all mappings +corresponding to a either the line we are searching for or the next closest line +that has any mappings. Otherwise, returns all mappings corresponding to the +given line and either the column we are searching for or the next closest column +that has any offsets. + +The only argument is an object with the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: Optional. The column number in the original source. The + column number is 0-based. + +and an array of objects is returned, each with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] +``` + +#### SourceMapConsumer.prototype.hasContentsOfAllSources() + +Return true if we have the embedded source content for every source listed in +the source map, false otherwise. + +In other words, if this method returns `true`, then +`consumer.sourceContentFor(s)` will succeed for every source `s` in +`consumer.sources`. + +```js +// ... +if (consumer.hasContentsOfAllSources()) { + consumerReadyCallback(consumer); +} else { + fetchSources(consumer, consumerReadyCallback); +} +// ... +``` + +#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing]) + +Returns the original source content for the source provided. The only +argument is the URL of the original source file. + +If the source content for the given source is not found, then an error is +thrown. Optionally, pass `true` as the second param to have `null` returned +instead. + +```js +consumer.sources +// [ "my-cool-lib.clj" ] + +consumer.sourceContentFor("my-cool-lib.clj") +// "..." + +consumer.sourceContentFor("this is not in the source map"); +// Error: "this is not in the source map" is not in the source map + +consumer.sourceContentFor("this is not in the source map", true); +// null +``` + +#### SourceMapConsumer.prototype.eachMapping(callback, context, order) + +Iterate over each mapping between an original source/line/column and a +generated line/column in this source map. + +* `callback`: The function that is called with each mapping. Mappings have the + form `{ source, generatedLine, generatedColumn, originalLine, originalColumn, + name }` + +* `context`: Optional. If specified, this object will be the value of `this` + every time that `callback` is called. + +* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or + `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over + the mappings sorted by the generated file's line/column order or the + original's source/line/column order, respectively. Defaults to + `SourceMapConsumer.GENERATED_ORDER`. + +```js +consumer.eachMapping(function (m) { console.log(m); }) +// ... +// { source: 'illmatic.js', +// generatedLine: 1, +// generatedColumn: 0, +// originalLine: 1, +// originalColumn: 0, +// name: null } +// { source: 'illmatic.js', +// generatedLine: 2, +// generatedColumn: 0, +// originalLine: 2, +// originalColumn: 0, +// name: null } +// ... +``` +### SourceMapGenerator + +An instance of the SourceMapGenerator represents a source map which is being +built incrementally. + +#### new SourceMapGenerator([startOfSourceMap]) + +You may pass an object with the following properties: + +* `file`: The filename of the generated source that this source map is + associated with. + +* `sourceRoot`: A root for all relative URLs in this source map. + +* `skipValidation`: Optional. When `true`, disables validation of mappings as + they are added. This can improve performance but should be used with + discretion, as a last resort. Even then, one should avoid using this flag when + running tests, if possible. + +```js +var generator = new sourceMap.SourceMapGenerator({ + file: "my-generated-javascript-file.js", + sourceRoot: "http://example.com/app/js/" +}); +``` + +#### SourceMapGenerator.fromSourceMap(sourceMapConsumer) + +Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance. + +* `sourceMapConsumer` The SourceMap. + +```js +var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer); +``` + +#### SourceMapGenerator.prototype.addMapping(mapping) + +Add a single mapping from original source line and column to the generated +source's line and column for this source map being created. The mapping object +should have the following properties: + +* `generated`: An object with the generated line and column positions. + +* `original`: An object with the original line and column positions. + +* `source`: The original source file (relative to the sourceRoot). + +* `name`: An optional original token name for this mapping. + +```js +generator.addMapping({ + source: "module-one.scm", + original: { line: 128, column: 0 }, + generated: { line: 3, column: 456 } +}) +``` + +#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for an original source file. + +* `sourceFile` the URL of the original source file. + +* `sourceContent` the content of the source file. + +```js +generator.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]]) + +Applies a SourceMap for a source file to the SourceMap. +Each mapping to the supplied source file is rewritten using the +supplied SourceMap. Note: The resolution for the resulting mappings +is the minimum of this map and the supplied map. + +* `sourceMapConsumer`: The SourceMap to be applied. + +* `sourceFile`: Optional. The filename of the source file. + If omitted, sourceMapConsumer.file will be used, if it exists. + Otherwise an error will be thrown. + +* `sourceMapPath`: Optional. The dirname of the path to the SourceMap + to be applied. If relative, it is relative to the SourceMap. + + This parameter is needed when the two SourceMaps aren't in the same + directory, and the SourceMap to be applied contains relative source + paths. If so, those relative source paths need to be rewritten + relative to the SourceMap. + + If omitted, it is assumed that both SourceMaps are in the same directory, + thus not needing any rewriting. (Supplying `'.'` has the same effect.) + +#### SourceMapGenerator.prototype.toString() + +Renders the source map being generated to a string. + +```js +generator.toString() +// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}' +``` + +### SourceNode + +SourceNodes provide a way to abstract over interpolating and/or concatenating +snippets of generated JavaScript source code, while maintaining the line and +column information associated between those snippets and the original source +code. This is useful as the final intermediate representation a compiler might +use before outputting the generated JS and source map. + +#### new SourceNode([line, column, source[, chunk[, name]]]) + +* `line`: The original line number associated with this source node, or null if + it isn't associated with an original line. The line number is 1-based. + +* `column`: The original column number associated with this source node, or null + if it isn't associated with an original column. The column number + is 0-based. + +* `source`: The original source's filename; null if no filename is provided. + +* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see + below. + +* `name`: Optional. The original identifier. + +```js +var node = new SourceNode(1, 2, "a.cpp", [ + new SourceNode(3, 4, "b.cpp", "extern int status;\n"), + new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"), + new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"), +]); +``` + +#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath]) + +Creates a SourceNode from generated code and a SourceMapConsumer. + +* `code`: The generated code + +* `sourceMapConsumer` The SourceMap for the generated code + +* `relativePath` The optional path that relative sources in `sourceMapConsumer` + should be relative to. + +```js +var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8")); +var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"), + consumer); +``` + +#### SourceNode.prototype.add(chunk) + +Add a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.add(" + "); +node.add(otherNode); +node.add([leftHandOperandNode, " + ", rightHandOperandNode]); +``` + +#### SourceNode.prototype.prepend(chunk) + +Prepend a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.prepend("/** Build Id: f783haef86324gf **/\n\n"); +``` + +#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for a source file. This will be added to the +`SourceMap` in the `sourcesContent` field. + +* `sourceFile`: The filename of the source file + +* `sourceContent`: The content of the source file + +```js +node.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceNode.prototype.walk(fn) + +Walk over the tree of JS snippets in this node and its children. The walking +function is called once for each snippet of JS and is passed that snippet and +the its original associated source's line/column location. + +* `fn`: The traversal function. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.walk(function (code, loc) { console.log("WALK:", code, loc); }) +// WALK: uno { source: 'b.js', line: 3, column: 4, name: null } +// WALK: dos { source: 'a.js', line: 1, column: 2, name: null } +// WALK: tres { source: 'a.js', line: 1, column: 2, name: null } +// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null } +``` + +#### SourceNode.prototype.walkSourceContents(fn) + +Walk over the tree of SourceNodes. The walking function is called for each +source file content and is passed the filename and source content. + +* `fn`: The traversal function. + +```js +var a = new SourceNode(1, 2, "a.js", "generated from a"); +a.setSourceContent("a.js", "original a"); +var b = new SourceNode(1, 2, "b.js", "generated from b"); +b.setSourceContent("b.js", "original b"); +var c = new SourceNode(1, 2, "c.js", "generated from c"); +c.setSourceContent("c.js", "original c"); + +var node = new SourceNode(null, null, null, [a, b, c]); +node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); }) +// WALK: a.js : original a +// WALK: b.js : original b +// WALK: c.js : original c +``` + +#### SourceNode.prototype.join(sep) + +Like `Array.prototype.join` except for SourceNodes. Inserts the separator +between each of this source node's children. + +* `sep`: The separator. + +```js +var lhs = new SourceNode(1, 2, "a.rs", "my_copy"); +var operand = new SourceNode(3, 4, "a.rs", "="); +var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()"); + +var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]); +var joinedNode = node.join(" "); +``` + +#### SourceNode.prototype.replaceRight(pattern, replacement) + +Call `String.prototype.replace` on the very right-most source snippet. Useful +for trimming white space from the end of a source node, etc. + +* `pattern`: The pattern to replace. + +* `replacement`: The thing to replace the pattern with. + +```js +// Trim trailing white space. +node.replaceRight(/\s*$/, ""); +``` + +#### SourceNode.prototype.toString() + +Return the string representation of this source node. Walks over the tree and +concatenates all the various snippets together to one string. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toString() +// 'unodostresquatro' +``` + +#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap]) + +Returns the string representation of this tree of source nodes, plus a +SourceMapGenerator which contains all the mappings between the generated and +original sources. + +The arguments are the same as those to `new SourceMapGenerator`. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toStringWithSourceMap({ file: "my-output-file.js" }) +// { code: 'unodostresquatro', +// map: [object SourceMapGenerator] } +``` diff --git a/node_modules/source-map-js/lib/array-set.js b/node_modules/source-map-js/lib/array-set.js new file mode 100644 index 0000000..fbd5c81 --- /dev/null +++ b/node_modules/source-map-js/lib/array-set.js @@ -0,0 +1,121 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; diff --git a/node_modules/source-map-js/lib/base64-vlq.js b/node_modules/source-map-js/lib/base64-vlq.js new file mode 100644 index 0000000..612b404 --- /dev/null +++ b/node_modules/source-map-js/lib/base64-vlq.js @@ -0,0 +1,140 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = require('./base64'); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; diff --git a/node_modules/source-map-js/lib/base64.js b/node_modules/source-map-js/lib/base64.js new file mode 100644 index 0000000..8aa86b3 --- /dev/null +++ b/node_modules/source-map-js/lib/base64.js @@ -0,0 +1,67 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; diff --git a/node_modules/source-map-js/lib/binary-search.js b/node_modules/source-map-js/lib/binary-search.js new file mode 100644 index 0000000..010ac94 --- /dev/null +++ b/node_modules/source-map-js/lib/binary-search.js @@ -0,0 +1,111 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; diff --git a/node_modules/source-map-js/lib/mapping-list.js b/node_modules/source-map-js/lib/mapping-list.js new file mode 100644 index 0000000..06d1274 --- /dev/null +++ b/node_modules/source-map-js/lib/mapping-list.js @@ -0,0 +1,79 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; diff --git a/node_modules/source-map-js/lib/quick-sort.js b/node_modules/source-map-js/lib/quick-sort.js new file mode 100644 index 0000000..23f9eda --- /dev/null +++ b/node_modules/source-map-js/lib/quick-sort.js @@ -0,0 +1,132 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +function SortTemplate(comparator) { + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + + return doQuickSort; +} + +function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + +let sortCache = new WeakMap(); +exports.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); +}; diff --git a/node_modules/source-map-js/lib/source-map-consumer.js b/node_modules/source-map-js/lib/source-map-consumer.js new file mode 100644 index 0000000..4bd7a4a --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-consumer.js @@ -0,0 +1,1184 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var binarySearch = require('./binary-search'); +var ArraySet = require('./array-set').ArraySet; +var base64VLQ = require('./base64-vlq'); +var quickSort = require('./quick-sort').quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + +const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; +function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } +} +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/node_modules/source-map-js/lib/source-map-generator.js b/node_modules/source-map-js/lib/source-map-generator.js new file mode 100644 index 0000000..508bcfb --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-generator.js @@ -0,0 +1,425 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = require('./base64-vlq'); +var util = require('./util'); +var ArraySet = require('./array-set').ArraySet; +var MappingList = require('./mapping-list').MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; diff --git a/node_modules/source-map-js/lib/source-node.js b/node_modules/source-map-js/lib/source-node.js new file mode 100644 index 0000000..8bcdbe3 --- /dev/null +++ b/node_modules/source-map-js/lib/source-node.js @@ -0,0 +1,413 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; +var util = require('./util'); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; diff --git a/node_modules/source-map-js/lib/util.js b/node_modules/source-map-js/lib/util.js new file mode 100644 index 0000000..430e2d0 --- /dev/null +++ b/node_modules/source-map-js/lib/util.js @@ -0,0 +1,594 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +var MAX_CACHED_INPUTS = 32; + +/** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ +function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; +} + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +}); +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; diff --git a/node_modules/source-map-js/package.json b/node_modules/source-map-js/package.json new file mode 100644 index 0000000..501fafe --- /dev/null +++ b/node_modules/source-map-js/package.json @@ -0,0 +1,71 @@ +{ + "name": "source-map-js", + "description": "Generates and consumes source maps", + "version": "1.0.2", + "homepage": "https://github.com/7rulnik/source-map-js", + "author": "Valentin 7rulnik Semirulnik ", + "contributors": [ + "Nick Fitzgerald ", + "Tobias Koppers ", + "Duncan Beevers ", + "Stephen Crane ", + "Ryan Seddon ", + "Miles Elam ", + "Mihai Bazon ", + "Michael Ficarra ", + "Todd Wolfson ", + "Alexander Solovyov ", + "Felix Gnass ", + "Conrad Irwin ", + "usrbincc ", + "David Glasser ", + "Chase Douglas ", + "Evan Wallace ", + "Heather Arthur ", + "Hugh Kennedy ", + "David Glasser ", + "Simon Lydell ", + "Jmeas Smith ", + "Michael Z Goddard ", + "azu ", + "John Gozde ", + "Adam Kirkton ", + "Chris Montgomery ", + "J. Ryan Stinnett ", + "Jack Herrington ", + "Chris Truter ", + "Daniel Espeset ", + "Jamie Wong ", + "Eddy Bruël ", + "Hawken Rives ", + "Gilad Peleg ", + "djchie ", + "Gary Ye ", + "Nicolas Lalevée " + ], + "repository": "7rulnik/source-map-js", + "main": "./source-map.js", + "files": [ + "source-map.js", + "source-map.d.ts", + "lib/" + ], + "engines": { + "node": ">=0.10.0" + }, + "license": "BSD-3-Clause", + "scripts": { + "test": "npm run build && node test/run-tests.js", + "build": "webpack --color", + "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" + }, + "devDependencies": { + "clean-publish": "^3.1.0", + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "clean-publish": { + "cleanDocs": true + }, + "typings": "source-map.d.ts" +} diff --git a/node_modules/source-map-js/source-map.d.ts b/node_modules/source-map-js/source-map.d.ts new file mode 100644 index 0000000..9f8a4b3 --- /dev/null +++ b/node_modules/source-map-js/source-map.d.ts @@ -0,0 +1,115 @@ +declare module 'source-map-js' { + export interface StartOfSourceMap { + file?: string; + sourceRoot?: string; + } + + export interface RawSourceMap extends StartOfSourceMap { + version: string; + sources: string[]; + names: string[]; + sourcesContent?: string[]; + mappings: string; + } + + export interface Position { + line: number; + column: number; + } + + export interface LineRange extends Position { + lastColumn: number; + } + + export interface FindPosition extends Position { + // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND + bias?: number; + } + + export interface SourceFindPosition extends FindPosition { + source: string; + } + + export interface MappedPosition extends Position { + source: string; + name?: string; + } + + export interface MappingItem { + source: string; + generatedLine: number; + generatedColumn: number; + originalLine: number; + originalColumn: number; + name: string; + } + + export class SourceMapConsumer { + static GENERATED_ORDER: number; + static ORIGINAL_ORDER: number; + + static GREATEST_LOWER_BOUND: number; + static LEAST_UPPER_BOUND: number; + + constructor(rawSourceMap: RawSourceMap); + computeColumnSpans(): void; + originalPositionFor(generatedPosition: FindPosition): MappedPosition; + generatedPositionFor(originalPosition: SourceFindPosition): LineRange; + allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; + hasContentsOfAllSources(): boolean; + sourceContentFor(source: string, returnNullOnMissing?: boolean): string; + eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; + } + + export interface Mapping { + generated: Position; + original: Position; + source: string; + name?: string; + } + + export class SourceMapGenerator { + constructor(startOfSourceMap?: StartOfSourceMap); + static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator; + addMapping(mapping: Mapping): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; + toString(): string; + } + + export interface CodeWithSourceMap { + code: string; + map: SourceMapGenerator; + } + + export class SourceNode { + constructor(); + constructor(line: number, column: number, source: string); + constructor(line: number, column: number, source: string, chunk?: string, name?: string); + static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; + add(chunk: string): void; + prepend(chunk: string): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + walk(fn: (chunk: string, mapping: MappedPosition) => void): void; + walkSourceContents(fn: (file: string, content: string) => void): void; + join(sep: string): SourceNode; + replaceRight(pattern: string, replacement: string): SourceNode; + toString(): string; + toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; + } +} + +declare module 'source-map-js/lib/source-map-generator' { + import { SourceMapGenerator } from 'source-map-js' + export { SourceMapGenerator } +} + +declare module 'source-map-js/lib/source-map-consumer' { + import { SourceMapConsumer } from 'source-map-js' + export { SourceMapConsumer } +} + +declare module 'source-map-js/lib/source-node' { + import { SourceNode } from 'source-map-js' + export { SourceNode } +} diff --git a/node_modules/source-map-js/source-map.js b/node_modules/source-map-js/source-map.js new file mode 100644 index 0000000..bc88fe8 --- /dev/null +++ b/node_modules/source-map-js/source-map.js @@ -0,0 +1,8 @@ +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; +exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; +exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/node_modules/string-width/index.d.ts b/node_modules/string-width/index.d.ts new file mode 100644 index 0000000..12b5309 --- /dev/null +++ b/node_modules/string-width/index.d.ts @@ -0,0 +1,29 @@ +declare const stringWidth: { + /** + Get the visual width of a string - the number of columns required to display it. + + Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. + + @example + ``` + import stringWidth = require('string-width'); + + stringWidth('a'); + //=> 1 + + stringWidth('古'); + //=> 2 + + stringWidth('\u001B[1m古\u001B[22m'); + //=> 2 + ``` + */ + (string: string): number; + + // TODO: remove this in the next major version, refactor the whole definition to: + // declare function stringWidth(string: string): number; + // export = stringWidth; + default: typeof stringWidth; +} + +export = stringWidth; diff --git a/node_modules/string-width/index.js b/node_modules/string-width/index.js new file mode 100644 index 0000000..f4d261a --- /dev/null +++ b/node_modules/string-width/index.js @@ -0,0 +1,47 @@ +'use strict'; +const stripAnsi = require('strip-ansi'); +const isFullwidthCodePoint = require('is-fullwidth-code-point'); +const emojiRegex = require('emoji-regex'); + +const stringWidth = string => { + if (typeof string !== 'string' || string.length === 0) { + return 0; + } + + string = stripAnsi(string); + + if (string.length === 0) { + return 0; + } + + string = string.replace(emojiRegex(), ' '); + + let width = 0; + + for (let i = 0; i < string.length; i++) { + const code = string.codePointAt(i); + + // Ignore control characters + if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { + continue; + } + + // Ignore combining characters + if (code >= 0x300 && code <= 0x36F) { + continue; + } + + // Surrogates + if (code > 0xFFFF) { + i++; + } + + width += isFullwidthCodePoint(code) ? 2 : 1; + } + + return width; +}; + +module.exports = stringWidth; +// TODO: remove this in the next major version +module.exports.default = stringWidth; diff --git a/node_modules/string-width/license b/node_modules/string-width/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/string-width/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/string-width/package.json b/node_modules/string-width/package.json new file mode 100644 index 0000000..28ba7b4 --- /dev/null +++ b/node_modules/string-width/package.json @@ -0,0 +1,56 @@ +{ + "name": "string-width", + "version": "4.2.3", + "description": "Get the visual width of a string - the number of columns required to display it", + "license": "MIT", + "repository": "sindresorhus/string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "string", + "character", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + } +} diff --git a/node_modules/string-width/readme.md b/node_modules/string-width/readme.md new file mode 100644 index 0000000..bdd3141 --- /dev/null +++ b/node_modules/string-width/readme.md @@ -0,0 +1,50 @@ +# string-width + +> Get the visual width of a string - the number of columns required to display it + +Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. + +Useful to be able to measure the actual width of command-line output. + + +## Install + +``` +$ npm install string-width +``` + + +## Usage + +```js +const stringWidth = require('string-width'); + +stringWidth('a'); +//=> 1 + +stringWidth('古'); +//=> 2 + +stringWidth('\u001B[1m古\u001B[22m'); +//=> 2 +``` + + +## Related + +- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module +- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string +- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/strip-ansi/index.d.ts b/node_modules/strip-ansi/index.d.ts new file mode 100644 index 0000000..907fccc --- /dev/null +++ b/node_modules/strip-ansi/index.d.ts @@ -0,0 +1,17 @@ +/** +Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. + +@example +``` +import stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` +*/ +declare function stripAnsi(string: string): string; + +export = stripAnsi; diff --git a/node_modules/strip-ansi/index.js b/node_modules/strip-ansi/index.js new file mode 100644 index 0000000..9a593df --- /dev/null +++ b/node_modules/strip-ansi/index.js @@ -0,0 +1,4 @@ +'use strict'; +const ansiRegex = require('ansi-regex'); + +module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; diff --git a/node_modules/strip-ansi/license b/node_modules/strip-ansi/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/strip-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/strip-ansi/package.json b/node_modules/strip-ansi/package.json new file mode 100644 index 0000000..1a41108 --- /dev/null +++ b/node_modules/strip-ansi/package.json @@ -0,0 +1,54 @@ +{ + "name": "strip-ansi", + "version": "6.0.1", + "description": "Strip ANSI escape codes from a string", + "license": "MIT", + "repository": "chalk/strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.10.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/strip-ansi/readme.md b/node_modules/strip-ansi/readme.md new file mode 100644 index 0000000..7c4b56d --- /dev/null +++ b/node_modules/strip-ansi/readme.md @@ -0,0 +1,46 @@ +# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) + +> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string + + +## Install + +``` +$ npm install strip-ansi +``` + + +## Usage + +```js +const stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` + + +## strip-ansi for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + + +## Related + +- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module +- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module +- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes +- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + diff --git a/node_modules/thenby/LICENSE.TXT b/node_modules/thenby/LICENSE.TXT new file mode 100644 index 0000000..8dada3e --- /dev/null +++ b/node_modules/thenby/LICENSE.TXT @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/thenby/README.md b/node_modules/thenby/README.md new file mode 100644 index 0000000..7b7aac0 --- /dev/null +++ b/node_modules/thenby/README.md @@ -0,0 +1,159 @@ + + + + +- [thenBy.js usage](#thenbyjs-usage) + - [Sort by property names](#sort-by-property-names) + - [Sort by unary functions](#sort-by-unary-functions) + - [Extra options](#extra-options) + - [Sort descending](#sort-descending) + - [Case insensitive sorting](#case-insensitive-sorting) + - [Custom compare function](#custom-compare-function) + - [Internationalization: Using javascripts native `Intl.Collator`](#internationalization-using-javascripts-native-intlcollator) + - [A word on performance](#a-word-on-performance) + - [Installing](#installing) + - [Install in your HTML](#install-in-your-html) + - [Install using npm or yarn](#install-using-npm-or-yarn) + + + +# thenBy.js usage + + [![NPM Version][npm-image]][npm-url] + [![NPM Downloads][downloads-image]][downloads-url] + +`thenBy` is a javascript micro library that helps sorting arrays on multiple keys. It allows you to use the [native Array::sort() method](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) of javascript, but pass in multiple functions to sort that are composed with `firstBy().thenBy().thenBy()` style. + +Example: +```javascript +// first by length of name, then by population, then by ID +data.sort( + firstBy(function (v1, v2) { return v1.name.length - v2.name.length; }) + .thenBy(function (v1, v2) { return v1.population - v2.population; }) + .thenBy(function (v1, v2) { return v1.id - v2.id; }) +); +``` +`thenBy` also offers some nice shortcuts that make the most common ways of sorting even easier and more readable. + +### Sort by property names +Javascript sorting relies heavily on passing discriminator functions that return -1, 0 or 1 for a pair of items. While this is very flexible, often you want to sort on the value of a simple property. As a convenience, thenBy.js builds the appropriate compare function for you if you pass in a property name (instead of a function). The example above would then look like this: +```javascript +// first by length of name, then by population, then by ID +data.sort( + firstBy(function (v1, v2) { return v1.name.length - v2.name.length; }) + .thenBy("population") + .thenBy("id") +); +``` + +If an element doesn't have the property defined, it will sort like the empty string (""). Typically, this will be at the top. + +### Sort by unary functions +You can also pass a function that takes a single item and returns its sorting key. This turns the above expression into: +```javascript +// first by length of name, then by population, then by ID +data.sort( + firstBy(function (v) { return v.name.length; }) + .thenBy("population") + .thenBy("id") +); +``` + +Note that javascript contains a number of standard functions that can be passed in here as well. The Number() function will make your sorting sort on numeric values instead of lexical values: +```javascript +var values = ["2", "20", "03", "-2", "0", 200, "2"]; +var sorted = values.sort(firstBy(Number)); +``` +## Extra options +### Sort descending +thenBy.js allows you to pass in a second parameter for `direction`. If you pass in 'desc' or -1, the sorting will be reversed. So: +```javascript +// first by length of name descending, then by population descending, then by ID ascending +data.sort( + firstBy(function (v1, v2) { return v1.name.length - v2.name.length; }, -1) + .thenBy("population", "desc") + .thenBy("id") +); +``` + +### Case insensitive sorting +(as of v1.2.0) All of the shortcut methods allow you to sort case insensitive as well. The second parameter expects an options object (if it is a number, it is interpreted as `direction` as above). The ignoreCase property can be set to true, like this: +```javascript +// first by name, case insensitive, then by population +data.sort( + firstBy("name", {ignoreCase:true}) + .thenBy("population") +); +``` +If you want to use both descending and ignoreCase, you have to use the options syntax for direction as well: +```javascript +// sort by name, case insensitive and descending +data.sort(firstBy("name", {ignoreCase:true, direction:"desc"})); +``` +### Custom compare function +If you have more specific wishes for the exact sort order, but still want to use the convenience of unary functions or sorting on property names, you can pass in you own compare function in the options. Here we use a compare function that known about the relative values of playing cards:: + +```javascript +const cards = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']; +var cardCompare = (c1, c2) =>{ + return cards.indexOf(c1) - cards.indexOf(c2); +} +var handOfCards = [ + { id: 7, suit:"c", card:"A" }, + { id: 8, suit:"d", card:"10" }, + // etc + ]; +handOfCards.sort(firstBy("card", {cmp: cardCompare, direction: "desc"})); + +``` +You can use the `cmp` function together with `direction`, but not with `ignoreCase` (for obvious reasons). + +### Internationalization: Using javascripts native `Intl.Collator` +One of the more interesting custom compare functions you may want to pass in is the native `compare` function that is exposed by `Intl.Collator`. This compare function knows about the different sorting rules in different cultures. Many browsers have these implemented, but in NodeJS, the API is implemented, but only for the English culture. You would use it with thenBy like this: + +```javascript +// in German, ä sorts with a +var germanCompare = new Intl.Collator('de').compare; +// in Swedish, ä sorts after z +var swedishCompare = new Intl.Collator('sv').compare; +data.sort( + firstBy("name", {cmp: swedishCompare}) +); +``` +Check the [details on using Intl.Collator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator). + +## A word on performance +thenBy constructs a comparer function for you. It does this by combining the functions you pass in with a number of small utility functions that perform tasks like "reverting", "combining the current sort order with the previous one", etc. Also, these operations try to work correctly, no matter what content is in the sorted array. There are two steps here that cost time: constructing the über-function and running it. The construction time should always be negligible. The run time however can be slower than when you carefully handcraft the compare function. Still, *normally you shouldn't worry about this*, but if you're sorting very large sets, it could matter. For example, there is some overhead in making several small functions call each other instead of creating one piece of code. Also, if you know your data well, and know that a specific field is *alwways present* and is *always a number*, you could code a significantly faster compare function then thenBy's results. The unit tests contain an extreme example. + +If you use thenBy to combine multiple compare functions into one (where each function expects two parameters), the difference is small. Using unary functions adds some overhead, using direction:desc adds some, using only a property name adds a little, but will check for missing values, which could be optimized. Ignoring case will slow down, but not more so than when handcoded. + +## Installing +### Install in your HTML +To include it into your page/project, just paste the minified code from https://raw.github.com/Teun/thenBy.js/master/thenBy.min.js into yours (699 characters). If you don't want the `firstBy` function in your global namespace, you can assign it to a local variable (see sample.htm). + +### Install using npm or yarn +```npm install thenby``` + +or + +```yarn add thenby``` + +then in your app: + +```var firstBy = require('thenby');``` + +or in TypeScript/ES6: + +```import {firstBy} from "thenby";``` + +For a small demo of how TypeScript support looks in a good editor (i.e. VS Code), [check this short video](https://youtu.be/mKJovFLyxro). + + +Thanks a lot to [bergus](https://github.com/bergus), [hagabaka](https://github.com/hagabaka), [infolyzer](https://github.com/infolyzer) and [Foxhoundn](https://github.com/Foxhoundn) for their improvements. +Thanks to [jsgoupil](https://github.com/jsgoupil) and [HonoluluHenk](https://github.com/HonoluluHenk) for their help on the TypeScript declaration. + + +[npm-image]: https://img.shields.io/npm/v/thenby.svg +[npm-url]: https://npmjs.org/package/thenby +[downloads-image]: https://img.shields.io/npm/dm/thenby.svg +[downloads-url]: https://npmjs.org/package/thenby diff --git a/node_modules/thenby/package.json b/node_modules/thenby/package.json new file mode 100644 index 0000000..4efb912 --- /dev/null +++ b/node_modules/thenby/package.json @@ -0,0 +1,45 @@ +{ + "name": "thenby", + "version": "1.3.4", + "description": "Micro library for sorting arrays using the firstBy().thenBy().thenBy() syntax", + "main": "thenBy.module.js", + "types": "thenBy.module.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/Teun/thenBy.js.git" + }, + "keywords": [ + "sort", + "order", + "sorting", + "arrays", + "multiple" + ], + "files": [ + "thenBy.module.js", + "thenBy.module.d.ts", + "thenBy.min.js" + ], + "scripts": { + "test": "gulp", + "build": "gulp build" + }, + "author": "Teun Duynstee", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/Teun/thenBy.js/issues" + }, + "homepage": "https://github.com/Teun/thenBy.js", + "devDependencies": { + "chai": "^3.5.0", + "gulp": "^4.0.2", + "gulp-insert": "^0.5.0", + "gulp-mocha": "^7.0.2", + "gulp-rename": "^1.2.2", + "gulp-replace": "^0.5.4", + "gulp-uglify": "^2.1.2", + "gulp-umd": "^2.0.0", + "performance-now": "^0.2.0" + }, + "dependencies": {} +} diff --git a/node_modules/thenby/thenBy.min.js b/node_modules/thenby/thenBy.min.js new file mode 100644 index 0000000..ba9ef0b --- /dev/null +++ b/node_modules/thenby/thenBy.min.js @@ -0,0 +1,2 @@ +/*** Copyright 2020 Teun Duynstee Licensed under the Apache License, Version 2.0 ***/ +!function(n,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():n.firstBy=t()}(this,function(){return function(){function n(n){return n}function t(n){return"string"==typeof n?n.toLowerCase():n}function e(e,r){if(r="object"==typeof r?r:{direction:r},"function"!=typeof e){var i=e;e=function(n){return n[i]?n[i]:""}}if(1===e.length){var o=e,f=r.ignoreCase?t:n,u=r.cmp||function(n,t){return nt?1:0};e=function(n,t){return u(f(o(n)),f(o(t)))}}const c={"-1":"",desc:""};return r.direction in c?function(n,t){return-e(n,t)}:e}function r(n,t){var i="function"==typeof this&&!this.firstBy&&this,o=e(n,t),f=i?function(n,t){return i(n,t)||o(n,t)}:o;return f.thenBy=r,f}return r.firstBy=r,r}()}); \ No newline at end of file diff --git a/node_modules/thenby/thenBy.module.d.ts b/node_modules/thenby/thenBy.module.d.ts new file mode 100644 index 0000000..becb6d5 --- /dev/null +++ b/node_modules/thenby/thenBy.module.d.ts @@ -0,0 +1,51 @@ +// Type definitions for thenBy +// Definitions by: Teun Duynstee (with significant help from @HonoluluHenk) +type SortOrder = "asc" | "desc" | -1 | 1; +declare class opt { + direction?:SortOrder; + ignoreCase?:boolean; +} +declare class typedOpt extends opt { + cmp?: (a:T, b:T)=> number; +} +interface IThenBy { + (v1: T, v2: T) : number; + /** + * Full format to compare two elements and determine which sorts first. + * @param compare function that receives two values from the sorted array and returns a number indicating which comes first: < 0: first comes first, 0: doesn't matter, > 0: second comes first. + * @param direction can be used to reverse the sorting by passing -1 + **/ + thenBy(compare: ((v1: T, v2: T) => number), direction?: SortOrder | opt): IThenBy; + /** + * Shorthand for selecting a value to sort on from the sorted element. + * @param select function that receives a value from the sorted array and selects the thing to sort on + * @param direction reverse by passing -1. opt for other options + **/ + thenBy(select: ((v: T) => U), direction?: SortOrder | typedOpt): IThenBy; + /** + * Shorthand for sorting on a simple property. + * @param byPropertyName is the name of the property to sort on as a string + * @param direction reverse by passing -1. opt for other options + **/ + thenBy(byPropertyName: (keyof T), direction?: SortOrder | typedOpt): IThenBy; +} +declare module "thenby" { + /** + * Full format to compare two elements and determine which sorts first. + * @param compare function that receives two values from the sorted array and returns a number indicating which comes first: < 0: first comes first, 0: doesn't matter, > 0: second comes first. + * @param direction can be used to reverse the sorting by passing -1 + **/ + export function firstBy(compare: ((v1: T, v2: T) => number), direction?: SortOrder | opt): IThenBy; + /** + * Shorthand for selecting a value to sort on from the sorted element. + * @param select function that receives a value from the sorted array and selects the thing to sort on + * @param direction reverse by passing -1. opt for other options + **/ + export function firstBy(select: ((v: T) => U), direction?: SortOrder | typedOpt): IThenBy; + /** + * Shorthand for sorting on a simple property. + * @param byPropertyName is the name of the property to sort on as a string + * @param direction reverse by passing -1. opt for other options + **/ + export function firstBy(byPropertyName: (keyof T), direction?: SortOrder | typedOpt): IThenBy; + } diff --git a/node_modules/thenby/thenBy.module.js b/node_modules/thenby/thenBy.module.js new file mode 100644 index 0000000..bd1dccb --- /dev/null +++ b/node_modules/thenby/thenBy.module.js @@ -0,0 +1,60 @@ +/*** + Copyright 2013 Teun Duynstee + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +module.exports = (function() { + + function identity(v){return v;} + + function ignoreCase(v){return typeof(v)==="string" ? v.toLowerCase() : v;} + + function makeCompareFunction(f, opt){ + opt = typeof(opt)==="object" ? opt : {direction:opt}; + + if(typeof(f)!="function"){ + var prop = f; + // make unary function + f = function(v1){return !!v1[prop] ? v1[prop] : "";} + } + if(f.length === 1) { + // f is a unary function mapping a single item to its sort score + var uf = f; + var preprocess = opt.ignoreCase?ignoreCase:identity; + var cmp = opt.cmp || function(v1,v2) {return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;} + f = function(v1,v2) {return cmp(preprocess(uf(v1)), preprocess(uf(v2)));} + } + const descTokens = {"-1":'', desc:''}; + if(opt.direction in descTokens) return function(v1,v2){return -f(v1,v2)}; + return f; + } + + /* adds a secondary compare function to the target function (`this` context) + which is applied in case the first one returns 0 (equal) + returns a new compare function, which has a `thenBy` method as well */ + function tb(func, opt) { + /* should get value false for the first call. This can be done by calling the + exported function, or the firstBy property on it (for es6 module compatibility) + */ + var x = (typeof(this) == "function" && !this.firstBy) ? this : false; + var y = makeCompareFunction(func, opt); + var f = x ? function(a, b) { + return x(a,b) || y(a,b); + } + : y; + f.thenBy = tb; + return f; + } + tb.firstBy = tb; + return tb; +})(); diff --git a/node_modules/to-regex-range/LICENSE b/node_modules/to-regex-range/LICENSE new file mode 100644 index 0000000..7cccaf9 --- /dev/null +++ b/node_modules/to-regex-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/to-regex-range/README.md b/node_modules/to-regex-range/README.md new file mode 100644 index 0000000..38887da --- /dev/null +++ b/node_modules/to-regex-range/README.md @@ -0,0 +1,305 @@ +# to-regex-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/to-regex-range.svg?style=flat)](https://www.npmjs.com/package/to-regex-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![NPM total downloads](https://img.shields.io/npm/dt/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![Linux Build Status](https://img.shields.io/travis/micromatch/to-regex-range.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/to-regex-range) + +> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save to-regex-range +``` + +
+What does this do? + +
+ +This libary generates the `source` string to be passed to `new RegExp()` for matching a range of numbers. + +**Example** + +```js +const toRegexRange = require('to-regex-range'); +const regex = new RegExp(toRegexRange('15', '95')); +``` + +A string is returned so that you can do whatever you need with it before passing it to `new RegExp()` (like adding `^` or `$` boundaries, defining flags, or combining it another string). + +
+ +
+ +
+Why use this library? + +
+ +### Convenience + +Creating regular expressions for matching numbers gets deceptively complicated pretty fast. + +For example, let's say you need a validation regex for matching part of a user-id, postal code, social security number, tax id, etc: + +* regex for matching `1` => `/1/` (easy enough) +* regex for matching `1` through `5` => `/[1-5]/` (not bad...) +* regex for matching `1` or `5` => `/(1|5)/` (still easy...) +* regex for matching `1` through `50` => `/([1-9]|[1-4][0-9]|50)/` (uh-oh...) +* regex for matching `1` through `55` => `/([1-9]|[1-4][0-9]|5[0-5])/` (no prob, I can do this...) +* regex for matching `1` through `555` => `/([1-9]|[1-9][0-9]|[1-4][0-9]{2}|5[0-4][0-9]|55[0-5])/` (maybe not...) +* regex for matching `0001` through `5555` => `/(0{3}[1-9]|0{2}[1-9][0-9]|0[1-9][0-9]{2}|[1-4][0-9]{3}|5[0-4][0-9]{2}|55[0-4][0-9]|555[0-5])/` (okay, I get the point!) + +The numbers are contrived, but they're also really basic. In the real world you might need to generate a regex on-the-fly for validation. + +**Learn more** + +If you're interested in learning more about [character classes](http://www.regular-expressions.info/charclass.html) and other regex features, I personally have always found [regular-expressions.info](http://www.regular-expressions.info/charclass.html) to be pretty useful. + +### Heavily tested + +As of April 07, 2019, this library runs [>1m test assertions](./test/test.js) against generated regex-ranges to provide brute-force verification that results are correct. + +Tests run in ~280ms on my MacBook Pro, 2.5 GHz Intel Core i7. + +### Optimized + +Generated regular expressions are optimized: + +* duplicate sequences and character classes are reduced using quantifiers +* smart enough to use `?` conditionals when number(s) or range(s) can be positive or negative +* uses fragment caching to avoid processing the same exact string more than once + +
+ +
+ +## Usage + +Add this library to your javascript application with the following line of code + +```js +const toRegexRange = require('to-regex-range'); +``` + +The main export is a function that takes two integers: the `min` value and `max` value (formatted as strings or numbers). + +```js +const source = toRegexRange('15', '95'); +//=> 1[5-9]|[2-8][0-9]|9[0-5] + +const regex = new RegExp(`^${source}$`); +console.log(regex.test('14')); //=> false +console.log(regex.test('50')); //=> true +console.log(regex.test('94')); //=> true +console.log(regex.test('96')); //=> false +``` + +## Options + +### options.capture + +**Type**: `boolean` + +**Deafault**: `undefined` + +Wrap the returned value in parentheses when there is more than one regex condition. Useful when you're dynamically generating ranges. + +```js +console.log(toRegexRange('-10', '10')); +//=> -[1-9]|-?10|[0-9] + +console.log(toRegexRange('-10', '10', { capture: true })); +//=> (-[1-9]|-?10|[0-9]) +``` + +### options.shorthand + +**Type**: `boolean` + +**Deafault**: `undefined` + +Use the regex shorthand for `[0-9]`: + +```js +console.log(toRegexRange('0', '999999')); +//=> [0-9]|[1-9][0-9]{1,5} + +console.log(toRegexRange('0', '999999', { shorthand: true })); +//=> \d|[1-9]\d{1,5} +``` + +### options.relaxZeros + +**Type**: `boolean` + +**Default**: `true` + +This option relaxes matching for leading zeros when when ranges are zero-padded. + +```js +const source = toRegexRange('-0010', '0010'); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> true +console.log(regex.test('-010')); //=> true +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> true +console.log(regex.test('010')); //=> true +console.log(regex.test('0010')); //=> true +``` + +When `relaxZeros` is false, matching is strict: + +```js +const source = toRegexRange('-0010', '0010', { relaxZeros: false }); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> false +console.log(regex.test('-010')); //=> false +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> false +console.log(regex.test('010')); //=> false +console.log(regex.test('0010')); //=> true +``` + +## Examples + +| **Range** | **Result** | **Compile time** | +| --- | --- | --- | +| `toRegexRange(-10, 10)` | `-[1-9]\|-?10\|[0-9]` | _132μs_ | +| `toRegexRange(-100, -10)` | `-1[0-9]\|-[2-9][0-9]\|-100` | _50μs_ | +| `toRegexRange(-100, 100)` | `-[1-9]\|-?[1-9][0-9]\|-?100\|[0-9]` | _42μs_ | +| `toRegexRange(001, 100)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|100` | _109μs_ | +| `toRegexRange(001, 555)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _51μs_ | +| `toRegexRange(0010, 1000)` | `0{0,2}1[0-9]\|0{0,2}[2-9][0-9]\|0?[1-9][0-9]{2}\|1000` | _31μs_ | +| `toRegexRange(1, 50)` | `[1-9]\|[1-4][0-9]\|50` | _24μs_ | +| `toRegexRange(1, 55)` | `[1-9]\|[1-4][0-9]\|5[0-5]` | _23μs_ | +| `toRegexRange(1, 555)` | `[1-9]\|[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _30μs_ | +| `toRegexRange(1, 5555)` | `[1-9]\|[1-9][0-9]{1,2}\|[1-4][0-9]{3}\|5[0-4][0-9]{2}\|55[0-4][0-9]\|555[0-5]` | _43μs_ | +| `toRegexRange(111, 555)` | `11[1-9]\|1[2-9][0-9]\|[2-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _38μs_ | +| `toRegexRange(29, 51)` | `29\|[34][0-9]\|5[01]` | _24μs_ | +| `toRegexRange(31, 877)` | `3[1-9]\|[4-9][0-9]\|[1-7][0-9]{2}\|8[0-6][0-9]\|87[0-7]` | _32μs_ | +| `toRegexRange(5, 5)` | `5` | _8μs_ | +| `toRegexRange(5, 6)` | `5\|6` | _11μs_ | +| `toRegexRange(1, 2)` | `1\|2` | _6μs_ | +| `toRegexRange(1, 5)` | `[1-5]` | _15μs_ | +| `toRegexRange(1, 10)` | `[1-9]\|10` | _22μs_ | +| `toRegexRange(1, 100)` | `[1-9]\|[1-9][0-9]\|100` | _25μs_ | +| `toRegexRange(1, 1000)` | `[1-9]\|[1-9][0-9]{1,2}\|1000` | _31μs_ | +| `toRegexRange(1, 10000)` | `[1-9]\|[1-9][0-9]{1,3}\|10000` | _34μs_ | +| `toRegexRange(1, 100000)` | `[1-9]\|[1-9][0-9]{1,4}\|100000` | _36μs_ | +| `toRegexRange(1, 1000000)` | `[1-9]\|[1-9][0-9]{1,5}\|1000000` | _42μs_ | +| `toRegexRange(1, 10000000)` | `[1-9]\|[1-9][0-9]{1,6}\|10000000` | _42μs_ | + +## Heads up! + +**Order of arguments** + +When the `min` is larger than the `max`, values will be flipped to create a valid range: + +```js +toRegexRange('51', '29'); +``` + +Is effectively flipped to: + +```js +toRegexRange('29', '51'); +//=> 29|[3-4][0-9]|5[0-1] +``` + +**Steps / increments** + +This library does not support steps (increments). A pr to add support would be welcome. + +## History + +### v2.0.0 - 2017-04-21 + +**New features** + +Adds support for zero-padding! + +### v1.0.0 + +**Optimizations** + +Repeating ranges are now grouped using quantifiers. rocessing time is roughly the same, but the generated regex is much smaller, which should result in faster matching. + +## Attribution + +Inspired by the python library [range-regex](https://github.com/dimka665/range-regex). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by micromatch.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") +* [repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.") +* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string "Repeat the given string n times. Fastest implementation for repeating a string.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 63 | [jonschlinkert](https://github.com/jonschlinkert) | +| 3 | [doowb](https://github.com/doowb) | +| 2 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 07, 2019._ \ No newline at end of file diff --git a/node_modules/to-regex-range/index.js b/node_modules/to-regex-range/index.js new file mode 100644 index 0000000..77fbace --- /dev/null +++ b/node_modules/to-regex-range/index.js @@ -0,0 +1,288 @@ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +const isNumber = require('is-number'); + +const toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } + + if (max === void 0 || min === max) { + return String(min); + } + + if (isNumber(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } + + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } + + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; + + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; + } + + toRegexRange.cache[cacheKey] = state; + return state.result; +}; + +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; + let onlyPositive = filterPatterns(pos, neg, '', false, options) || []; + let intersected = filterPatterns(neg, pos, '-?', true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + + let stop = countNines(min, nines); + let stops = new Set([max]); + + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops = [...stops]; + stops.sort(compare); + return stops; +} + +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ + +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; + + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit, options); + + } else { + count++; + } + } + + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; +} + +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + + for (let ele of arr) { + let { string } = ele; + + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } + + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } + return result; +} + +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} + +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} + +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; +} + +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; +} + +function hasPadding(str) { + return /^-?(0+)\d/.test(str); +} + +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} + +/** + * Cache + */ + +toRegexRange.cache = {}; +toRegexRange.clearCache = () => (toRegexRange.cache = {}); + +/** + * Expose `toRegexRange` + */ + +module.exports = toRegexRange; diff --git a/node_modules/to-regex-range/package.json b/node_modules/to-regex-range/package.json new file mode 100644 index 0000000..4ef194f --- /dev/null +++ b/node_modules/to-regex-range/package.json @@ -0,0 +1,88 @@ +{ + "name": "to-regex-range", + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", + "version": "5.0.1", + "homepage": "https://github.com/micromatch/to-regex-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "micromatch/to-regex-range", + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.0" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "is-number": "^7.0.0" + }, + "devDependencies": { + "fill-range": "^6.0.0", + "gulp-format-md": "^2.0.0", + "mocha": "^6.0.2", + "text-table": "^0.2.0", + "time-diff": "^0.3.1" + }, + "keywords": [ + "bash", + "date", + "expand", + "expansion", + "expression", + "glob", + "match", + "match date", + "match number", + "match numbers", + "match year", + "matches", + "matching", + "number", + "numbers", + "numerical", + "range", + "ranges", + "regex", + "regexp", + "regular", + "regular expression", + "sequence" + ], + "verb": { + "layout": "default", + "toc": false, + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "helpers": { + "examples": { + "displayName": "examples" + } + }, + "related": { + "list": [ + "expand-range", + "fill-range", + "micromatch", + "repeat-element", + "repeat-string" + ] + } + } +} diff --git a/node_modules/universalify/LICENSE b/node_modules/universalify/LICENSE new file mode 100644 index 0000000..514e84e --- /dev/null +++ b/node_modules/universalify/LICENSE @@ -0,0 +1,20 @@ +(The MIT License) + +Copyright (c) 2017, Ryan Zimmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/universalify/README.md b/node_modules/universalify/README.md new file mode 100644 index 0000000..aa12474 --- /dev/null +++ b/node_modules/universalify/README.md @@ -0,0 +1,76 @@ +# universalify + +[![Travis branch](https://img.shields.io/travis/RyanZim/universalify/master.svg)](https://travis-ci.org/RyanZim/universalify) +![Coveralls github branch](https://img.shields.io/coveralls/github/RyanZim/universalify/master.svg) +![npm](https://img.shields.io/npm/dm/universalify.svg) +![npm](https://img.shields.io/npm/l/universalify.svg) + +Make a callback- or promise-based function support both promises and callbacks. + +Uses the native promise implementation. + +## Installation + +```bash +npm install universalify +``` + +## API + +### `universalify.fromCallback(fn)` + +Takes a callback-based function to universalify, and returns the universalified function. + +Function must take a callback as the last parameter that will be called with the signature `(error, result)`. `universalify` does not support calling the callback with three or more arguments, and does not ensure that the callback is only called once. + +```js +function callbackFn (n, cb) { + setTimeout(() => cb(null, n), 15) +} + +const fn = universalify.fromCallback(callbackFn) + +// Works with Promises: +fn('Hello World!') +.then(result => console.log(result)) // -> Hello World! +.catch(error => console.error(error)) + +// Works with Callbacks: +fn('Hi!', (error, result) => { + if (error) return console.error(error) + console.log(result) + // -> Hi! +}) +``` + +### `universalify.fromPromise(fn)` + +Takes a promise-based function to universalify, and returns the universalified function. + +Function must return a valid JS promise. `universalify` does not ensure that a valid promise is returned. + +```js +function promiseFn (n) { + return new Promise(resolve => { + setTimeout(() => resolve(n), 15) + }) +} + +const fn = universalify.fromPromise(promiseFn) + +// Works with Promises: +fn('Hello World!') +.then(result => console.log(result)) // -> Hello World! +.catch(error => console.error(error)) + +// Works with Callbacks: +fn('Hi!', (error, result) => { + if (error) return console.error(error) + console.log(result) + // -> Hi! +}) +``` + +## License + +MIT diff --git a/node_modules/universalify/index.js b/node_modules/universalify/index.js new file mode 100644 index 0000000..ba6c662 --- /dev/null +++ b/node_modules/universalify/index.js @@ -0,0 +1,24 @@ +'use strict' + +exports.fromCallback = function (fn) { + return Object.defineProperty(function (...args) { + if (typeof args[args.length - 1] === 'function') fn.apply(this, args) + else { + return new Promise((resolve, reject) => { + fn.call( + this, + ...args, + (err, res) => (err != null) ? reject(err) : resolve(res) + ) + }) + } + }, 'name', { value: fn.name }) +} + +exports.fromPromise = function (fn) { + return Object.defineProperty(function (...args) { + const cb = args[args.length - 1] + if (typeof cb !== 'function') return fn.apply(this, args) + else fn.apply(this, args.slice(0, -1)).then(r => cb(null, r), cb) + }, 'name', { value: fn.name }) +} diff --git a/node_modules/universalify/package.json b/node_modules/universalify/package.json new file mode 100644 index 0000000..006d4cc --- /dev/null +++ b/node_modules/universalify/package.json @@ -0,0 +1,34 @@ +{ + "name": "universalify", + "version": "2.0.0", + "description": "Make a callback- or promise-based function support both promises and callbacks.", + "keywords": [ + "callback", + "native", + "promise" + ], + "homepage": "https://github.com/RyanZim/universalify#readme", + "bugs": "https://github.com/RyanZim/universalify/issues", + "license": "MIT", + "author": "Ryan Zimmerman ", + "files": [ + "index.js" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/RyanZim/universalify.git" + }, + "scripts": { + "test": "standard && nyc tape test/*.js | colortape" + }, + "devDependencies": { + "colortape": "^0.1.2", + "coveralls": "^3.0.1", + "nyc": "^15.0.0", + "standard": "^14.3.1", + "tape": "^5.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } +} diff --git a/node_modules/update-browserslist-db/LICENSE b/node_modules/update-browserslist-db/LICENSE new file mode 100644 index 0000000..377ae1b --- /dev/null +++ b/node_modules/update-browserslist-db/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Andrey Sitnik and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/update-browserslist-db/README.md b/node_modules/update-browserslist-db/README.md new file mode 100644 index 0000000..d7a4e2a --- /dev/null +++ b/node_modules/update-browserslist-db/README.md @@ -0,0 +1,22 @@ +# Update Browserslist DB + +Browserslist logo by Anton Popov + +CLI tool to update `caniuse-lite` with browsers DB +from [Browserslist](https://github.com/browserslist/browserslist/) config. + +Some queries like `last 2 version` or `>1%` depends on actual data +from `caniuse-lite`. + +```sh +npx update-browserslist-db@latest +``` + + + Sponsored by Evil Martians + + +## Docs +Read full docs **[here](https://github.com/browserslist/update-db#readme)**. diff --git a/node_modules/update-browserslist-db/check-npm-version.js b/node_modules/update-browserslist-db/check-npm-version.js new file mode 100644 index 0000000..25e1c92 --- /dev/null +++ b/node_modules/update-browserslist-db/check-npm-version.js @@ -0,0 +1,16 @@ +let { execSync } = require('child_process') +let pico = require('picocolors') + +try { + let version = parseInt(execSync('npm -v')) + if (version <= 6) { + process.stderr.write( + pico.red( + 'Update npm or call ' + + pico.yellow('npx browserslist@latest --update-db') + + '\n' + ) + ) + process.exit(1) + } +} catch (e) {} diff --git a/node_modules/update-browserslist-db/cli.js b/node_modules/update-browserslist-db/cli.js new file mode 100755 index 0000000..1388e94 --- /dev/null +++ b/node_modules/update-browserslist-db/cli.js @@ -0,0 +1,42 @@ +#!/usr/bin/env node + +let { readFileSync } = require('fs') +let { join } = require('path') + +require('./check-npm-version') +let updateDb = require('./') + +const ROOT = __dirname + +function getPackage() { + return JSON.parse(readFileSync(join(ROOT, 'package.json'))) +} + +let args = process.argv.slice(2) + +let USAGE = 'Usage:\n npx update-browserslist-db\n' + +function isArg(arg) { + return args.some(i => i === arg) +} + +function error(msg) { + process.stderr.write('update-browserslist-db: ' + msg + '\n') + process.exit(1) +} + +if (isArg('--help') || isArg('-h')) { + process.stdout.write(getPackage().description + '.\n\n' + USAGE + '\n') +} else if (isArg('--version') || isArg('-v')) { + process.stdout.write('browserslist-lint ' + getPackage().version + '\n') +} else { + try { + updateDb() + } catch (e) { + if (e.name === 'BrowserslistUpdateError') { + error(e.message) + } else { + throw e + } + } +} diff --git a/node_modules/update-browserslist-db/index.d.ts b/node_modules/update-browserslist-db/index.d.ts new file mode 100644 index 0000000..05ef411 --- /dev/null +++ b/node_modules/update-browserslist-db/index.d.ts @@ -0,0 +1,6 @@ +/** + * Run update and print output to terminal. + */ +declare function updateDb(print?: (str: string) => void): Promise + +export = updateDb diff --git a/node_modules/update-browserslist-db/index.js b/node_modules/update-browserslist-db/index.js new file mode 100644 index 0000000..464f74d --- /dev/null +++ b/node_modules/update-browserslist-db/index.js @@ -0,0 +1,317 @@ +let { writeFileSync, readFileSync, existsSync } = require('fs') +let { execSync } = require('child_process') +let { join } = require('path') +let escalade = require('escalade/sync') +let pico = require('picocolors') + +const { detectIndent, detectEOL } = require('./utils') + +function BrowserslistUpdateError(message) { + this.name = 'BrowserslistUpdateError' + this.message = message + this.browserslist = true + if (Error.captureStackTrace) { + Error.captureStackTrace(this, BrowserslistUpdateError) + } +} + +BrowserslistUpdateError.prototype = Error.prototype + +/* c8 ignore next 3 */ +function defaultPrint(str) { + process.stdout.write(str) +} + +function detectLockfile() { + let packageDir = escalade('.', (dir, names) => { + return names.indexOf('package.json') !== -1 ? dir : '' + }) + + if (!packageDir) { + throw new BrowserslistUpdateError( + 'Cannot find package.json. ' + + 'Is this the right directory to run `npx update-browserslist-db` in?' + ) + } + + let lockfileNpm = join(packageDir, 'package-lock.json') + let lockfileShrinkwrap = join(packageDir, 'npm-shrinkwrap.json') + let lockfileYarn = join(packageDir, 'yarn.lock') + let lockfilePnpm = join(packageDir, 'pnpm-lock.yaml') + + if (existsSync(lockfilePnpm)) { + return { mode: 'pnpm', file: lockfilePnpm } + } else if (existsSync(lockfileNpm)) { + return { mode: 'npm', file: lockfileNpm } + } else if (existsSync(lockfileYarn)) { + let lock = { mode: 'yarn', file: lockfileYarn } + lock.content = readFileSync(lock.file).toString() + lock.version = /# yarn lockfile v1/.test(lock.content) ? 1 : 2 + return lock + } else if (existsSync(lockfileShrinkwrap)) { + return { mode: 'npm', file: lockfileShrinkwrap } + } + throw new BrowserslistUpdateError( + 'No lockfile found. Run "npm install", "yarn install" or "pnpm install"' + ) +} + +function getLatestInfo(lock) { + if (lock.mode === 'yarn') { + if (lock.version === 1) { + return JSON.parse(execSync('yarn info caniuse-lite --json').toString()) + .data + } else { + return JSON.parse( + execSync('yarn npm info caniuse-lite --json').toString() + ) + } + } + if (lock.mode === 'pnpm') { + return JSON.parse(execSync('pnpm info caniuse-lite --json').toString()) + } + return JSON.parse(execSync('npm show caniuse-lite --json').toString()) +} + +function getBrowsers() { + let browserslist = require('browserslist') + return browserslist().reduce((result, entry) => { + if (!result[entry[0]]) { + result[entry[0]] = [] + } + result[entry[0]].push(entry[1]) + return result + }, {}) +} + +function diffBrowsers(old, current) { + let browsers = Object.keys(old).concat( + Object.keys(current).filter(browser => old[browser] === undefined) + ) + return browsers + .map(browser => { + let oldVersions = old[browser] || [] + let currentVersions = current[browser] || [] + let common = oldVersions.filter(v => currentVersions.includes(v)) + let added = currentVersions.filter(v => !common.includes(v)) + let removed = oldVersions.filter(v => !common.includes(v)) + return removed + .map(v => pico.red('- ' + browser + ' ' + v)) + .concat(added.map(v => pico.green('+ ' + browser + ' ' + v))) + }) + .reduce((result, array) => result.concat(array), []) + .join('\n') +} + +function updateNpmLockfile(lock, latest) { + let metadata = { latest, versions: [] } + let content = deletePackage(JSON.parse(lock.content), metadata) + metadata.content = JSON.stringify(content, null, detectIndent(lock.content)) + return metadata +} + +function deletePackage(node, metadata) { + if (node.dependencies) { + if (node.dependencies['caniuse-lite']) { + let version = node.dependencies['caniuse-lite'].version + metadata.versions[version] = true + delete node.dependencies['caniuse-lite'] + } + for (let i in node.dependencies) { + node.dependencies[i] = deletePackage(node.dependencies[i], metadata) + } + } + if (node.packages) { + for (let path in node.packages) { + if (path.endsWith('/caniuse-lite')) { + metadata.versions[node.packages[path].version] = true + delete node.packages[path] + } + } + } + return node +} + +let yarnVersionRe = /version "(.*?)"/ + +function updateYarnLockfile(lock, latest) { + let blocks = lock.content.split(/(\n{2,})/).map(block => { + return block.split('\n') + }) + let versions = {} + blocks.forEach(lines => { + if (lines[0].indexOf('caniuse-lite@') !== -1) { + let match = yarnVersionRe.exec(lines[1]) + versions[match[1]] = true + if (match[1] !== latest.version) { + lines[1] = lines[1].replace( + /version "[^"]+"/, + 'version "' + latest.version + '"' + ) + lines[2] = lines[2].replace( + /resolved "[^"]+"/, + 'resolved "' + latest.dist.tarball + '"' + ) + if (lines.length === 4) { + lines[3] = latest.dist.integrity + ? lines[3].replace( + /integrity .+/, + 'integrity ' + latest.dist.integrity + ) + : '' + } + } + } + }) + let content = blocks.map(lines => lines.join('\n')).join('') + return { content, versions } +} + +function updateLockfile(lock, latest) { + if (!lock.content) lock.content = readFileSync(lock.file).toString() + + let updatedLockFile + if (lock.mode === 'yarn') { + updatedLockFile = updateYarnLockfile(lock, latest) + } else { + updatedLockFile = updateNpmLockfile(lock, latest) + } + updatedLockFile.content = updatedLockFile.content.replace( + /\n/g, + detectEOL(lock.content) + ) + return updatedLockFile +} + +function updatePackageManually(print, lock, latest) { + let lockfileData = updateLockfile(lock, latest) + let caniuseVersions = Object.keys(lockfileData.versions).sort() + if (caniuseVersions.length === 1 && caniuseVersions[0] === latest.version) { + print( + 'Installed version: ' + + pico.bold(pico.green(caniuseVersions[0])) + + '\n' + + pico.bold(pico.green('caniuse-lite is up to date')) + + '\n' + ) + return + } + + if (caniuseVersions.length === 0) { + caniuseVersions[0] = 'none' + } + print( + 'Installed version' + + (caniuseVersions.length === 1 ? ': ' : 's: ') + + pico.bold(pico.red(caniuseVersions.join(', '))) + + '\n' + + 'Removing old caniuse-lite from lock file\n' + ) + writeFileSync(lock.file, lockfileData.content) + + let install = lock.mode === 'yarn' ? 'yarn add -W' : lock.mode + ' install' + print( + 'Installing new caniuse-lite version\n' + + pico.yellow('$ ' + install + ' caniuse-lite') + + '\n' + ) + try { + execSync(install + ' caniuse-lite') + } catch (e) /* c8 ignore start */ { + print( + pico.red( + '\n' + + e.stack + + '\n\n' + + 'Problem with `' + + install + + ' caniuse-lite` call. ' + + 'Run it manually.\n' + ) + ) + process.exit(1) + } /* c8 ignore end */ + + let del = lock.mode === 'yarn' ? 'yarn remove -W' : lock.mode + ' uninstall' + print( + 'Cleaning package.json dependencies from caniuse-lite\n' + + pico.yellow('$ ' + del + ' caniuse-lite') + + '\n' + ) + execSync(del + ' caniuse-lite') +} + +function updateWith(print, cmd) { + print('Updating caniuse-lite version\n' + pico.yellow('$ ' + cmd) + '\n') + try { + execSync(cmd) + } catch (e) /* c8 ignore start */ { + print(pico.red(e.stdout.toString())) + print( + pico.red( + '\n' + + e.stack + + '\n\n' + + 'Problem with `' + + cmd + + '` call. ' + + 'Run it manually.\n' + ) + ) + process.exit(1) + } /* c8 ignore end */ +} + +module.exports = function updateDB(print = defaultPrint) { + let lock = detectLockfile() + let latest = getLatestInfo(lock) + + let listError + let oldList + try { + oldList = getBrowsers() + } catch (e) { + listError = e + } + + print('Latest version: ' + pico.bold(pico.green(latest.version)) + '\n') + + if (lock.mode === 'yarn' && lock.version !== 1) { + updateWith(print, 'yarn up -R caniuse-lite') + } else if (lock.mode === 'pnpm') { + updateWith(print, 'pnpm up caniuse-lite') + } else { + updatePackageManually(print, lock, latest) + } + + print('caniuse-lite has been successfully updated\n') + + let newList + if (!listError) { + try { + newList = getBrowsers() + } catch (e) /* c8 ignore start */ { + listError = e + } /* c8 ignore end */ + } + + if (listError) { + print( + pico.red( + '\n' + + listError.stack + + '\n\n' + + 'Problem with browser list retrieval.\n' + + 'Target browser changes won’t be shown.\n' + ) + ) + } else { + let changes = diffBrowsers(oldList, newList) + if (changes) { + print('\nTarget browser changes:\n') + print(changes + '\n') + } else { + print('\n' + pico.green('No target browser changes') + '\n') + } + } +} diff --git a/node_modules/update-browserslist-db/package.json b/node_modules/update-browserslist-db/package.json new file mode 100644 index 0000000..0ed71fa --- /dev/null +++ b/node_modules/update-browserslist-db/package.json @@ -0,0 +1,40 @@ +{ + "name": "update-browserslist-db", + "version": "1.0.11", + "description": "CLI tool to update caniuse-lite to refresh target browsers from Browserslist config", + "keywords": [ + "caniuse", + "browsers", + "target" + ], + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "browserslist/update-db", + "types": "./index.d.ts", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + }, + "bin": "cli.js" +} diff --git a/node_modules/update-browserslist-db/utils.js b/node_modules/update-browserslist-db/utils.js new file mode 100644 index 0000000..d3ac914 --- /dev/null +++ b/node_modules/update-browserslist-db/utils.js @@ -0,0 +1,22 @@ +const { EOL } = require('os') + +const getFirstRegexpMatchOrDefault = (text, regexp, defaultValue) => { + regexp.lastIndex = 0 // https://stackoverflow.com/a/11477448/4536543 + let match = regexp.exec(text) + if (match !== null) return match[1] + return defaultValue +} + +const DEFAULT_INDENT = ' ' +const INDENT_REGEXP = /^([ \t]+)[^\s]/m + +module.exports.detectIndent = text => + getFirstRegexpMatchOrDefault(text, INDENT_REGEXP, DEFAULT_INDENT) +module.exports.DEFAULT_INDENT = DEFAULT_INDENT + +const DEFAULT_EOL = EOL +const EOL_REGEXP = /(\r\n|\n|\r)/g + +module.exports.detectEOL = text => + getFirstRegexpMatchOrDefault(text, EOL_REGEXP, DEFAULT_EOL) +module.exports.DEFAULT_EOL = DEFAULT_EOL diff --git a/node_modules/wrap-ansi/index.js b/node_modules/wrap-ansi/index.js new file mode 100755 index 0000000..d502255 --- /dev/null +++ b/node_modules/wrap-ansi/index.js @@ -0,0 +1,216 @@ +'use strict'; +const stringWidth = require('string-width'); +const stripAnsi = require('strip-ansi'); +const ansiStyles = require('ansi-styles'); + +const ESCAPES = new Set([ + '\u001B', + '\u009B' +]); + +const END_CODE = 39; + +const ANSI_ESCAPE_BELL = '\u0007'; +const ANSI_CSI = '['; +const ANSI_OSC = ']'; +const ANSI_SGR_TERMINATOR = 'm'; +const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`; + +const wrapAnsi = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`; +const wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`; + +// Calculate the length of words split on ' ', ignoring +// the extra characters added by ansi escape codes +const wordLengths = string => string.split(' ').map(character => stringWidth(character)); + +// Wrap a long word across multiple rows +// Ansi escape codes do not count towards length +const wrapWord = (rows, word, columns) => { + const characters = [...word]; + + let isInsideEscape = false; + let isInsideLinkEscape = false; + let visible = stringWidth(stripAnsi(rows[rows.length - 1])); + + for (const [index, character] of characters.entries()) { + const characterLength = stringWidth(character); + + if (visible + characterLength <= columns) { + rows[rows.length - 1] += character; + } else { + rows.push(character); + visible = 0; + } + + if (ESCAPES.has(character)) { + isInsideEscape = true; + isInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK); + } + + if (isInsideEscape) { + if (isInsideLinkEscape) { + if (character === ANSI_ESCAPE_BELL) { + isInsideEscape = false; + isInsideLinkEscape = false; + } + } else if (character === ANSI_SGR_TERMINATOR) { + isInsideEscape = false; + } + + continue; + } + + visible += characterLength; + + if (visible === columns && index < characters.length - 1) { + rows.push(''); + visible = 0; + } + } + + // It's possible that the last row we copy over is only + // ansi escape characters, handle this edge-case + if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) { + rows[rows.length - 2] += rows.pop(); + } +}; + +// Trims spaces from a string ignoring invisible sequences +const stringVisibleTrimSpacesRight = string => { + const words = string.split(' '); + let last = words.length; + + while (last > 0) { + if (stringWidth(words[last - 1]) > 0) { + break; + } + + last--; + } + + if (last === words.length) { + return string; + } + + return words.slice(0, last).join(' ') + words.slice(last).join(''); +}; + +// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode +// +// 'hard' will never allow a string to take up more than columns characters +// +// 'soft' allows long words to expand past the column length +const exec = (string, columns, options = {}) => { + if (options.trim !== false && string.trim() === '') { + return ''; + } + + let returnValue = ''; + let escapeCode; + let escapeUrl; + + const lengths = wordLengths(string); + let rows = ['']; + + for (const [index, word] of string.split(' ').entries()) { + if (options.trim !== false) { + rows[rows.length - 1] = rows[rows.length - 1].trimStart(); + } + + let rowLength = stringWidth(rows[rows.length - 1]); + + if (index !== 0) { + if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) { + // If we start with a new word but the current row length equals the length of the columns, add a new row + rows.push(''); + rowLength = 0; + } + + if (rowLength > 0 || options.trim === false) { + rows[rows.length - 1] += ' '; + rowLength++; + } + } + + // In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns' + if (options.hard && lengths[index] > columns) { + const remainingColumns = (columns - rowLength); + const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns); + const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns); + if (breaksStartingNextLine < breaksStartingThisLine) { + rows.push(''); + } + + wrapWord(rows, word, columns); + continue; + } + + if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) { + if (options.wordWrap === false && rowLength < columns) { + wrapWord(rows, word, columns); + continue; + } + + rows.push(''); + } + + if (rowLength + lengths[index] > columns && options.wordWrap === false) { + wrapWord(rows, word, columns); + continue; + } + + rows[rows.length - 1] += word; + } + + if (options.trim !== false) { + rows = rows.map(stringVisibleTrimSpacesRight); + } + + const pre = [...rows.join('\n')]; + + for (const [index, character] of pre.entries()) { + returnValue += character; + + if (ESCAPES.has(character)) { + const {groups} = new RegExp(`(?:\\${ANSI_CSI}(?\\d+)m|\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}}; + if (groups.code !== undefined) { + const code = Number.parseFloat(groups.code); + escapeCode = code === END_CODE ? undefined : code; + } else if (groups.uri !== undefined) { + escapeUrl = groups.uri.length === 0 ? undefined : groups.uri; + } + } + + const code = ansiStyles.codes.get(Number(escapeCode)); + + if (pre[index + 1] === '\n') { + if (escapeUrl) { + returnValue += wrapAnsiHyperlink(''); + } + + if (escapeCode && code) { + returnValue += wrapAnsi(code); + } + } else if (character === '\n') { + if (escapeCode && code) { + returnValue += wrapAnsi(escapeCode); + } + + if (escapeUrl) { + returnValue += wrapAnsiHyperlink(escapeUrl); + } + } + } + + return returnValue; +}; + +// For each newline, invoke the method separately +module.exports = (string, columns, options) => { + return String(string) + .normalize() + .replace(/\r\n/g, '\n') + .split('\n') + .map(line => exec(line, columns, options)) + .join('\n'); +}; diff --git a/node_modules/wrap-ansi/license b/node_modules/wrap-ansi/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/wrap-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/wrap-ansi/package.json b/node_modules/wrap-ansi/package.json new file mode 100644 index 0000000..dfb2f4f --- /dev/null +++ b/node_modules/wrap-ansi/package.json @@ -0,0 +1,62 @@ +{ + "name": "wrap-ansi", + "version": "7.0.0", + "description": "Wordwrap a string with ANSI escape codes", + "license": "MIT", + "repository": "chalk/wrap-ansi", + "funding": "https://github.com/chalk/wrap-ansi?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "wrap", + "break", + "wordwrap", + "wordbreak", + "linewrap", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "devDependencies": { + "ava": "^2.1.0", + "chalk": "^4.0.0", + "coveralls": "^3.0.3", + "has-ansi": "^4.0.0", + "nyc": "^15.0.1", + "xo": "^0.29.1" + } +} diff --git a/node_modules/wrap-ansi/readme.md b/node_modules/wrap-ansi/readme.md new file mode 100644 index 0000000..68779ba --- /dev/null +++ b/node_modules/wrap-ansi/readme.md @@ -0,0 +1,91 @@ +# wrap-ansi [![Build Status](https://travis-ci.com/chalk/wrap-ansi.svg?branch=master)](https://travis-ci.com/chalk/wrap-ansi) [![Coverage Status](https://coveralls.io/repos/github/chalk/wrap-ansi/badge.svg?branch=master)](https://coveralls.io/github/chalk/wrap-ansi?branch=master) + +> Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) + +## Install + +``` +$ npm install wrap-ansi +``` + +## Usage + +```js +const chalk = require('chalk'); +const wrapAnsi = require('wrap-ansi'); + +const input = 'The quick brown ' + chalk.red('fox jumped over ') + + 'the lazy ' + chalk.green('dog and then ran away with the unicorn.'); + +console.log(wrapAnsi(input, 20)); +``` + + + +## API + +### wrapAnsi(string, columns, options?) + +Wrap words to the specified column width. + +#### string + +Type: `string` + +String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). Newline characters will be normalized to `\n`. + +#### columns + +Type: `number` + +Number of columns to wrap the text to. + +#### options + +Type: `object` + +##### hard + +Type: `boolean`\ +Default: `false` + +By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width. + +##### wordWrap + +Type: `boolean`\ +Default: `true` + +By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary. + +##### trim + +Type: `boolean`\ +Default: `true` + +Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim. + +## Related + +- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes +- [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right +- [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures. + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) +- [Benjamin Coe](https://github.com/bcoe) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/y18n/CHANGELOG.md b/node_modules/y18n/CHANGELOG.md new file mode 100644 index 0000000..244d838 --- /dev/null +++ b/node_modules/y18n/CHANGELOG.md @@ -0,0 +1,100 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [5.0.8](https://www.github.com/yargs/y18n/compare/v5.0.7...v5.0.8) (2021-04-07) + + +### Bug Fixes + +* **deno:** force modern release for Deno ([b1c215a](https://www.github.com/yargs/y18n/commit/b1c215aed714bee5830e76de3e335504dc2c4dab)) + +### [5.0.7](https://www.github.com/yargs/y18n/compare/v5.0.6...v5.0.7) (2021-04-07) + + +### Bug Fixes + +* **deno:** force release for deno ([#121](https://www.github.com/yargs/y18n/issues/121)) ([d3f2560](https://www.github.com/yargs/y18n/commit/d3f2560e6cedf2bfa2352e9eec044da53f9a06b2)) + +### [5.0.6](https://www.github.com/yargs/y18n/compare/v5.0.5...v5.0.6) (2021-04-05) + + +### Bug Fixes + +* **webpack:** skip readFileSync if not defined ([#117](https://www.github.com/yargs/y18n/issues/117)) ([6966fa9](https://www.github.com/yargs/y18n/commit/6966fa91d2881cc6a6c531e836099e01f4da1616)) + +### [5.0.5](https://www.github.com/yargs/y18n/compare/v5.0.4...v5.0.5) (2020-10-25) + + +### Bug Fixes + +* address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/a9ac604abf756dec9687be3843e2c93bfe581f25)) + +### [5.0.4](https://www.github.com/yargs/y18n/compare/v5.0.3...v5.0.4) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#105](https://www.github.com/yargs/y18n/issues/105)) ([4f85d80](https://www.github.com/yargs/y18n/commit/4f85d80dbaae6d2c7899ae394f7ad97805df4886)) + +### [5.0.3](https://www.github.com/yargs/y18n/compare/v5.0.2...v5.0.3) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0-13.6 require a string fallback ([#103](https://www.github.com/yargs/y18n/issues/103)) ([e39921e](https://www.github.com/yargs/y18n/commit/e39921e1017f88f5d8ea97ddea854ffe92d68e74)) + +### [5.0.2](https://www.github.com/yargs/y18n/compare/v5.0.1...v5.0.2) (2020-10-01) + + +### Bug Fixes + +* **deno:** update types for deno ^1.4.0 ([#100](https://www.github.com/yargs/y18n/issues/100)) ([3834d9a](https://www.github.com/yargs/y18n/commit/3834d9ab1332f2937c935ada5e76623290efae81)) + +### [5.0.1](https://www.github.com/yargs/y18n/compare/v5.0.0...v5.0.1) (2020-09-05) + + +### Bug Fixes + +* main had old index path ([#98](https://www.github.com/yargs/y18n/issues/98)) ([124f7b0](https://www.github.com/yargs/y18n/commit/124f7b047ba9596bdbdf64459988304e77f3de1b)) + +## [5.0.0](https://www.github.com/yargs/y18n/compare/v4.0.0...v5.0.0) (2020-09-05) + + +### ⚠ BREAKING CHANGES + +* exports maps are now used, which modifies import behavior. +* drops Node 6 and 4. begin following Node.js LTS schedule (#89) + +### Features + +* add support for ESM and Deno [#95](https://www.github.com/yargs/y18n/issues/95)) ([4d7ae94](https://www.github.com/yargs/y18n/commit/4d7ae94bcb42e84164e2180366474b1cd321ed94)) + + +### Build System + +* drops Node 6 and 4. begin following Node.js LTS schedule ([#89](https://www.github.com/yargs/y18n/issues/89)) ([3cc0c28](https://www.github.com/yargs/y18n/commit/3cc0c287240727b84eaf1927f903612ec80f5e43)) + +### 4.0.1 (2020-10-25) + + +### Bug Fixes + +* address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/7de58ca0d315990cdb38234e97fc66254cdbcd71)) + +## [4.0.0](https://github.com/yargs/y18n/compare/v3.2.1...v4.0.0) (2017-10-10) + + +### Bug Fixes + +* allow support for falsy values like 0 in tagged literal ([#45](https://github.com/yargs/y18n/issues/45)) ([c926123](https://github.com/yargs/y18n/commit/c926123)) + + +### Features + +* **__:** added tagged template literal support ([#44](https://github.com/yargs/y18n/issues/44)) ([0598daf](https://github.com/yargs/y18n/commit/0598daf)) + + +### BREAKING CHANGES + +* **__:** dropping Node 0.10/Node 0.12 support diff --git a/node_modules/y18n/LICENSE b/node_modules/y18n/LICENSE new file mode 100644 index 0000000..3c157f0 --- /dev/null +++ b/node_modules/y18n/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/node_modules/y18n/README.md b/node_modules/y18n/README.md new file mode 100644 index 0000000..5102bb1 --- /dev/null +++ b/node_modules/y18n/README.md @@ -0,0 +1,127 @@ +# y18n + +[![NPM version][npm-image]][npm-url] +[![js-standard-style][standard-image]][standard-url] +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) + +The bare-bones internationalization library used by yargs. + +Inspired by [i18n](https://www.npmjs.com/package/i18n). + +## Examples + +_simple string translation:_ + +```js +const __ = require('y18n')().__; + +console.log(__('my awesome string %s', 'foo')); +``` + +output: + +`my awesome string foo` + +_using tagged template literals_ + +```js +const __ = require('y18n')().__; + +const str = 'foo'; + +console.log(__`my awesome string ${str}`); +``` + +output: + +`my awesome string foo` + +_pluralization support:_ + +```js +const __n = require('y18n')().__n; + +console.log(__n('one fish %s', '%d fishes %s', 2, 'foo')); +``` + +output: + +`2 fishes foo` + +## Deno Example + +As of `v5` `y18n` supports [Deno](https://github.com/denoland/deno): + +```typescript +import y18n from "https://deno.land/x/y18n/deno.ts"; + +const __ = y18n({ + locale: 'pirate', + directory: './test/locales' +}).__ + +console.info(__`Hi, ${'Ben'} ${'Coe'}!`) +``` + +You will need to run with `--allow-read` to load alternative locales. + +## JSON Language Files + +The JSON language files should be stored in a `./locales` folder. +File names correspond to locales, e.g., `en.json`, `pirate.json`. + +When strings are observed for the first time they will be +added to the JSON file corresponding to the current locale. + +## Methods + +### require('y18n')(config) + +Create an instance of y18n with the config provided, options include: + +* `directory`: the locale directory, default `./locales`. +* `updateFiles`: should newly observed strings be updated in file, default `true`. +* `locale`: what locale should be used. +* `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`) + be allowed if a file matching the locale does not exist (e.g. `en_US.json`), + default `true`. + +### y18n.\_\_(str, arg, arg, arg) + +Print a localized string, `%s` will be replaced with `arg`s. + +This function can also be used as a tag for a template literal. You can use it +like this: __`hello ${'world'}`. This will be equivalent to +`__('hello %s', 'world')`. + +### y18n.\_\_n(singularString, pluralString, count, arg, arg, arg) + +Print a localized string with appropriate pluralization. If `%d` is provided +in the string, the `count` will replace this placeholder. + +### y18n.setLocale(str) + +Set the current locale being used. + +### y18n.getLocale() + +What locale is currently being used? + +### y18n.updateLocale(obj) + +Update the current locale with the key value pairs in `obj`. + +## Supported Node.js Versions + +Libraries in this ecosystem make a best effort to track +[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +## License + +ISC + +[npm-url]: https://npmjs.org/package/y18n +[npm-image]: https://img.shields.io/npm/v/y18n.svg +[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg +[standard-url]: https://github.com/feross/standard diff --git a/node_modules/y18n/build/index.cjs b/node_modules/y18n/build/index.cjs new file mode 100644 index 0000000..b2731e1 --- /dev/null +++ b/node_modules/y18n/build/index.cjs @@ -0,0 +1,203 @@ +'use strict'; + +var fs = require('fs'); +var util = require('util'); +var path = require('path'); + +let shim; +class Y18N { + constructor(opts) { + // configurable options. + opts = opts || {}; + this.directory = opts.directory || './locales'; + this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true; + this.locale = opts.locale || 'en'; + this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true; + // internal stuff. + this.cache = Object.create(null); + this.writeQueue = []; + } + __(...args) { + if (typeof arguments[0] !== 'string') { + return this._taggedLiteral(arguments[0], ...arguments); + } + const str = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + cb = cb || function () { }; // noop. + if (!this.cache[this.locale]) + this._readLocaleFile(); + // we've observed a new string, update the language file. + if (!this.cache[this.locale][str] && this.updateFiles) { + this.cache[this.locale][str] = str; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args)); + } + __n() { + const args = Array.prototype.slice.call(arguments); + const singular = args.shift(); + const plural = args.shift(); + const quantity = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + if (!this.cache[this.locale]) + this._readLocaleFile(); + let str = quantity === 1 ? singular : plural; + if (this.cache[this.locale][singular]) { + const entry = this.cache[this.locale][singular]; + str = entry[quantity === 1 ? 'one' : 'other']; + } + // we've observed a new string, update the language file. + if (!this.cache[this.locale][singular] && this.updateFiles) { + this.cache[this.locale][singular] = { + one: singular, + other: plural + }; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + // if a %d placeholder is provided, add quantity + // to the arguments expanded by util.format. + const values = [str]; + if (~str.indexOf('%d')) + values.push(quantity); + return shim.format.apply(shim.format, values.concat(args)); + } + setLocale(locale) { + this.locale = locale; + } + getLocale() { + return this.locale; + } + updateLocale(obj) { + if (!this.cache[this.locale]) + this._readLocaleFile(); + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + this.cache[this.locale][key] = obj[key]; + } + } + } + _taggedLiteral(parts, ...args) { + let str = ''; + parts.forEach(function (part, i) { + const arg = args[i + 1]; + str += part; + if (typeof arg !== 'undefined') { + str += '%s'; + } + }); + return this.__.apply(this, [str].concat([].slice.call(args, 1))); + } + _enqueueWrite(work) { + this.writeQueue.push(work); + if (this.writeQueue.length === 1) + this._processWriteQueue(); + } + _processWriteQueue() { + const _this = this; + const work = this.writeQueue[0]; + // destructure the enqueued work. + const directory = work.directory; + const locale = work.locale; + const cb = work.cb; + const languageFile = this._resolveLocaleFile(directory, locale); + const serializedLocale = JSON.stringify(this.cache[locale], null, 2); + shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) { + _this.writeQueue.shift(); + if (_this.writeQueue.length > 0) + _this._processWriteQueue(); + cb(err); + }); + } + _readLocaleFile() { + let localeLookup = {}; + const languageFile = this._resolveLocaleFile(this.directory, this.locale); + try { + // When using a bundler such as webpack, readFileSync may not be defined: + if (shim.fs.readFileSync) { + localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8')); + } + } + catch (err) { + if (err instanceof SyntaxError) { + err.message = 'syntax error in ' + languageFile; + } + if (err.code === 'ENOENT') + localeLookup = {}; + else + throw err; + } + this.cache[this.locale] = localeLookup; + } + _resolveLocaleFile(directory, locale) { + let file = shim.resolve(directory, './', locale + '.json'); + if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) { + // attempt fallback to language only + const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json'); + if (this._fileExistsSync(languageFile)) + file = languageFile; + } + return file; + } + _fileExistsSync(file) { + return shim.exists(file); + } +} +function y18n$1(opts, _shim) { + shim = _shim; + const y18n = new Y18N(opts); + return { + __: y18n.__.bind(y18n), + __n: y18n.__n.bind(y18n), + setLocale: y18n.setLocale.bind(y18n), + getLocale: y18n.getLocale.bind(y18n), + updateLocale: y18n.updateLocale.bind(y18n), + locale: y18n.locale + }; +} + +var nodePlatformShim = { + fs: { + readFileSync: fs.readFileSync, + writeFile: fs.writeFile + }, + format: util.format, + resolve: path.resolve, + exists: (file) => { + try { + return fs.statSync(file).isFile(); + } + catch (err) { + return false; + } + } +}; + +const y18n = (opts) => { + return y18n$1(opts, nodePlatformShim); +}; + +module.exports = y18n; diff --git a/node_modules/y18n/build/lib/cjs.js b/node_modules/y18n/build/lib/cjs.js new file mode 100644 index 0000000..ff58470 --- /dev/null +++ b/node_modules/y18n/build/lib/cjs.js @@ -0,0 +1,6 @@ +import { y18n as _y18n } from './index.js'; +import nodePlatformShim from './platform-shims/node.js'; +const y18n = (opts) => { + return _y18n(opts, nodePlatformShim); +}; +export default y18n; diff --git a/node_modules/y18n/build/lib/index.js b/node_modules/y18n/build/lib/index.js new file mode 100644 index 0000000..e38f335 --- /dev/null +++ b/node_modules/y18n/build/lib/index.js @@ -0,0 +1,174 @@ +let shim; +class Y18N { + constructor(opts) { + // configurable options. + opts = opts || {}; + this.directory = opts.directory || './locales'; + this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true; + this.locale = opts.locale || 'en'; + this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true; + // internal stuff. + this.cache = Object.create(null); + this.writeQueue = []; + } + __(...args) { + if (typeof arguments[0] !== 'string') { + return this._taggedLiteral(arguments[0], ...arguments); + } + const str = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + cb = cb || function () { }; // noop. + if (!this.cache[this.locale]) + this._readLocaleFile(); + // we've observed a new string, update the language file. + if (!this.cache[this.locale][str] && this.updateFiles) { + this.cache[this.locale][str] = str; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args)); + } + __n() { + const args = Array.prototype.slice.call(arguments); + const singular = args.shift(); + const plural = args.shift(); + const quantity = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + if (!this.cache[this.locale]) + this._readLocaleFile(); + let str = quantity === 1 ? singular : plural; + if (this.cache[this.locale][singular]) { + const entry = this.cache[this.locale][singular]; + str = entry[quantity === 1 ? 'one' : 'other']; + } + // we've observed a new string, update the language file. + if (!this.cache[this.locale][singular] && this.updateFiles) { + this.cache[this.locale][singular] = { + one: singular, + other: plural + }; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + // if a %d placeholder is provided, add quantity + // to the arguments expanded by util.format. + const values = [str]; + if (~str.indexOf('%d')) + values.push(quantity); + return shim.format.apply(shim.format, values.concat(args)); + } + setLocale(locale) { + this.locale = locale; + } + getLocale() { + return this.locale; + } + updateLocale(obj) { + if (!this.cache[this.locale]) + this._readLocaleFile(); + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + this.cache[this.locale][key] = obj[key]; + } + } + } + _taggedLiteral(parts, ...args) { + let str = ''; + parts.forEach(function (part, i) { + const arg = args[i + 1]; + str += part; + if (typeof arg !== 'undefined') { + str += '%s'; + } + }); + return this.__.apply(this, [str].concat([].slice.call(args, 1))); + } + _enqueueWrite(work) { + this.writeQueue.push(work); + if (this.writeQueue.length === 1) + this._processWriteQueue(); + } + _processWriteQueue() { + const _this = this; + const work = this.writeQueue[0]; + // destructure the enqueued work. + const directory = work.directory; + const locale = work.locale; + const cb = work.cb; + const languageFile = this._resolveLocaleFile(directory, locale); + const serializedLocale = JSON.stringify(this.cache[locale], null, 2); + shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) { + _this.writeQueue.shift(); + if (_this.writeQueue.length > 0) + _this._processWriteQueue(); + cb(err); + }); + } + _readLocaleFile() { + let localeLookup = {}; + const languageFile = this._resolveLocaleFile(this.directory, this.locale); + try { + // When using a bundler such as webpack, readFileSync may not be defined: + if (shim.fs.readFileSync) { + localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8')); + } + } + catch (err) { + if (err instanceof SyntaxError) { + err.message = 'syntax error in ' + languageFile; + } + if (err.code === 'ENOENT') + localeLookup = {}; + else + throw err; + } + this.cache[this.locale] = localeLookup; + } + _resolveLocaleFile(directory, locale) { + let file = shim.resolve(directory, './', locale + '.json'); + if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) { + // attempt fallback to language only + const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json'); + if (this._fileExistsSync(languageFile)) + file = languageFile; + } + return file; + } + _fileExistsSync(file) { + return shim.exists(file); + } +} +export function y18n(opts, _shim) { + shim = _shim; + const y18n = new Y18N(opts); + return { + __: y18n.__.bind(y18n), + __n: y18n.__n.bind(y18n), + setLocale: y18n.setLocale.bind(y18n), + getLocale: y18n.getLocale.bind(y18n), + updateLocale: y18n.updateLocale.bind(y18n), + locale: y18n.locale + }; +} diff --git a/node_modules/y18n/build/lib/platform-shims/node.js b/node_modules/y18n/build/lib/platform-shims/node.js new file mode 100644 index 0000000..181208b --- /dev/null +++ b/node_modules/y18n/build/lib/platform-shims/node.js @@ -0,0 +1,19 @@ +import { readFileSync, statSync, writeFile } from 'fs'; +import { format } from 'util'; +import { resolve } from 'path'; +export default { + fs: { + readFileSync, + writeFile + }, + format, + resolve, + exists: (file) => { + try { + return statSync(file).isFile(); + } + catch (err) { + return false; + } + } +}; diff --git a/node_modules/y18n/index.mjs b/node_modules/y18n/index.mjs new file mode 100644 index 0000000..46c8213 --- /dev/null +++ b/node_modules/y18n/index.mjs @@ -0,0 +1,8 @@ +import shim from './build/lib/platform-shims/node.js' +import { y18n as _y18n } from './build/lib/index.js' + +const y18n = (opts) => { + return _y18n(opts, shim) +} + +export default y18n diff --git a/node_modules/y18n/package.json b/node_modules/y18n/package.json new file mode 100644 index 0000000..4e5c1ca --- /dev/null +++ b/node_modules/y18n/package.json @@ -0,0 +1,70 @@ +{ + "name": "y18n", + "version": "5.0.8", + "description": "the bare-bones internationalization library used by yargs", + "exports": { + ".": [ + { + "import": "./index.mjs", + "require": "./build/index.cjs" + }, + "./build/index.cjs" + ] + }, + "type": "module", + "module": "./build/lib/index.js", + "keywords": [ + "i18n", + "internationalization", + "yargs" + ], + "homepage": "https://github.com/yargs/y18n", + "bugs": { + "url": "https://github.com/yargs/y18n/issues" + }, + "repository": "yargs/y18n", + "license": "ISC", + "author": "Ben Coe ", + "main": "./build/index.cjs", + "scripts": { + "check": "standardx **/*.ts **/*.cjs **/*.mjs", + "fix": "standardx --fix **/*.ts **/*.cjs **/*.mjs", + "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "test": "c8 --reporter=text --reporter=html mocha test/*.cjs", + "test:esm": "c8 --reporter=text --reporter=html mocha test/esm/*.mjs", + "posttest": "npm run check", + "coverage": "c8 report --check-coverage", + "precompile": "rimraf build", + "compile": "tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c", + "prepare": "npm run compile" + }, + "devDependencies": { + "@types/node": "^14.6.4", + "@wessberg/rollup-plugin-ts": "^1.3.1", + "c8": "^7.3.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "gts": "^3.0.0", + "mocha": "^8.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.26.10", + "standardx": "^7.0.0", + "ts-transform-default-export": "^1.0.2", + "typescript": "^4.0.0" + }, + "files": [ + "build", + "index.mjs", + "!*.d.ts" + ], + "engines": { + "node": ">=10" + }, + "standardx": { + "ignore": [ + "build" + ] + } +} diff --git a/node_modules/yaml/LICENSE b/node_modules/yaml/LICENSE new file mode 100644 index 0000000..7ca44e3 --- /dev/null +++ b/node_modules/yaml/LICENSE @@ -0,0 +1,13 @@ +Copyright 2018 Eemeli Aro + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/node_modules/yaml/README.md b/node_modules/yaml/README.md new file mode 100644 index 0000000..2c51aea --- /dev/null +++ b/node_modules/yaml/README.md @@ -0,0 +1,127 @@ +# YAML + +`yaml` is a JavaScript parser and stringifier for [YAML](http://yaml.org/), a human friendly data serialization standard. It supports both parsing and stringifying data using all versions of YAML, along with all common data schemas. As a particularly distinguishing feature, `yaml` fully supports reading and writing comments and blank lines in YAML documents. + +The library is released under the ISC open source license, and the code is [available on GitHub](https://github.com/eemeli/yaml/). It has no external dependencies and runs on Node.js 6 and later, and in browsers from IE 11 upwards. + +For the purposes of versioning, any changes that break any of the endpoints or APIs documented here will be considered semver-major breaking changes. Undocumented library internals may change between minor versions, and previous APIs may be deprecated (but not removed). + +For more information, see the project's documentation site: [**eemeli.org/yaml/v1**](https://eemeli.org/yaml/v1/) + +To install: + +```sh +npm install yaml +``` + +**Note:** This is `yaml@1`. You may also be interested in the next version, currently available as [`yaml@next`](https://www.npmjs.com/package/yaml/v/next). + +## API Overview + +The API provided by `yaml` has three layers, depending on how deep you need to go: [Parse & Stringify](https://eemeli.org/yaml/v1/#parse-amp-stringify), [Documents](https://eemeli.org/yaml/#documents), and the [CST Parser](https://eemeli.org/yaml/#cst-parser). The first has the simplest API and "just works", the second gets you all the bells and whistles supported by the library along with a decent [AST](https://eemeli.org/yaml/#content-nodes), and the third is the closest to YAML source, making it fast, raw, and crude. + +```js +import YAML from 'yaml' +// or +const YAML = require('yaml') +``` + +### Parse & Stringify + +- [`YAML.parse(str, options): value`](https://eemeli.org/yaml/v1/#yaml-parse) +- [`YAML.stringify(value, options): string`](https://eemeli.org/yaml/v1/#yaml-stringify) + +### YAML Documents + +- [`YAML.createNode(value, wrapScalars, tag): Node`](https://eemeli.org/yaml/v1/#creating-nodes) +- [`YAML.defaultOptions`](https://eemeli.org/yaml/v1/#options) +- [`YAML.Document`](https://eemeli.org/yaml/v1/#yaml-documents) + - [`constructor(options)`](https://eemeli.org/yaml/v1/#creating-documents) + - [`defaults`](https://eemeli.org/yaml/v1/#options) + - [`#anchors`](https://eemeli.org/yaml/v1/#working-with-anchors) + - [`#contents`](https://eemeli.org/yaml/v1/#content-nodes) + - [`#errors`](https://eemeli.org/yaml/v1/#errors) +- [`YAML.parseAllDocuments(str, options): YAML.Document[]`](https://eemeli.org/yaml/v1/#parsing-documents) +- [`YAML.parseDocument(str, options): YAML.Document`](https://eemeli.org/yaml/v1/#parsing-documents) + +```js +import { Pair, YAMLMap, YAMLSeq } from 'yaml/types' +``` + +- [`new Pair(key, value)`](https://eemeli.org/yaml/v1/#creating-nodes) +- [`new YAMLMap()`](https://eemeli.org/yaml/v1/#creating-nodes) +- [`new YAMLSeq()`](https://eemeli.org/yaml/v1/#creating-nodes) + +### CST Parser + +```js +import parseCST from 'yaml/parse-cst' +``` + +- [`parseCST(str): CSTDocument[]`](https://eemeli.org/yaml/v1/#parsecst) +- [`YAML.parseCST(str): CSTDocument[]`](https://eemeli.org/yaml/v1/#parsecst) + +## YAML.parse + +```yaml +# file.yml +YAML: + - A human-readable data serialization language + - https://en.wikipedia.org/wiki/YAML +yaml: + - A complete JavaScript implementation + - https://www.npmjs.com/package/yaml +``` + +```js +import fs from 'fs' +import YAML from 'yaml' + +YAML.parse('3.14159') +// 3.14159 + +YAML.parse('[ true, false, maybe, null ]\n') +// [ true, false, 'maybe', null ] + +const file = fs.readFileSync('./file.yml', 'utf8') +YAML.parse(file) +// { YAML: +// [ 'A human-readable data serialization language', +// 'https://en.wikipedia.org/wiki/YAML' ], +// yaml: +// [ 'A complete JavaScript implementation', +// 'https://www.npmjs.com/package/yaml' ] } +``` + +## YAML.stringify + +```js +import YAML from 'yaml' + +YAML.stringify(3.14159) +// '3.14159\n' + +YAML.stringify([true, false, 'maybe', null]) +// `- true +// - false +// - maybe +// - null +// ` + +YAML.stringify({ number: 3, plain: 'string', block: 'two\nlines\n' }) +// `number: 3 +// plain: string +// block: > +// two +// +// lines +// ` +``` + +--- + +Browser testing provided by: + + + + diff --git a/node_modules/yaml/browser/dist/PlainValue-b8036b75.js b/node_modules/yaml/browser/dist/PlainValue-b8036b75.js new file mode 100644 index 0000000..2a4255a --- /dev/null +++ b/node_modules/yaml/browser/dist/PlainValue-b8036b75.js @@ -0,0 +1,1275 @@ +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} + +function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); +} + +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); +} + +function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; +} + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + + return object; +} + +function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return _get(target, property, receiver || target); +} + +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} + +function _toArray(arr) { + return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); +} + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; +} + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; +} + +var Char = { + ANCHOR: '&', + COMMENT: '#', + TAG: '!', + DIRECTIVES_END: '-', + DOCUMENT_END: '.' +}; +var Type = { + ALIAS: 'ALIAS', + BLANK_LINE: 'BLANK_LINE', + BLOCK_FOLDED: 'BLOCK_FOLDED', + BLOCK_LITERAL: 'BLOCK_LITERAL', + COMMENT: 'COMMENT', + DIRECTIVE: 'DIRECTIVE', + DOCUMENT: 'DOCUMENT', + FLOW_MAP: 'FLOW_MAP', + FLOW_SEQ: 'FLOW_SEQ', + MAP: 'MAP', + MAP_KEY: 'MAP_KEY', + MAP_VALUE: 'MAP_VALUE', + PLAIN: 'PLAIN', + QUOTE_DOUBLE: 'QUOTE_DOUBLE', + QUOTE_SINGLE: 'QUOTE_SINGLE', + SEQ: 'SEQ', + SEQ_ITEM: 'SEQ_ITEM' +}; +var defaultTagPrefix = 'tag:yaml.org,2002:'; +var defaultTags = { + MAP: 'tag:yaml.org,2002:map', + SEQ: 'tag:yaml.org,2002:seq', + STR: 'tag:yaml.org,2002:str' +}; + +function findLineStarts(src) { + var ls = [0]; + var offset = src.indexOf('\n'); + + while (offset !== -1) { + offset += 1; + ls.push(offset); + offset = src.indexOf('\n', offset); + } + + return ls; +} + +function getSrcInfo(cst) { + var lineStarts, src; + + if (typeof cst === 'string') { + lineStarts = findLineStarts(cst); + src = cst; + } else { + if (Array.isArray(cst)) cst = cst[0]; + + if (cst && cst.context) { + if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src); + lineStarts = cst.lineStarts; + src = cst.context.src; + } + } + + return { + lineStarts: lineStarts, + src: src + }; +} +/** + * @typedef {Object} LinePos - One-indexed position in the source + * @property {number} line + * @property {number} col + */ + +/** + * Determine the line/col position matching a character offset. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns a one-indexed `{ line, col }` location if found, or + * `undefined` otherwise. + * + * @param {number} offset + * @param {string|Document|Document[]} cst + * @returns {?LinePos} + */ + + +function getLinePos(offset, cst) { + if (typeof offset !== 'number' || offset < 0) return null; + + var _getSrcInfo = getSrcInfo(cst), + lineStarts = _getSrcInfo.lineStarts, + src = _getSrcInfo.src; + + if (!lineStarts || !src || offset > src.length) return null; + + for (var i = 0; i < lineStarts.length; ++i) { + var start = lineStarts[i]; + + if (offset < start) { + return { + line: i, + col: offset - lineStarts[i - 1] + 1 + }; + } + + if (offset === start) return { + line: i + 1, + col: 1 + }; + } + + var line = lineStarts.length; + return { + line: line, + col: offset - lineStarts[line - 1] + 1 + }; +} +/** + * Get a specified line from the source. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns the line as a string if found, or `null` otherwise. + * + * @param {number} line One-indexed line number + * @param {string|Document|Document[]} cst + * @returns {?string} + */ + +function getLine(line, cst) { + var _getSrcInfo2 = getSrcInfo(cst), + lineStarts = _getSrcInfo2.lineStarts, + src = _getSrcInfo2.src; + + if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null; + var start = lineStarts[line - 1]; + var end = lineStarts[line]; // undefined for last line; that's ok for slice() + + while (end && end > start && src[end - 1] === '\n') { + --end; + } + + return src.slice(start, end); +} +/** + * Pretty-print the starting line from the source indicated by the range `pos` + * + * Trims output to `maxWidth` chars while keeping the starting column visible, + * using `…` at either end to indicate dropped characters. + * + * Returns a two-line string (or `null`) with `\n` as separator; the second line + * will hold appropriately indented `^` marks indicating the column range. + * + * @param {Object} pos + * @param {LinePos} pos.start + * @param {LinePos} [pos.end] + * @param {string|Document|Document[]*} cst + * @param {number} [maxWidth=80] + * @returns {?string} + */ + +function getPrettyContext(_ref, cst) { + var start = _ref.start, + end = _ref.end; + var maxWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 80; + var src = getLine(start.line, cst); + if (!src) return null; + var col = start.col; + + if (src.length > maxWidth) { + if (col <= maxWidth - 10) { + src = src.substr(0, maxWidth - 1) + '…'; + } else { + var halfWidth = Math.round(maxWidth / 2); + if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…'; + col -= src.length - maxWidth; + src = '…' + src.substr(1 - maxWidth); + } + } + + var errLen = 1; + var errEnd = ''; + + if (end) { + if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) { + errLen = end.col - start.col; + } else { + errLen = Math.min(src.length + 1, maxWidth) - col; + errEnd = '…'; + } + } + + var offset = col > 1 ? ' '.repeat(col - 1) : ''; + var err = '^'.repeat(errLen); + return "".concat(src, "\n").concat(offset).concat(err).concat(errEnd); +} + +var Range = /*#__PURE__*/function () { + function Range(start, end) { + _classCallCheck(this, Range); + + this.start = start; + this.end = end || start; + } + + _createClass(Range, [{ + key: "isEmpty", + value: function isEmpty() { + return typeof this.start !== 'number' || !this.end || this.end <= this.start; + } + /** + * Set `origStart` and `origEnd` to point to the original source range for + * this node, which may differ due to dropped CR characters. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + }, { + key: "setOrigRange", + value: function setOrigRange(cr, offset) { + var start = this.start, + end = this.end; + + if (cr.length === 0 || end <= cr[0]) { + this.origStart = start; + this.origEnd = end; + return offset; + } + + var i = offset; + + while (i < cr.length) { + if (cr[i] > start) break;else ++i; + } + + this.origStart = start + i; + var nextOffset = i; + + while (i < cr.length) { + // if end was at \n, it should now be at \r + if (cr[i] >= end) break;else ++i; + } + + this.origEnd = end + i; + return nextOffset; + } + }], [{ + key: "copy", + value: function copy(orig) { + return new Range(orig.start, orig.end); + } + }]); + + return Range; +}(); + +/** Root class of all nodes */ + +var Node = /*#__PURE__*/function () { + function Node(type, props, context) { + _classCallCheck(this, Node); + + Object.defineProperty(this, 'context', { + value: context || null, + writable: true + }); + this.error = null; + this.range = null; + this.valueRange = null; + this.props = props || []; + this.type = type; + this.value = null; + } + + _createClass(Node, [{ + key: "getPropValue", + value: function getPropValue(idx, key, skipKey) { + if (!this.context) return null; + var src = this.context.src; + var prop = this.props[idx]; + return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null; + } + }, { + key: "anchor", + get: function get() { + for (var i = 0; i < this.props.length; ++i) { + var anchor = this.getPropValue(i, Char.ANCHOR, true); + if (anchor != null) return anchor; + } + + return null; + } + }, { + key: "comment", + get: function get() { + var comments = []; + + for (var i = 0; i < this.props.length; ++i) { + var comment = this.getPropValue(i, Char.COMMENT, true); + if (comment != null) comments.push(comment); + } + + return comments.length > 0 ? comments.join('\n') : null; + } + }, { + key: "commentHasRequiredWhitespace", + value: function commentHasRequiredWhitespace(start) { + var src = this.context.src; + if (this.header && start === this.header.end) return false; + if (!this.valueRange) return false; + var end = this.valueRange.end; + return start !== end || Node.atBlank(src, end - 1); + } + }, { + key: "hasComment", + get: function get() { + if (this.context) { + var src = this.context.src; + + for (var i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] === Char.COMMENT) return true; + } + } + + return false; + } + }, { + key: "hasProps", + get: function get() { + if (this.context) { + var src = this.context.src; + + for (var i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] !== Char.COMMENT) return true; + } + } + + return false; + } + }, { + key: "includesTrailingLines", + get: function get() { + return false; + } + }, { + key: "jsonLike", + get: function get() { + var jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE]; + return jsonLikeTypes.indexOf(this.type) !== -1; + } + }, { + key: "rangeAsLinePos", + get: function get() { + if (!this.range || !this.context) return undefined; + var start = getLinePos(this.range.start, this.context.root); + if (!start) return undefined; + var end = getLinePos(this.range.end, this.context.root); + return { + start: start, + end: end + }; + } + }, { + key: "rawValue", + get: function get() { + if (!this.valueRange || !this.context) return null; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + return this.context.src.slice(start, end); + } + }, { + key: "tag", + get: function get() { + for (var i = 0; i < this.props.length; ++i) { + var tag = this.getPropValue(i, Char.TAG, false); + + if (tag != null) { + if (tag[1] === '<') { + return { + verbatim: tag.slice(2, -1) + }; + } else { + // eslint-disable-next-line no-unused-vars + var _tag$match = tag.match(/^(.*!)([^!]*)$/), + _tag$match2 = _slicedToArray(_tag$match, 3); + _tag$match2[0]; + var handle = _tag$match2[1], + suffix = _tag$match2[2]; + + return { + handle: handle, + suffix: suffix + }; + } + } + } + + return null; + } + }, { + key: "valueRangeContainsNewline", + get: function get() { + if (!this.valueRange || !this.context) return false; + var _this$valueRange2 = this.valueRange, + start = _this$valueRange2.start, + end = _this$valueRange2.end; + var src = this.context.src; + + for (var i = start; i < end; ++i) { + if (src[i] === '\n') return true; + } + + return false; + } + }, { + key: "parseComment", + value: function parseComment(start) { + var src = this.context.src; + + if (src[start] === Char.COMMENT) { + var end = Node.endOfLine(src, start + 1); + var commentRange = new Range(start, end); + this.props.push(commentRange); + return end; + } + + return start; + } + /** + * Populates the `origStart` and `origEnd` values of all ranges for this + * node. Extended by child classes to handle descendant nodes. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + if (this.range) offset = this.range.setOrigRange(cr, offset); + if (this.valueRange) this.valueRange.setOrigRange(cr, offset); + this.props.forEach(function (prop) { + return prop.setOrigRange(cr, offset); + }); + return offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + range = this.range, + value = this.value; + if (value != null) return value; + var str = src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }], [{ + key: "addStringTerminator", + value: function addStringTerminator(src, offset, str) { + if (str[str.length - 1] === '\n') return str; + var next = Node.endOfWhiteSpace(src, offset); + return next >= src.length || src[next] === '\n' ? str + '\n' : str; + } // ^(---|...) + + }, { + key: "atDocumentBoundary", + value: function atDocumentBoundary(src, offset, sep) { + var ch0 = src[offset]; + if (!ch0) return true; + var prev = src[offset - 1]; + if (prev && prev !== '\n') return false; + + if (sep) { + if (ch0 !== sep) return false; + } else { + if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false; + } + + var ch1 = src[offset + 1]; + var ch2 = src[offset + 2]; + if (ch1 !== ch0 || ch2 !== ch0) return false; + var ch3 = src[offset + 3]; + return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' '; + } + }, { + key: "endOfIdentifier", + value: function endOfIdentifier(src, offset) { + var ch = src[offset]; + var isVerbatim = ch === '<'; + var notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ',']; + + while (ch && notOk.indexOf(ch) === -1) { + ch = src[offset += 1]; + } + + if (isVerbatim && ch === '>') offset += 1; + return offset; + } + }, { + key: "endOfIndent", + value: function endOfIndent(src, offset) { + var ch = src[offset]; + + while (ch === ' ') { + ch = src[offset += 1]; + } + + return offset; + } + }, { + key: "endOfLine", + value: function endOfLine(src, offset) { + var ch = src[offset]; + + while (ch && ch !== '\n') { + ch = src[offset += 1]; + } + + return offset; + } + }, { + key: "endOfWhiteSpace", + value: function endOfWhiteSpace(src, offset) { + var ch = src[offset]; + + while (ch === '\t' || ch === ' ') { + ch = src[offset += 1]; + } + + return offset; + } + }, { + key: "startOfLine", + value: function startOfLine(src, offset) { + var ch = src[offset - 1]; + if (ch === '\n') return offset; + + while (ch && ch !== '\n') { + ch = src[offset -= 1]; + } + + return offset + 1; + } + /** + * End of indentation, or null if the line's indent level is not more + * than `indent` + * + * @param {string} src + * @param {number} indent + * @param {number} lineStart + * @returns {?number} + */ + + }, { + key: "endOfBlockIndent", + value: function endOfBlockIndent(src, indent, lineStart) { + var inEnd = Node.endOfIndent(src, lineStart); + + if (inEnd > lineStart + indent) { + return inEnd; + } else { + var wsEnd = Node.endOfWhiteSpace(src, inEnd); + var ch = src[wsEnd]; + if (!ch || ch === '\n') return wsEnd; + } + + return null; + } + }, { + key: "atBlank", + value: function atBlank(src, offset, endAsBlank) { + var ch = src[offset]; + return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch; + } + }, { + key: "nextNodeIsIndented", + value: function nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) { + if (!ch || indentDiff < 0) return false; + if (indentDiff > 0) return true; + return indicatorAsIndent && ch === '-'; + } // should be at line or string end, or at next non-whitespace char + + }, { + key: "normalizeOffset", + value: function normalizeOffset(src, offset) { + var ch = src[offset]; + return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset); + } // fold single newline into space, multiple newlines to N - 1 newlines + // presumes src[offset] === '\n' + + }, { + key: "foldNewline", + value: function foldNewline(src, offset, indent) { + var inCount = 0; + var error = false; + var fold = ''; + var ch = src[offset + 1]; + + while (ch === ' ' || ch === '\t' || ch === '\n') { + switch (ch) { + case '\n': + inCount = 0; + offset += 1; + fold += '\n'; + break; + + case '\t': + if (inCount <= indent) error = true; + offset = Node.endOfWhiteSpace(src, offset + 2) - 1; + break; + + case ' ': + inCount += 1; + offset += 1; + break; + } + + ch = src[offset + 1]; + } + + if (!fold) fold = ' '; + if (ch && inCount <= indent) error = true; + return { + fold: fold, + offset: offset, + error: error + }; + } + }]); + + return Node; +}(); + +var YAMLError = /*#__PURE__*/function (_Error) { + _inherits(YAMLError, _Error); + + var _super = _createSuper(YAMLError); + + function YAMLError(name, source, message) { + var _this; + + _classCallCheck(this, YAMLError); + + if (!message || !(source instanceof Node)) throw new Error("Invalid arguments for new ".concat(name)); + _this = _super.call(this); + _this.name = name; + _this.message = message; + _this.source = source; + return _this; + } + + _createClass(YAMLError, [{ + key: "makePretty", + value: function makePretty() { + if (!this.source) return; + this.nodeType = this.source.type; + var cst = this.source.context && this.source.context.root; + + if (typeof this.offset === 'number') { + this.range = new Range(this.offset, this.offset + 1); + var start = cst && getLinePos(this.offset, cst); + + if (start) { + var end = { + line: start.line, + col: start.col + 1 + }; + this.linePos = { + start: start, + end: end + }; + } + + delete this.offset; + } else { + this.range = this.source.range; + this.linePos = this.source.rangeAsLinePos; + } + + if (this.linePos) { + var _this$linePos$start = this.linePos.start, + line = _this$linePos$start.line, + col = _this$linePos$start.col; + this.message += " at line ".concat(line, ", column ").concat(col); + var ctx = cst && getPrettyContext(this.linePos, cst); + if (ctx) this.message += ":\n\n".concat(ctx, "\n"); + } + + delete this.source; + } + }]); + + return YAMLError; +}( /*#__PURE__*/_wrapNativeSuper(Error)); +var YAMLReferenceError = /*#__PURE__*/function (_YAMLError) { + _inherits(YAMLReferenceError, _YAMLError); + + var _super2 = _createSuper(YAMLReferenceError); + + function YAMLReferenceError(source, message) { + _classCallCheck(this, YAMLReferenceError); + + return _super2.call(this, 'YAMLReferenceError', source, message); + } + + return YAMLReferenceError; +}(YAMLError); +var YAMLSemanticError = /*#__PURE__*/function (_YAMLError2) { + _inherits(YAMLSemanticError, _YAMLError2); + + var _super3 = _createSuper(YAMLSemanticError); + + function YAMLSemanticError(source, message) { + _classCallCheck(this, YAMLSemanticError); + + return _super3.call(this, 'YAMLSemanticError', source, message); + } + + return YAMLSemanticError; +}(YAMLError); +var YAMLSyntaxError = /*#__PURE__*/function (_YAMLError3) { + _inherits(YAMLSyntaxError, _YAMLError3); + + var _super4 = _createSuper(YAMLSyntaxError); + + function YAMLSyntaxError(source, message) { + _classCallCheck(this, YAMLSyntaxError); + + return _super4.call(this, 'YAMLSyntaxError', source, message); + } + + return YAMLSyntaxError; +}(YAMLError); +var YAMLWarning = /*#__PURE__*/function (_YAMLError4) { + _inherits(YAMLWarning, _YAMLError4); + + var _super5 = _createSuper(YAMLWarning); + + function YAMLWarning(source, message) { + _classCallCheck(this, YAMLWarning); + + return _super5.call(this, 'YAMLWarning', source, message); + } + + return YAMLWarning; +}(YAMLError); + +var PlainValue = /*#__PURE__*/function (_Node) { + _inherits(PlainValue, _Node); + + var _super = _createSuper(PlainValue); + + function PlainValue() { + _classCallCheck(this, PlainValue); + + return _super.apply(this, arguments); + } + + _createClass(PlainValue, [{ + key: "strValue", + get: function get() { + if (!this.valueRange || !this.context) return null; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var src = this.context.src; + var ch = src[end - 1]; + + while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) { + ch = src[--end - 1]; + } + + var str = ''; + + for (var i = start; i < end; ++i) { + var _ch = src[i]; + + if (_ch === '\n') { + var _Node$foldNewline = Node.foldNewline(src, i, -1), + fold = _Node$foldNewline.fold, + offset = _Node$foldNewline.offset; + + str += fold; + i = offset; + } else if (_ch === ' ' || _ch === '\t') { + // trim trailing whitespace + var wsStart = i; + var next = src[i + 1]; + + while (i < end && (next === ' ' || next === '\t')) { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : _ch; + } else { + str += _ch; + } + } + + var ch0 = src[start]; + + switch (ch0) { + case '\t': + { + var msg = 'Plain value cannot start with a tab character'; + var errors = [new YAMLSemanticError(this, msg)]; + return { + errors: errors, + str: str + }; + } + + case '@': + case '`': + { + var _msg = "Plain value cannot start with reserved character ".concat(ch0); + + var _errors = [new YAMLSemanticError(this, _msg)]; + return { + errors: _errors, + str: str + }; + } + + default: + return str; + } + } + }, { + key: "parseBlockValue", + value: function parseBlockValue(start) { + var _this$context = this.context, + indent = _this$context.indent, + inFlow = _this$context.inFlow, + src = _this$context.src; + var offset = start; + var valueEnd = start; + + for (var ch = src[offset]; ch === '\n'; ch = src[offset]) { + if (Node.atDocumentBoundary(src, offset + 1)) break; + var end = Node.endOfBlockIndent(src, indent, offset + 1); + if (end === null || src[end] === '#') break; + + if (src[end] === '\n') { + offset = end; + } else { + valueEnd = PlainValue.endOfLine(src, end, inFlow); + offset = valueEnd; + } + } + + if (this.valueRange.isEmpty()) this.valueRange.start = start; + this.valueRange.end = valueEnd; + return valueEnd; + } + /** + * Parses a plain value from the source + * + * Accepted forms are: + * ``` + * #comment + * + * first line + * + * first line #comment + * + * first line + * block + * lines + * + * #comment + * block + * lines + * ``` + * where block lines are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar, may be `\n` + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var inFlow = context.inFlow, + src = context.src; + var offset = start; + var ch = src[offset]; + + if (ch && ch !== '#' && ch !== '\n') { + offset = PlainValue.endOfLine(src, start, inFlow); + } + + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + + if (!this.hasComment || this.valueRange.isEmpty()) { + offset = this.parseBlockValue(offset); + } + + return offset; + } + }], [{ + key: "endOfLine", + value: function endOfLine(src, start, inFlow) { + var ch = src[start]; + var offset = start; + + while (ch && ch !== '\n') { + if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break; + var next = src[offset + 1]; + if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break; + if ((ch === ' ' || ch === '\t') && next === '#') break; + offset += 1; + ch = next; + } + + return offset; + } + }]); + + return PlainValue; +}(Node); + +export { Char as C, Node as N, PlainValue as P, Range as R, Type as T, YAMLSyntaxError as Y, _createForOfIteratorHelper as _, _typeof as a, _createClass as b, _classCallCheck as c, defaultTagPrefix as d, _defineProperty as e, YAMLWarning as f, YAMLSemanticError as g, _slicedToArray as h, YAMLError as i, _inherits as j, _createSuper as k, _get as l, _getPrototypeOf as m, defaultTags as n, YAMLReferenceError as o, _assertThisInitialized as p, _toArray as q, _possibleConstructorReturn as r }; diff --git a/node_modules/yaml/browser/dist/Schema-e94716c8.js b/node_modules/yaml/browser/dist/Schema-e94716c8.js new file mode 100644 index 0000000..f18527d --- /dev/null +++ b/node_modules/yaml/browser/dist/Schema-e94716c8.js @@ -0,0 +1,682 @@ +import { _ as _createForOfIteratorHelper, h as _slicedToArray, a as _typeof, b as _createClass, e as _defineProperty, c as _classCallCheck, d as defaultTagPrefix, n as defaultTags } from './PlainValue-b8036b75.js'; +import { d as YAMLMap, g as resolveMap, Y as YAMLSeq, h as resolveSeq, j as resolveString, c as stringifyString, s as strOptions, S as Scalar, n as nullOptions, a as boolOptions, i as intOptions, k as stringifyNumber, N as Node, A as Alias, P as Pair } from './resolveSeq-492ab440.js'; +import { b as binary, o as omap, p as pairs, s as set, i as intTime, f as floatTime, t as timestamp, a as warnOptionDeprecation } from './warnings-df54cb69.js'; + +function createMap(schema, obj, ctx) { + var map = new YAMLMap(schema); + + if (obj instanceof Map) { + var _iterator = _createForOfIteratorHelper(obj), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _slicedToArray(_step.value, 2), + key = _step$value[0], + value = _step$value[1]; + + map.items.push(schema.createPair(key, value, ctx)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } else if (obj && _typeof(obj) === 'object') { + for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) { + var _key = _Object$keys[_i]; + map.items.push(schema.createPair(_key, obj[_key], ctx)); + } + } + + if (typeof schema.sortMapEntries === 'function') { + map.items.sort(schema.sortMapEntries); + } + + return map; +} + +var map = { + createNode: createMap, + default: true, + nodeClass: YAMLMap, + tag: 'tag:yaml.org,2002:map', + resolve: resolveMap +}; + +function createSeq(schema, obj, ctx) { + var seq = new YAMLSeq(schema); + + if (obj && obj[Symbol.iterator]) { + var _iterator = _createForOfIteratorHelper(obj), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var it = _step.value; + var v = schema.createNode(it, ctx.wrapScalars, null, ctx); + seq.items.push(v); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + + return seq; +} + +var seq = { + createNode: createSeq, + default: true, + nodeClass: YAMLSeq, + tag: 'tag:yaml.org,2002:seq', + resolve: resolveSeq +}; + +var string = { + identify: function identify(value) { + return typeof value === 'string'; + }, + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveString, + stringify: function stringify(item, ctx, onComment, onChompKeep) { + ctx = Object.assign({ + actualString: true + }, ctx); + return stringifyString(item, ctx, onComment, onChompKeep); + }, + options: strOptions +}; + +var failsafe = [map, seq, string]; + +/* global BigInt */ + +var intIdentify$2 = function intIdentify(value) { + return typeof value === 'bigint' || Number.isInteger(value); +}; + +var intResolve$1 = function intResolve(src, part, radix) { + return intOptions.asBigInt ? BigInt(src) : parseInt(part, radix); +}; + +function intStringify$1(node, radix, prefix) { + var value = node.value; + if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix); + return stringifyNumber(node); +} + +var nullObj = { + identify: function identify(value) { + return value == null; + }, + createNode: function createNode(schema, value, ctx) { + return ctx.wrapScalars ? new Scalar(null) : null; + }, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: function resolve() { + return null; + }, + options: nullOptions, + stringify: function stringify() { + return nullOptions.nullStr; + } +}; +var boolObj = { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/, + resolve: function resolve(str) { + return str[0] === 't' || str[0] === 'T'; + }, + options: boolOptions, + stringify: function stringify(_ref) { + var value = _ref.value; + return value ? boolOptions.trueStr : boolOptions.falseStr; + } +}; +var octObj = { + identify: function identify(value) { + return intIdentify$2(value) && value >= 0; + }, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^0o([0-7]+)$/, + resolve: function resolve(str, oct) { + return intResolve$1(str, oct, 8); + }, + options: intOptions, + stringify: function stringify(node) { + return intStringify$1(node, 8, '0o'); + } +}; +var intObj = { + identify: intIdentify$2, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^[-+]?[0-9]+$/, + resolve: function resolve(str) { + return intResolve$1(str, str, 10); + }, + options: intOptions, + stringify: stringifyNumber +}; +var hexObj = { + identify: function identify(value) { + return intIdentify$2(value) && value >= 0; + }, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^0x([0-9a-fA-F]+)$/, + resolve: function resolve(str, hex) { + return intResolve$1(str, hex, 16); + }, + options: intOptions, + stringify: function stringify(node) { + return intStringify$1(node, 16, '0x'); + } +}; +var nanObj = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: function resolve(str, nan) { + return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY; + }, + stringify: stringifyNumber +}; +var expObj = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/, + resolve: function resolve(str) { + return parseFloat(str); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return Number(value).toExponential(); + } +}; +var floatObj = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/, + resolve: function resolve(str, frac1, frac2) { + var frac = frac1 || frac2; + var node = new Scalar(parseFloat(str)); + if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length; + return node; + }, + stringify: stringifyNumber +}; +var core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]); + +/* global BigInt */ + +var intIdentify$1 = function intIdentify(value) { + return typeof value === 'bigint' || Number.isInteger(value); +}; + +var stringifyJSON = function stringifyJSON(_ref) { + var value = _ref.value; + return JSON.stringify(value); +}; + +var json = [map, seq, { + identify: function identify(value) { + return typeof value === 'string'; + }, + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveString, + stringify: stringifyJSON +}, { + identify: function identify(value) { + return value == null; + }, + createNode: function createNode(schema, value, ctx) { + return ctx.wrapScalars ? new Scalar(null) : null; + }, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^null$/, + resolve: function resolve() { + return null; + }, + stringify: stringifyJSON +}, { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^true|false$/, + resolve: function resolve(str) { + return str === 'true'; + }, + stringify: stringifyJSON +}, { + identify: intIdentify$1, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^-?(?:0|[1-9][0-9]*)$/, + resolve: function resolve(str) { + return intOptions.asBigInt ? BigInt(str) : parseInt(str, 10); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return intIdentify$1(value) ? value.toString() : JSON.stringify(value); + } +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, + resolve: function resolve(str) { + return parseFloat(str); + }, + stringify: stringifyJSON +}]; + +json.scalarFallback = function (str) { + throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(str))); +}; + +/* global BigInt */ + +var boolStringify = function boolStringify(_ref) { + var value = _ref.value; + return value ? boolOptions.trueStr : boolOptions.falseStr; +}; + +var intIdentify = function intIdentify(value) { + return typeof value === 'bigint' || Number.isInteger(value); +}; + +function intResolve(sign, src, radix) { + var str = src.replace(/_/g, ''); + + if (intOptions.asBigInt) { + switch (radix) { + case 2: + str = "0b".concat(str); + break; + + case 8: + str = "0o".concat(str); + break; + + case 16: + str = "0x".concat(str); + break; + } + + var _n = BigInt(str); + + return sign === '-' ? BigInt(-1) * _n : _n; + } + + var n = parseInt(str, radix); + return sign === '-' ? -1 * n : n; +} + +function intStringify(node, radix, prefix) { + var value = node.value; + + if (intIdentify(value)) { + var str = value.toString(radix); + return value < 0 ? '-' + prefix + str.substr(1) : prefix + str; + } + + return stringifyNumber(node); +} + +var yaml11 = failsafe.concat([{ + identify: function identify(value) { + return value == null; + }, + createNode: function createNode(schema, value, ctx) { + return ctx.wrapScalars ? new Scalar(null) : null; + }, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: function resolve() { + return null; + }, + options: nullOptions, + stringify: function stringify() { + return nullOptions.nullStr; + } +}, { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, + resolve: function resolve() { + return true; + }, + options: boolOptions, + stringify: boolStringify +}, { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, + resolve: function resolve() { + return false; + }, + options: boolOptions, + stringify: boolStringify +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'BIN', + test: /^([-+]?)0b([0-1_]+)$/, + resolve: function resolve(str, sign, bin) { + return intResolve(sign, bin, 2); + }, + stringify: function stringify(node) { + return intStringify(node, 2, '0b'); + } +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^([-+]?)0([0-7_]+)$/, + resolve: function resolve(str, sign, oct) { + return intResolve(sign, oct, 8); + }, + stringify: function stringify(node) { + return intStringify(node, 8, '0'); + } +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^([-+]?)([0-9][0-9_]*)$/, + resolve: function resolve(str, sign, abs) { + return intResolve(sign, abs, 10); + }, + stringify: stringifyNumber +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^([-+]?)0x([0-9a-fA-F_]+)$/, + resolve: function resolve(str, sign, hex) { + return intResolve(sign, hex, 16); + }, + stringify: function stringify(node) { + return intStringify(node, 16, '0x'); + } +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: function resolve(str, nan) { + return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY; + }, + stringify: stringifyNumber +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, + resolve: function resolve(str) { + return parseFloat(str.replace(/_/g, '')); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return Number(value).toExponential(); + } +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, + resolve: function resolve(str, frac) { + var node = new Scalar(parseFloat(str.replace(/_/g, ''))); + + if (frac) { + var f = frac.replace(/_/g, ''); + if (f[f.length - 1] === '0') node.minFractionDigits = f.length; + } + + return node; + }, + stringify: stringifyNumber +}], binary, omap, pairs, set, intTime, floatTime, timestamp); + +var schemas = { + core: core, + failsafe: failsafe, + json: json, + yaml11: yaml11 +}; +var tags = { + binary: binary, + bool: boolObj, + float: floatObj, + floatExp: expObj, + floatNaN: nanObj, + floatTime: floatTime, + int: intObj, + intHex: hexObj, + intOct: octObj, + intTime: intTime, + map: map, + null: nullObj, + omap: omap, + pairs: pairs, + seq: seq, + set: set, + timestamp: timestamp +}; + +function findTagObject(value, tagName, tags) { + if (tagName) { + var match = tags.filter(function (t) { + return t.tag === tagName; + }); + var tagObj = match.find(function (t) { + return !t.format; + }) || match[0]; + if (!tagObj) throw new Error("Tag ".concat(tagName, " not found")); + return tagObj; + } // TODO: deprecate/remove class check + + + return tags.find(function (t) { + return (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format; + }); +} + +function createNode(value, tagName, ctx) { + if (value instanceof Node) return value; + var defaultPrefix = ctx.defaultPrefix, + onTagObj = ctx.onTagObj, + prevObjects = ctx.prevObjects, + schema = ctx.schema, + wrapScalars = ctx.wrapScalars; + if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2); + var tagObj = findTagObject(value, tagName, schema.tags); + + if (!tagObj) { + if (typeof value.toJSON === 'function') value = value.toJSON(); + if (!value || _typeof(value) !== 'object') return wrapScalars ? new Scalar(value) : value; + tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map; + } + + if (onTagObj) { + onTagObj(tagObj); + delete ctx.onTagObj; + } // Detect duplicate references to the same object & use Alias nodes for all + // after first. The `obj` wrapper allows for circular references to resolve. + + + var obj = { + value: undefined, + node: undefined + }; + + if (value && _typeof(value) === 'object' && prevObjects) { + var prev = prevObjects.get(value); + + if (prev) { + var alias = new Alias(prev); // leaves source dirty; must be cleaned by caller + + ctx.aliasNodes.push(alias); // defined along with prevObjects + + return alias; + } + + obj.value = value; + prevObjects.set(value, obj); + } + + obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new Scalar(value) : value; + if (tagName && obj.node instanceof Node) obj.node.tag = tagName; + return obj.node; +} + +function getSchemaTags(schemas, knownTags, customTags, schemaId) { + var tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11' + + if (!tags) { + var keys = Object.keys(schemas).map(function (key) { + return JSON.stringify(key); + }).join(', '); + throw new Error("Unknown schema \"".concat(schemaId, "\"; use one of ").concat(keys)); + } + + if (Array.isArray(customTags)) { + var _iterator = _createForOfIteratorHelper(customTags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var tag = _step.value; + tags = tags.concat(tag); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } else if (typeof customTags === 'function') { + tags = customTags(tags.slice()); + } + + for (var i = 0; i < tags.length; ++i) { + var _tag = tags[i]; + + if (typeof _tag === 'string') { + var tagObj = knownTags[_tag]; + + if (!tagObj) { + var _keys = Object.keys(knownTags).map(function (key) { + return JSON.stringify(key); + }).join(', '); + + throw new Error("Unknown custom tag \"".concat(_tag, "\"; use one of ").concat(_keys)); + } + + tags[i] = tagObj; + } + } + + return tags; +} + +var sortMapEntriesByKey = function sortMapEntriesByKey(a, b) { + return a.key < b.key ? -1 : a.key > b.key ? 1 : 0; +}; + +var Schema = /*#__PURE__*/function () { + // TODO: remove in v2 + // TODO: remove in v2 + function Schema(_ref) { + var customTags = _ref.customTags, + merge = _ref.merge, + schema = _ref.schema, + sortMapEntries = _ref.sortMapEntries, + deprecatedCustomTags = _ref.tags; + + _classCallCheck(this, Schema); + + this.merge = !!merge; + this.name = schema; + this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null; + if (!customTags && deprecatedCustomTags) warnOptionDeprecation('tags', 'customTags'); + this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema); + } + + _createClass(Schema, [{ + key: "createNode", + value: function createNode$1(value, wrapScalars, tagName, ctx) { + var baseCtx = { + defaultPrefix: Schema.defaultPrefix, + schema: this, + wrapScalars: wrapScalars + }; + var createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx; + return createNode(value, tagName, createCtx); + } + }, { + key: "createPair", + value: function createPair(key, value, ctx) { + if (!ctx) ctx = { + wrapScalars: true + }; + var k = this.createNode(key, ctx.wrapScalars, null, ctx); + var v = this.createNode(value, ctx.wrapScalars, null, ctx); + return new Pair(k, v); + } + }]); + + return Schema; +}(); + +_defineProperty(Schema, "defaultPrefix", defaultTagPrefix); + +_defineProperty(Schema, "defaultTags", defaultTags); + +export { Schema as S }; diff --git a/node_modules/yaml/browser/dist/index.js b/node_modules/yaml/browser/dist/index.js new file mode 100644 index 0000000..e67898b --- /dev/null +++ b/node_modules/yaml/browser/dist/index.js @@ -0,0 +1,1002 @@ +import { d as defaultTagPrefix, _ as _createForOfIteratorHelper, a as _typeof, b as _createClass, c as _classCallCheck, e as _defineProperty, Y as YAMLSyntaxError, T as Type, f as YAMLWarning, g as YAMLSemanticError, h as _slicedToArray, i as YAMLError, j as _inherits, k as _createSuper } from './PlainValue-b8036b75.js'; +import { parse as parse$1 } from './parse-cst.js'; +import { b as binaryOptions, a as boolOptions, i as intOptions, n as nullOptions, s as strOptions, N as Node, P as Pair, S as Scalar, c as stringifyString, A as Alias, Y as YAMLSeq, d as YAMLMap, M as Merge, C as Collection, r as resolveNode, e as isEmptyPath, t as toJSON, f as addComment } from './resolveSeq-492ab440.js'; +import { S as Schema } from './Schema-e94716c8.js'; +import { w as warn } from './warnings-df54cb69.js'; + +var defaultOptions = { + anchorPrefix: 'a', + customTags: null, + indent: 2, + indentSeq: true, + keepCstNodes: false, + keepNodeTypes: true, + keepBlobsInJSON: true, + mapAsMap: false, + maxAliasCount: 100, + prettyErrors: false, + // TODO Set true in v2 + simpleKeys: false, + version: '1.2' +}; +var scalarOptions = { + get binary() { + return binaryOptions; + }, + + set binary(opt) { + Object.assign(binaryOptions, opt); + }, + + get bool() { + return boolOptions; + }, + + set bool(opt) { + Object.assign(boolOptions, opt); + }, + + get int() { + return intOptions; + }, + + set int(opt) { + Object.assign(intOptions, opt); + }, + + get null() { + return nullOptions; + }, + + set null(opt) { + Object.assign(nullOptions, opt); + }, + + get str() { + return strOptions; + }, + + set str(opt) { + Object.assign(strOptions, opt); + } + +}; +var documentOptions = { + '1.0': { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: defaultTagPrefix + }, { + handle: '!!', + prefix: 'tag:private.yaml.org,2002:' + }] + }, + 1.1: { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: defaultTagPrefix + }] + }, + 1.2: { + schema: 'core', + merge: false, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: defaultTagPrefix + }] + } +}; + +function stringifyTag(doc, tag) { + if ((doc.version || doc.options.version) === '1.0') { + var priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/); + if (priv) return '!' + priv[1]; + var vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/); + return vocab ? "!".concat(vocab[1], "/").concat(vocab[2]) : "!".concat(tag.replace(/^tag:/, '')); + } + + var p = doc.tagPrefixes.find(function (p) { + return tag.indexOf(p.prefix) === 0; + }); + + if (!p) { + var dtp = doc.getDefaults().tagPrefixes; + p = dtp && dtp.find(function (p) { + return tag.indexOf(p.prefix) === 0; + }); + } + + if (!p) return tag[0] === '!' ? tag : "!<".concat(tag, ">"); + var suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, function (ch) { + return { + '!': '%21', + ',': '%2C', + '[': '%5B', + ']': '%5D', + '{': '%7B', + '}': '%7D' + }[ch]; + }); + return p.handle + suffix; +} + +function getTagObject(tags, item) { + if (item instanceof Alias) return Alias; + + if (item.tag) { + var match = tags.filter(function (t) { + return t.tag === item.tag; + }); + if (match.length > 0) return match.find(function (t) { + return t.format === item.format; + }) || match[0]; + } + + var tagObj, obj; + + if (item instanceof Scalar) { + obj = item.value; // TODO: deprecate/remove class check + + var _match = tags.filter(function (t) { + return t.identify && t.identify(obj) || t.class && obj instanceof t.class; + }); + + tagObj = _match.find(function (t) { + return t.format === item.format; + }) || _match.find(function (t) { + return !t.format; + }); + } else { + obj = item; + tagObj = tags.find(function (t) { + return t.nodeClass && obj instanceof t.nodeClass; + }); + } + + if (!tagObj) { + var name = obj && obj.constructor ? obj.constructor.name : _typeof(obj); + throw new Error("Tag not resolved for ".concat(name, " value")); + } + + return tagObj; +} // needs to be called before value stringifier to allow for circular anchor refs + + +function stringifyProps(node, tagObj, _ref) { + var anchors = _ref.anchors, + doc = _ref.doc; + var props = []; + var anchor = doc.anchors.getName(node); + + if (anchor) { + anchors[anchor] = node; + props.push("&".concat(anchor)); + } + + if (node.tag) { + props.push(stringifyTag(doc, node.tag)); + } else if (!tagObj.default) { + props.push(stringifyTag(doc, tagObj.tag)); + } + + return props.join(' '); +} + +function stringify$1(item, ctx, onComment, onChompKeep) { + var _ctx$doc = ctx.doc, + anchors = _ctx$doc.anchors, + schema = _ctx$doc.schema; + var tagObj; + + if (!(item instanceof Node)) { + var createCtx = { + aliasNodes: [], + onTagObj: function onTagObj(o) { + return tagObj = o; + }, + prevObjects: new Map() + }; + item = schema.createNode(item, true, null, createCtx); + + var _iterator = _createForOfIteratorHelper(createCtx.aliasNodes), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var alias = _step.value; + alias.source = alias.source.node; + var name = anchors.getName(alias.source); + + if (!name) { + name = anchors.newName(); + anchors.map[name] = alias.source; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + + if (item instanceof Pair) return item.toString(ctx, onComment, onChompKeep); + if (!tagObj) tagObj = getTagObject(schema.tags, item); + var props = stringifyProps(item, tagObj, ctx); + if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1; + var str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof Scalar ? stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep); + if (!props) return str; + return item instanceof Scalar || str[0] === '{' || str[0] === '[' ? "".concat(props, " ").concat(str) : "".concat(props, "\n").concat(ctx.indent).concat(str); +} + +var Anchors = /*#__PURE__*/function () { + function Anchors(prefix) { + _classCallCheck(this, Anchors); + + _defineProperty(this, "map", Object.create(null)); + + this.prefix = prefix; + } + + _createClass(Anchors, [{ + key: "createAlias", + value: function createAlias(node, name) { + this.setAnchor(node, name); + return new Alias(node); + } + }, { + key: "createMergePair", + value: function createMergePair() { + var _this = this; + + var merge = new Merge(); + + for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { + sources[_key] = arguments[_key]; + } + + merge.value.items = sources.map(function (s) { + if (s instanceof Alias) { + if (s.source instanceof YAMLMap) return s; + } else if (s instanceof YAMLMap) { + return _this.createAlias(s); + } + + throw new Error('Merge sources must be Map nodes or their Aliases'); + }); + return merge; + } + }, { + key: "getName", + value: function getName(node) { + var map = this.map; + return Object.keys(map).find(function (a) { + return map[a] === node; + }); + } + }, { + key: "getNames", + value: function getNames() { + return Object.keys(this.map); + } + }, { + key: "getNode", + value: function getNode(name) { + return this.map[name]; + } + }, { + key: "newName", + value: function newName(prefix) { + if (!prefix) prefix = this.prefix; + var names = Object.keys(this.map); + + for (var i = 1; true; ++i) { + var name = "".concat(prefix).concat(i); + if (!names.includes(name)) return name; + } + } // During parsing, map & aliases contain CST nodes + + }, { + key: "resolveNodes", + value: function resolveNodes() { + var map = this.map, + _cstAliases = this._cstAliases; + Object.keys(map).forEach(function (a) { + map[a] = map[a].resolved; + }); + + _cstAliases.forEach(function (a) { + a.source = a.source.resolved; + }); + + delete this._cstAliases; + } + }, { + key: "setAnchor", + value: function setAnchor(node, name) { + if (node != null && !Anchors.validAnchorNode(node)) { + throw new Error('Anchors may only be set for Scalar, Seq and Map nodes'); + } + + if (name && /[\x00-\x19\s,[\]{}]/.test(name)) { + throw new Error('Anchor names must not contain whitespace or control characters'); + } + + var map = this.map; + var prev = node && Object.keys(map).find(function (a) { + return map[a] === node; + }); + + if (prev) { + if (!name) { + return prev; + } else if (prev !== name) { + delete map[prev]; + map[name] = node; + } + } else { + if (!name) { + if (!node) return null; + name = this.newName(); + } + + map[name] = node; + } + + return name; + } + }], [{ + key: "validAnchorNode", + value: function validAnchorNode(node) { + return node instanceof Scalar || node instanceof YAMLSeq || node instanceof YAMLMap; + } + }]); + + return Anchors; +}(); + +var visit = function visit(node, tags) { + if (node && _typeof(node) === 'object') { + var tag = node.tag; + + if (node instanceof Collection) { + if (tag) tags[tag] = true; + node.items.forEach(function (n) { + return visit(n, tags); + }); + } else if (node instanceof Pair) { + visit(node.key, tags); + visit(node.value, tags); + } else if (node instanceof Scalar) { + if (tag) tags[tag] = true; + } + } + + return tags; +}; + +var listTagNames = function listTagNames(node) { + return Object.keys(visit(node, {})); +}; + +function parseContents(doc, contents) { + var comments = { + before: [], + after: [] + }; + var body = undefined; + var spaceBefore = false; + + var _iterator = _createForOfIteratorHelper(contents), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var node = _step.value; + + if (node.valueRange) { + if (body !== undefined) { + var msg = 'Document contains trailing content not separated by a ... or --- line'; + doc.errors.push(new YAMLSyntaxError(node, msg)); + break; + } + + var res = resolveNode(doc, node); + + if (spaceBefore) { + res.spaceBefore = true; + spaceBefore = false; + } + + body = res; + } else if (node.comment !== null) { + var cc = body === undefined ? comments.before : comments.after; + cc.push(node.comment); + } else if (node.type === Type.BLANK_LINE) { + spaceBefore = true; + + if (body === undefined && comments.before.length > 0 && !doc.commentBefore) { + // space-separated comments at start are parsed as document comments + doc.commentBefore = comments.before.join('\n'); + comments.before = []; + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + doc.contents = body || null; + + if (!body) { + doc.comment = comments.before.concat(comments.after).join('\n') || null; + } else { + var cb = comments.before.join('\n'); + + if (cb) { + var cbNode = body instanceof Collection && body.items[0] ? body.items[0] : body; + cbNode.commentBefore = cbNode.commentBefore ? "".concat(cb, "\n").concat(cbNode.commentBefore) : cb; + } + + doc.comment = comments.after.join('\n') || null; + } +} + +function resolveTagDirective(_ref, directive) { + var tagPrefixes = _ref.tagPrefixes; + + var _directive$parameters = _slicedToArray(directive.parameters, 2), + handle = _directive$parameters[0], + prefix = _directive$parameters[1]; + + if (!handle || !prefix) { + var msg = 'Insufficient parameters given for %TAG directive'; + throw new YAMLSemanticError(directive, msg); + } + + if (tagPrefixes.some(function (p) { + return p.handle === handle; + })) { + var _msg = 'The %TAG directive must only be given at most once per handle in the same document.'; + throw new YAMLSemanticError(directive, _msg); + } + + return { + handle: handle, + prefix: prefix + }; +} + +function resolveYamlDirective(doc, directive) { + var _directive$parameters2 = _slicedToArray(directive.parameters, 1), + version = _directive$parameters2[0]; + + if (directive.name === 'YAML:1.0') version = '1.0'; + + if (!version) { + var msg = 'Insufficient parameters given for %YAML directive'; + throw new YAMLSemanticError(directive, msg); + } + + if (!documentOptions[version]) { + var v0 = doc.version || doc.options.version; + + var _msg2 = "Document will be parsed as YAML ".concat(v0, " rather than YAML ").concat(version); + + doc.warnings.push(new YAMLWarning(directive, _msg2)); + } + + return version; +} + +function parseDirectives(doc, directives, prevDoc) { + var directiveComments = []; + var hasDirectives = false; + + var _iterator = _createForOfIteratorHelper(directives), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var directive = _step.value; + var comment = directive.comment, + name = directive.name; + + switch (name) { + case 'TAG': + try { + doc.tagPrefixes.push(resolveTagDirective(doc, directive)); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + case 'YAML': + case 'YAML:1.0': + if (doc.version) { + var msg = 'The %YAML directive must only be given at most once per document.'; + doc.errors.push(new YAMLSemanticError(directive, msg)); + } + + try { + doc.version = resolveYamlDirective(doc, directive); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + default: + if (name) { + var _msg3 = "YAML only supports %TAG and %YAML directives, and not %".concat(name); + + doc.warnings.push(new YAMLWarning(directive, _msg3)); + } + + } + + if (comment) directiveComments.push(comment); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) { + var copyTagPrefix = function copyTagPrefix(_ref2) { + var handle = _ref2.handle, + prefix = _ref2.prefix; + return { + handle: handle, + prefix: prefix + }; + }; + + doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix); + doc.version = prevDoc.version; + } + + doc.commentBefore = directiveComments.join('\n') || null; +} + +function assertCollection(contents) { + if (contents instanceof Collection) return true; + throw new Error('Expected a YAML collection as document contents'); +} + +var Document$1 = /*#__PURE__*/function () { + function Document(options) { + _classCallCheck(this, Document); + + this.anchors = new Anchors(options.anchorPrefix); + this.commentBefore = null; + this.comment = null; + this.contents = null; + this.directivesEndMarker = null; + this.errors = []; + this.options = options; + this.schema = null; + this.tagPrefixes = []; + this.version = null; + this.warnings = []; + } + + _createClass(Document, [{ + key: "add", + value: function add(value) { + assertCollection(this.contents); + return this.contents.add(value); + } + }, { + key: "addIn", + value: function addIn(path, value) { + assertCollection(this.contents); + this.contents.addIn(path, value); + } + }, { + key: "delete", + value: function _delete(key) { + assertCollection(this.contents); + return this.contents.delete(key); + } + }, { + key: "deleteIn", + value: function deleteIn(path) { + if (isEmptyPath(path)) { + if (this.contents == null) return false; + this.contents = null; + return true; + } + + assertCollection(this.contents); + return this.contents.deleteIn(path); + } + }, { + key: "getDefaults", + value: function getDefaults() { + return Document.defaults[this.version] || Document.defaults[this.options.version] || {}; + } + }, { + key: "get", + value: function get(key, keepScalar) { + return this.contents instanceof Collection ? this.contents.get(key, keepScalar) : undefined; + } + }, { + key: "getIn", + value: function getIn(path, keepScalar) { + if (isEmptyPath(path)) return !keepScalar && this.contents instanceof Scalar ? this.contents.value : this.contents; + return this.contents instanceof Collection ? this.contents.getIn(path, keepScalar) : undefined; + } + }, { + key: "has", + value: function has(key) { + return this.contents instanceof Collection ? this.contents.has(key) : false; + } + }, { + key: "hasIn", + value: function hasIn(path) { + if (isEmptyPath(path)) return this.contents !== undefined; + return this.contents instanceof Collection ? this.contents.hasIn(path) : false; + } + }, { + key: "set", + value: function set(key, value) { + assertCollection(this.contents); + this.contents.set(key, value); + } + }, { + key: "setIn", + value: function setIn(path, value) { + if (isEmptyPath(path)) this.contents = value;else { + assertCollection(this.contents); + this.contents.setIn(path, value); + } + } + }, { + key: "setSchema", + value: function setSchema(id, customTags) { + if (!id && !customTags && this.schema) return; + if (typeof id === 'number') id = id.toFixed(1); + + if (id === '1.0' || id === '1.1' || id === '1.2') { + if (this.version) this.version = id;else this.options.version = id; + delete this.options.schema; + } else if (id && typeof id === 'string') { + this.options.schema = id; + } + + if (Array.isArray(customTags)) this.options.customTags = customTags; + var opt = Object.assign({}, this.getDefaults(), this.options); + this.schema = new Schema(opt); + } + }, { + key: "parse", + value: function parse(node, prevDoc) { + if (this.options.keepCstNodes) this.cstNode = node; + if (this.options.keepNodeTypes) this.type = 'DOCUMENT'; + var _node$directives = node.directives, + directives = _node$directives === void 0 ? [] : _node$directives, + _node$contents = node.contents, + contents = _node$contents === void 0 ? [] : _node$contents, + directivesEndMarker = node.directivesEndMarker, + error = node.error, + valueRange = node.valueRange; + + if (error) { + if (!error.source) error.source = this; + this.errors.push(error); + } + + parseDirectives(this, directives, prevDoc); + if (directivesEndMarker) this.directivesEndMarker = true; + this.range = valueRange ? [valueRange.start, valueRange.end] : null; + this.setSchema(); + this.anchors._cstAliases = []; + parseContents(this, contents); + this.anchors.resolveNodes(); + + if (this.options.prettyErrors) { + var _iterator = _createForOfIteratorHelper(this.errors), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _error = _step.value; + if (_error instanceof YAMLError) _error.makePretty(); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + var _iterator2 = _createForOfIteratorHelper(this.warnings), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var warn = _step2.value; + if (warn instanceof YAMLError) warn.makePretty(); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + + return this; + } + }, { + key: "listNonDefaultTags", + value: function listNonDefaultTags() { + return listTagNames(this.contents).filter(function (t) { + return t.indexOf(Schema.defaultPrefix) !== 0; + }); + } + }, { + key: "setTagPrefix", + value: function setTagPrefix(handle, prefix) { + if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !'); + + if (prefix) { + var prev = this.tagPrefixes.find(function (p) { + return p.handle === handle; + }); + if (prev) prev.prefix = prefix;else this.tagPrefixes.push({ + handle: handle, + prefix: prefix + }); + } else { + this.tagPrefixes = this.tagPrefixes.filter(function (p) { + return p.handle !== handle; + }); + } + } + }, { + key: "toJSON", + value: function toJSON$1(arg, onAnchor) { + var _this = this; + + var _this$options = this.options, + keepBlobsInJSON = _this$options.keepBlobsInJSON, + mapAsMap = _this$options.mapAsMap, + maxAliasCount = _this$options.maxAliasCount; + var keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof Scalar)); + var ctx = { + doc: this, + indentStep: ' ', + keep: keep, + mapAsMap: keep && !!mapAsMap, + maxAliasCount: maxAliasCount, + stringify: stringify$1 // Requiring directly in Pair would create circular dependencies + + }; + var anchorNames = Object.keys(this.anchors.map); + if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(function (name) { + return [_this.anchors.map[name], { + alias: [], + aliasCount: 0, + count: 1 + }]; + })); + + var res = toJSON(this.contents, arg, ctx); + + if (typeof onAnchor === 'function' && ctx.anchors) { + var _iterator3 = _createForOfIteratorHelper(ctx.anchors.values()), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var _step3$value = _step3.value, + count = _step3$value.count, + _res = _step3$value.res; + onAnchor(_res, count); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + } + + return res; + } + }, { + key: "toString", + value: function toString() { + if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified'); + var indentSize = this.options.indent; + + if (!Number.isInteger(indentSize) || indentSize <= 0) { + var s = JSON.stringify(indentSize); + throw new Error("\"indent\" option must be a positive integer, not ".concat(s)); + } + + this.setSchema(); + var lines = []; + var hasDirectives = false; + + if (this.version) { + var vd = '%YAML 1.2'; + + if (this.schema.name === 'yaml-1.1') { + if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1'; + } + + lines.push(vd); + hasDirectives = true; + } + + var tagNames = this.listNonDefaultTags(); + this.tagPrefixes.forEach(function (_ref) { + var handle = _ref.handle, + prefix = _ref.prefix; + + if (tagNames.some(function (t) { + return t.indexOf(prefix) === 0; + })) { + lines.push("%TAG ".concat(handle, " ").concat(prefix)); + hasDirectives = true; + } + }); + if (hasDirectives || this.directivesEndMarker) lines.push('---'); + + if (this.commentBefore) { + if (hasDirectives || !this.directivesEndMarker) lines.unshift(''); + lines.unshift(this.commentBefore.replace(/^/gm, '#')); + } + + var ctx = { + anchors: Object.create(null), + doc: this, + indent: '', + indentStep: ' '.repeat(indentSize), + stringify: stringify$1 // Requiring directly in nodes would create circular dependencies + + }; + var chompKeep = false; + var contentComment = null; + + if (this.contents) { + if (this.contents instanceof Node) { + if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push(''); + if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment + + ctx.forceBlockIndent = !!this.comment; + contentComment = this.contents.comment; + } + + var onChompKeep = contentComment ? null : function () { + return chompKeep = true; + }; + var body = stringify$1(this.contents, ctx, function () { + return contentComment = null; + }, onChompKeep); + lines.push(addComment(body, '', contentComment)); + } else if (this.contents !== undefined) { + lines.push(stringify$1(this.contents, ctx)); + } + + if (this.comment) { + if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push(''); + lines.push(this.comment.replace(/^/gm, '#')); + } + + return lines.join('\n') + '\n'; + } + }]); + + return Document; +}(); + +_defineProperty(Document$1, "defaults", documentOptions); + +function createNode(value) { + var wrapScalars = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var tag = arguments.length > 2 ? arguments[2] : undefined; + + if (tag === undefined && typeof wrapScalars === 'string') { + tag = wrapScalars; + wrapScalars = true; + } + + var options = Object.assign({}, Document$1.defaults[defaultOptions.version], defaultOptions); + var schema = new Schema(options); + return schema.createNode(value, wrapScalars, tag); +} + +var Document = /*#__PURE__*/function (_YAMLDocument) { + _inherits(Document, _YAMLDocument); + + var _super = _createSuper(Document); + + function Document(options) { + _classCallCheck(this, Document); + + return _super.call(this, Object.assign({}, defaultOptions, options)); + } + + return Document; +}(Document$1); + +function parseAllDocuments(src, options) { + var stream = []; + var prev; + + var _iterator = _createForOfIteratorHelper(parse$1(src)), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var cstDoc = _step.value; + var doc = new Document(options); + doc.parse(cstDoc, prev); + stream.push(doc); + prev = doc; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return stream; +} + +function parseDocument(src, options) { + var cst = parse$1(src); + var doc = new Document(options).parse(cst[0]); + + if (cst.length > 1) { + var errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()'; + doc.errors.unshift(new YAMLSemanticError(cst[1], errMsg)); + } + + return doc; +} + +function parse(src, options) { + var doc = parseDocument(src, options); + doc.warnings.forEach(function (warning) { + return warn(warning); + }); + if (doc.errors.length > 0) throw doc.errors[0]; + return doc.toJSON(); +} + +function stringify(value, options) { + var doc = new Document(options); + doc.contents = value; + return String(doc); +} + +var YAML = { + createNode: createNode, + defaultOptions: defaultOptions, + Document: Document, + parse: parse, + parseAllDocuments: parseAllDocuments, + parseCST: parse$1, + parseDocument: parseDocument, + scalarOptions: scalarOptions, + stringify: stringify +}; + +export { YAML }; diff --git a/node_modules/yaml/browser/dist/legacy-exports.js b/node_modules/yaml/browser/dist/legacy-exports.js new file mode 100644 index 0000000..4400ed6 --- /dev/null +++ b/node_modules/yaml/browser/dist/legacy-exports.js @@ -0,0 +1,3 @@ +export { b as binary, f as floatTime, i as intTime, o as omap, p as pairs, s as set, t as timestamp, c as warnFileDeprecation } from './warnings-df54cb69.js'; +import './PlainValue-b8036b75.js'; +import './resolveSeq-492ab440.js'; diff --git a/node_modules/yaml/browser/dist/package.json b/node_modules/yaml/browser/dist/package.json new file mode 100644 index 0000000..5ffd980 --- /dev/null +++ b/node_modules/yaml/browser/dist/package.json @@ -0,0 +1 @@ +{ "type": "module" } diff --git a/node_modules/yaml/browser/dist/parse-cst.js b/node_modules/yaml/browser/dist/parse-cst.js new file mode 100644 index 0000000..b68cf3c --- /dev/null +++ b/node_modules/yaml/browser/dist/parse-cst.js @@ -0,0 +1,1904 @@ +import { j as _inherits, k as _createSuper, c as _classCallCheck, T as Type, b as _createClass, R as Range, N as Node, g as YAMLSemanticError, l as _get, m as _getPrototypeOf, Y as YAMLSyntaxError, C as Char, e as _defineProperty, P as PlainValue } from './PlainValue-b8036b75.js'; + +var BlankLine = /*#__PURE__*/function (_Node) { + _inherits(BlankLine, _Node); + + var _super = _createSuper(BlankLine); + + function BlankLine() { + _classCallCheck(this, BlankLine); + + return _super.call(this, Type.BLANK_LINE); + } + /* istanbul ignore next */ + + + _createClass(BlankLine, [{ + key: "includesTrailingLines", + get: function get() { + // This is never called from anywhere, but if it were, + // this is the value it should return. + return true; + } + /** + * Parses a blank line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first \n character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + this.range = new Range(start, start + 1); + return start + 1; + } + }]); + + return BlankLine; +}(Node); + +var CollectionItem = /*#__PURE__*/function (_Node) { + _inherits(CollectionItem, _Node); + + var _super = _createSuper(CollectionItem); + + function CollectionItem(type, props) { + var _this; + + _classCallCheck(this, CollectionItem); + + _this = _super.call(this, type, props); + _this.node = null; + return _this; + } + + _createClass(CollectionItem, [{ + key: "includesTrailingLines", + get: function get() { + return !!this.node && this.node.includesTrailingLines; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var parseNode = context.parseNode, + src = context.src; + var atLineStart = context.atLineStart, + lineStart = context.lineStart; + if (!atLineStart && this.type === Type.SEQ_ITEM) this.error = new YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line'); + var indent = atLineStart ? start - lineStart : context.indent; + var offset = Node.endOfWhiteSpace(src, start + 1); + var ch = src[offset]; + var inlineComment = ch === '#'; + var comments = []; + var blankLine = null; + + while (ch === '\n' || ch === '#') { + if (ch === '#') { + var _end = Node.endOfLine(src, offset + 1); + + comments.push(new Range(offset, _end)); + offset = _end; + } else { + atLineStart = true; + lineStart = offset + 1; + var wsEnd = Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n' && comments.length === 0) { + blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src: src + }, lineStart); + } + + offset = Node.endOfIndent(src, lineStart); + } + + ch = src[offset]; + } + + if (Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== Type.SEQ_ITEM)) { + this.node = parseNode({ + atLineStart: atLineStart, + inCollection: false, + indent: indent, + lineStart: lineStart, + parent: this + }, offset); + } else if (ch && lineStart > start + 1) { + offset = lineStart - 1; + } + + if (this.node) { + if (blankLine) { + // Only blank lines preceding non-empty nodes are captured. Note that + // this means that collection item range start indices do not always + // increase monotonically. -- eemeli/yaml#126 + var items = context.parent.items || context.parent.contents; + if (items) items.push(blankLine); + } + + if (comments.length) Array.prototype.push.apply(this.props, comments); + offset = this.node.range.end; + } else { + if (inlineComment) { + var c = comments[0]; + this.props.push(c); + offset = c.end; + } else { + offset = Node.endOfLine(src, start + 1); + } + } + + var end = this.node ? this.node.valueRange.end : offset; + this.valueRange = new Range(start, end); + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(CollectionItem.prototype), "setOrigRanges", this).call(this, cr, offset); + return this.node ? this.node.setOrigRanges(cr, offset) : offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + node = this.node, + range = this.range, + value = this.value; + if (value != null) return value; + var str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }]); + + return CollectionItem; +}(Node); + +var Comment = /*#__PURE__*/function (_Node) { + _inherits(Comment, _Node); + + var _super = _createSuper(Comment); + + function Comment() { + _classCallCheck(this, Comment); + + return _super.call(this, Type.COMMENT); + } + /** + * Parses a comment line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + _createClass(Comment, [{ + key: "parse", + value: function parse(context, start) { + this.context = context; + var offset = this.parseComment(start); + this.range = new Range(start, offset); + return offset; + } + }]); + + return Comment; +}(Node); + +function grabCollectionEndComments(node) { + var cnode = node; + + while (cnode instanceof CollectionItem) { + cnode = cnode.node; + } + + if (!(cnode instanceof Collection)) return null; + var len = cnode.items.length; + var ci = -1; + + for (var i = len - 1; i >= 0; --i) { + var n = cnode.items[i]; + + if (n.type === Type.COMMENT) { + // Keep sufficiently indented comments with preceding node + var _n$context = n.context, + indent = _n$context.indent, + lineStart = _n$context.lineStart; + if (indent > 0 && n.range.start >= lineStart + indent) break; + ci = i; + } else if (n.type === Type.BLANK_LINE) ci = i;else break; + } + + if (ci === -1) return null; + var ca = cnode.items.splice(ci, len - ci); + var prevEnd = ca[0].range.start; + + while (true) { + cnode.range.end = prevEnd; + if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd; + if (cnode === node) break; + cnode = cnode.context.parent; + } + + return ca; +} +var Collection = /*#__PURE__*/function (_Node) { + _inherits(Collection, _Node); + + var _super = _createSuper(Collection); + + function Collection(firstItem) { + var _this; + + _classCallCheck(this, Collection); + + _this = _super.call(this, firstItem.type === Type.SEQ_ITEM ? Type.SEQ : Type.MAP); + + for (var i = firstItem.props.length - 1; i >= 0; --i) { + if (firstItem.props[i].start < firstItem.context.lineStart) { + // props on previous line are assumed by the collection + _this.props = firstItem.props.slice(0, i + 1); + firstItem.props = firstItem.props.slice(i + 1); + var itemRange = firstItem.props[0] || firstItem.valueRange; + firstItem.range.start = itemRange.start; + break; + } + } + + _this.items = [firstItem]; + var ec = grabCollectionEndComments(firstItem); + if (ec) Array.prototype.push.apply(_this.items, ec); + return _this; + } + + _createClass(Collection, [{ + key: "includesTrailingLines", + get: function get() { + return this.items.length > 0; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var parseNode = context.parseNode, + src = context.src; // It's easier to recalculate lineStart here rather than tracking down the + // last context from which to read it -- eemeli/yaml#2 + + var lineStart = Node.startOfLine(src, start); + var firstItem = this.items[0]; // First-item context needs to be correct for later comment handling + // -- eemeli/yaml#17 + + firstItem.context.parent = this; + this.valueRange = Range.copy(firstItem.valueRange); + var indent = firstItem.range.start - firstItem.context.lineStart; + var offset = start; + offset = Node.normalizeOffset(src, offset); + var ch = src[offset]; + var atLineStart = Node.endOfWhiteSpace(src, lineStart) === offset; + var prevIncludesTrailingLines = false; + + while (ch) { + while (ch === '\n' || ch === '#') { + if (atLineStart && ch === '\n' && !prevIncludesTrailingLines) { + var blankLine = new BlankLine(); + offset = blankLine.parse({ + src: src + }, offset); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + + this.items.push(blankLine); + offset -= 1; // blankLine.parse() consumes terminal newline + } else if (ch === '#') { + if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) { + return offset; + } + + var comment = new Comment(); + offset = comment.parse({ + indent: indent, + lineStart: lineStart, + src: src + }, offset); + this.items.push(comment); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + } + + lineStart = offset + 1; + offset = Node.endOfIndent(src, lineStart); + + if (Node.atBlank(src, offset)) { + var wsEnd = Node.endOfWhiteSpace(src, offset); + var next = src[wsEnd]; + + if (!next || next === '\n' || next === '#') { + offset = wsEnd; + } + } + + ch = src[offset]; + atLineStart = true; + } + + if (!ch) { + break; + } + + if (offset !== lineStart + indent && (atLineStart || ch !== ':')) { + if (offset < lineStart + indent) { + if (lineStart > start) offset = lineStart; + break; + } else if (!this.error) { + var msg = 'All collection items must start at the same column'; + this.error = new YAMLSyntaxError(this, msg); + } + } + + if (firstItem.type === Type.SEQ_ITEM) { + if (ch !== '-') { + if (lineStart > start) offset = lineStart; + break; + } + } else if (ch === '-' && !this.error) { + // map key may start with -, as long as it's followed by a non-whitespace char + var _next = src[offset + 1]; + + if (!_next || _next === '\n' || _next === '\t' || _next === ' ') { + var _msg = 'A collection cannot be both a mapping and a sequence'; + this.error = new YAMLSyntaxError(this, _msg); + } + } + + var node = parseNode({ + atLineStart: atLineStart, + inCollection: true, + indent: indent, + lineStart: lineStart, + parent: this + }, offset); + if (!node) return offset; // at next document start + + this.items.push(node); + this.valueRange.end = node.valueRange.end; + offset = Node.normalizeOffset(src, node.range.end); + ch = src[offset]; + atLineStart = false; + prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range + // has advanced to check the current line's indentation level + // -- eemeli/yaml#10 & eemeli/yaml#38 + + if (ch) { + var ls = offset - 1; + var prev = src[ls]; + + while (prev === ' ' || prev === '\t') { + prev = src[--ls]; + } + + if (prev === '\n') { + lineStart = ls + 1; + atLineStart = true; + } + } + + var ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.items, ec); + } + + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(Collection.prototype), "setOrigRanges", this).call(this, cr, offset); + this.items.forEach(function (node) { + offset = node.setOrigRanges(cr, offset); + }); + return offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + items = this.items, + range = this.range, + value = this.value; + if (value != null) return value; + var str = src.slice(range.start, items[0].range.start) + String(items[0]); + + for (var i = 1; i < items.length; ++i) { + var item = items[i]; + var _item$context = item.context, + atLineStart = _item$context.atLineStart, + indent = _item$context.indent; + if (atLineStart) for (var _i = 0; _i < indent; ++_i) { + str += ' '; + } + str += String(item); + } + + return Node.addStringTerminator(src, range.end, str); + } + }], [{ + key: "nextContentHasIndent", + value: function nextContentHasIndent(src, offset, indent) { + var lineStart = Node.endOfLine(src, offset) + 1; + offset = Node.endOfWhiteSpace(src, lineStart); + var ch = src[offset]; + if (!ch) return false; + if (offset >= lineStart + indent) return true; + if (ch !== '#' && ch !== '\n') return false; + return Collection.nextContentHasIndent(src, offset, indent); + } + }]); + + return Collection; +}(Node); + +var Directive = /*#__PURE__*/function (_Node) { + _inherits(Directive, _Node); + + var _super = _createSuper(Directive); + + function Directive() { + var _this; + + _classCallCheck(this, Directive); + + _this = _super.call(this, Type.DIRECTIVE); + _this.name = null; + return _this; + } + + _createClass(Directive, [{ + key: "parameters", + get: function get() { + var raw = this.rawValue; + return raw ? raw.trim().split(/[ \t]+/) : []; + } + }, { + key: "parseName", + value: function parseName(start) { + var src = this.context.src; + var offset = start; + var ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') { + ch = src[offset += 1]; + } + + this.name = src.slice(start, offset); + return offset; + } + }, { + key: "parseParameters", + value: function parseParameters(start) { + var src = this.context.src; + var offset = start; + var ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '#') { + ch = src[offset += 1]; + } + + this.valueRange = new Range(start, offset); + return offset; + } + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var offset = this.parseName(start + 1); + offset = this.parseParameters(offset); + offset = this.parseComment(offset); + this.range = new Range(start, offset); + return offset; + } + }]); + + return Directive; +}(Node); + +var Document = /*#__PURE__*/function (_Node) { + _inherits(Document, _Node); + + var _super = _createSuper(Document); + + function Document() { + var _this; + + _classCallCheck(this, Document); + + _this = _super.call(this, Type.DOCUMENT); + _this.directives = null; + _this.contents = null; + _this.directivesEndMarker = null; + _this.documentEndMarker = null; + return _this; + } + + _createClass(Document, [{ + key: "parseDirectives", + value: function parseDirectives(start) { + var src = this.context.src; + this.directives = []; + var atLineStart = true; + var hasDirectives = false; + var offset = start; + + while (!Node.atDocumentBoundary(src, offset, Char.DIRECTIVES_END)) { + offset = Document.startCommentOrEndBlankLine(src, offset); + + switch (src[offset]) { + case '\n': + if (atLineStart) { + var blankLine = new BlankLine(); + offset = blankLine.parse({ + src: src + }, offset); + + if (offset < src.length) { + this.directives.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + break; + + case '#': + { + var comment = new Comment(); + offset = comment.parse({ + src: src + }, offset); + this.directives.push(comment); + atLineStart = false; + } + break; + + case '%': + { + var directive = new Directive(); + offset = directive.parse({ + parent: this, + src: src + }, offset); + this.directives.push(directive); + hasDirectives = true; + atLineStart = false; + } + break; + + default: + if (hasDirectives) { + this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + } + + if (src[offset]) { + this.directivesEndMarker = new Range(offset, offset + 3); + return offset + 3; + } + + if (hasDirectives) { + this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + }, { + key: "parseContents", + value: function parseContents(start) { + var _this$context = this.context, + parseNode = _this$context.parseNode, + src = _this$context.src; + if (!this.contents) this.contents = []; + var lineStart = start; + + while (src[lineStart - 1] === '-') { + lineStart -= 1; + } + + var offset = Node.endOfWhiteSpace(src, start); + var atLineStart = lineStart === start; + this.valueRange = new Range(offset); + + while (!Node.atDocumentBoundary(src, offset, Char.DOCUMENT_END)) { + switch (src[offset]) { + case '\n': + if (atLineStart) { + var blankLine = new BlankLine(); + offset = blankLine.parse({ + src: src + }, offset); + + if (offset < src.length) { + this.contents.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + lineStart = offset; + break; + + case '#': + { + var comment = new Comment(); + offset = comment.parse({ + src: src + }, offset); + this.contents.push(comment); + atLineStart = false; + } + break; + + default: + { + var iEnd = Node.endOfIndent(src, offset); + var context = { + atLineStart: atLineStart, + indent: -1, + inFlow: false, + inCollection: false, + lineStart: lineStart, + parent: this + }; + var node = parseNode(context, iEnd); + if (!node) return this.valueRange.end = iEnd; // at next document start + + this.contents.push(node); + offset = node.range.end; + atLineStart = false; + var ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.contents, ec); + } + } + + offset = Document.startCommentOrEndBlankLine(src, offset); + } + + this.valueRange.end = offset; + + if (src[offset]) { + this.documentEndMarker = new Range(offset, offset + 3); + offset += 3; + + if (src[offset]) { + offset = Node.endOfWhiteSpace(src, offset); + + if (src[offset] === '#') { + var _comment = new Comment(); + + offset = _comment.parse({ + src: src + }, offset); + this.contents.push(_comment); + } + + switch (src[offset]) { + case '\n': + offset += 1; + break; + + case undefined: + break; + + default: + this.error = new YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix'); + } + } + } + + return offset; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + context.root = this; + this.context = context; + var src = context.src; + var offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM + + offset = this.parseDirectives(offset); + offset = this.parseContents(offset); + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(Document.prototype), "setOrigRanges", this).call(this, cr, offset); + this.directives.forEach(function (node) { + offset = node.setOrigRanges(cr, offset); + }); + if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset); + this.contents.forEach(function (node) { + offset = node.setOrigRanges(cr, offset); + }); + if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset); + return offset; + } + }, { + key: "toString", + value: function toString() { + var contents = this.contents, + directives = this.directives, + value = this.value; + if (value != null) return value; + var str = directives.join(''); + + if (contents.length > 0) { + if (directives.length > 0 || contents[0].type === Type.COMMENT) str += '---\n'; + str += contents.join(''); + } + + if (str[str.length - 1] !== '\n') str += '\n'; + return str; + } + }], [{ + key: "startCommentOrEndBlankLine", + value: function startCommentOrEndBlankLine(src, start) { + var offset = Node.endOfWhiteSpace(src, start); + var ch = src[offset]; + return ch === '#' || ch === '\n' ? offset : start; + } + }]); + + return Document; +}(Node); + +var Alias = /*#__PURE__*/function (_Node) { + _inherits(Alias, _Node); + + var _super = _createSuper(Alias); + + function Alias() { + _classCallCheck(this, Alias); + + return _super.apply(this, arguments); + } + + _createClass(Alias, [{ + key: "parse", + value: + /** + * Parses an *alias from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + function parse(context, start) { + this.context = context; + var src = context.src; + var offset = Node.endOfIdentifier(src, start + 1); + this.valueRange = new Range(start + 1, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }]); + + return Alias; +}(Node); + +var Chomp = { + CLIP: 'CLIP', + KEEP: 'KEEP', + STRIP: 'STRIP' +}; +var BlockValue = /*#__PURE__*/function (_Node) { + _inherits(BlockValue, _Node); + + var _super = _createSuper(BlockValue); + + function BlockValue(type, props) { + var _this; + + _classCallCheck(this, BlockValue); + + _this = _super.call(this, type, props); + _this.blockIndent = null; + _this.chomping = Chomp.CLIP; + _this.header = null; + return _this; + } + + _createClass(BlockValue, [{ + key: "includesTrailingLines", + get: function get() { + return this.chomping === Chomp.KEEP; + } + }, { + key: "strValue", + get: function get() { + if (!this.valueRange || !this.context) return null; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var _this$context = this.context, + indent = _this$context.indent, + src = _this$context.src; + if (this.valueRange.isEmpty()) return ''; + var lastNewLine = null; + var ch = src[end - 1]; + + while (ch === '\n' || ch === '\t' || ch === ' ') { + end -= 1; + + if (end <= start) { + if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens + } + + if (ch === '\n') lastNewLine = end; + ch = src[end - 1]; + } + + var keepStart = end + 1; + + if (lastNewLine) { + if (this.chomping === Chomp.KEEP) { + keepStart = lastNewLine; + end = this.valueRange.end; + } else { + end = lastNewLine; + } + } + + var bi = indent + this.blockIndent; + var folded = this.type === Type.BLOCK_FOLDED; + var atStart = true; + var str = ''; + var sep = ''; + var prevMoreIndented = false; + + for (var i = start; i < end; ++i) { + for (var j = 0; j < bi; ++j) { + if (src[i] !== ' ') break; + i += 1; + } + + var _ch = src[i]; + + if (_ch === '\n') { + if (sep === '\n') str += '\n';else sep = '\n'; + } else { + var lineEnd = Node.endOfLine(src, i); + var line = src.slice(i, lineEnd); + i = lineEnd; + + if (folded && (_ch === ' ' || _ch === '\t') && i < keepStart) { + if (sep === ' ') sep = '\n';else if (!prevMoreIndented && !atStart && sep === '\n') sep = '\n\n'; + str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '') + + sep = lineEnd < end && src[lineEnd] || ''; + prevMoreIndented = true; + } else { + str += sep + line; + sep = folded && i < keepStart ? ' ' : '\n'; + prevMoreIndented = false; + } + + if (atStart && line !== '') atStart = false; + } + } + + return this.chomping === Chomp.STRIP ? str : str + '\n'; + } + }, { + key: "parseBlockHeader", + value: function parseBlockHeader(start) { + var src = this.context.src; + var offset = start + 1; + var bi = ''; + + while (true) { + var ch = src[offset]; + + switch (ch) { + case '-': + this.chomping = Chomp.STRIP; + break; + + case '+': + this.chomping = Chomp.KEEP; + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + bi += ch; + break; + + default: + this.blockIndent = Number(bi) || null; + this.header = new Range(start, offset); + return offset; + } + + offset += 1; + } + } + }, { + key: "parseBlockValue", + value: function parseBlockValue(start) { + var _this$context2 = this.context, + indent = _this$context2.indent, + src = _this$context2.src; + var explicit = !!this.blockIndent; + var offset = start; + var valueEnd = start; + var minBlockIndent = 1; + + for (var ch = src[offset]; ch === '\n'; ch = src[offset]) { + offset += 1; + if (Node.atDocumentBoundary(src, offset)) break; + var end = Node.endOfBlockIndent(src, indent, offset); // should not include tab? + + if (end === null) break; + var _ch2 = src[end]; + var lineIndent = end - (offset + indent); + + if (!this.blockIndent) { + // no explicit block indent, none yet detected + if (src[end] !== '\n') { + // first line with non-whitespace content + if (lineIndent < minBlockIndent) { + var msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator'; + this.error = new YAMLSemanticError(this, msg); + } + + this.blockIndent = lineIndent; + } else if (lineIndent > minBlockIndent) { + // empty line with more whitespace + minBlockIndent = lineIndent; + } + } else if (_ch2 && _ch2 !== '\n' && lineIndent < this.blockIndent) { + if (src[end] === '#') break; + + if (!this.error) { + var _src = explicit ? 'explicit indentation indicator' : 'first line'; + + var _msg = "Block scalars must not be less indented than their ".concat(_src); + + this.error = new YAMLSemanticError(this, _msg); + } + } + + if (src[end] === '\n') { + offset = end; + } else { + offset = valueEnd = Node.endOfLine(src, end); + } + } + + if (this.chomping !== Chomp.KEEP) { + offset = src[valueEnd] ? valueEnd + 1 : valueEnd; + } + + this.valueRange = new Range(start + 1, offset); + return offset; + } + /** + * Parses a block value from the source + * + * Accepted forms are: + * ``` + * BS + * block + * lines + * + * BS #comment + * block + * lines + * ``` + * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines + * are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this block + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var src = context.src; + var offset = this.parseBlockHeader(start); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + offset = this.parseBlockValue(offset); + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(BlockValue.prototype), "setOrigRanges", this).call(this, cr, offset); + return this.header ? this.header.setOrigRange(cr, offset) : offset; + } + }]); + + return BlockValue; +}(Node); + +var FlowCollection = /*#__PURE__*/function (_Node) { + _inherits(FlowCollection, _Node); + + var _super = _createSuper(FlowCollection); + + function FlowCollection(type, props) { + var _this; + + _classCallCheck(this, FlowCollection); + + _this = _super.call(this, type, props); + _this.items = null; + return _this; + } + + _createClass(FlowCollection, [{ + key: "prevNodeIsJsonLike", + value: function prevNodeIsJsonLike() { + var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.items.length; + var node = this.items[idx - 1]; + return !!node && (node.jsonLike || node.type === Type.COMMENT && this.prevNodeIsJsonLike(idx - 1)); + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var parseNode = context.parseNode, + src = context.src; + var indent = context.indent, + lineStart = context.lineStart; + var char = src[start]; // { or [ + + this.items = [{ + char: char, + offset: start + }]; + var offset = Node.endOfWhiteSpace(src, start + 1); + char = src[offset]; + + while (char && char !== ']' && char !== '}') { + switch (char) { + case '\n': + { + lineStart = offset + 1; + var wsEnd = Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n') { + var blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src: src + }, lineStart); + this.items.push(blankLine); + } + + offset = Node.endOfIndent(src, lineStart); + + if (offset <= lineStart + indent) { + char = src[offset]; + + if (offset < lineStart + indent || char !== ']' && char !== '}') { + var msg = 'Insufficient indentation in flow collection'; + this.error = new YAMLSemanticError(this, msg); + } + } + } + break; + + case ',': + { + this.items.push({ + char: char, + offset: offset + }); + offset += 1; + } + break; + + case '#': + { + var comment = new Comment(); + offset = comment.parse({ + src: src + }, offset); + this.items.push(comment); + } + break; + + case '?': + case ':': + { + var next = src[offset + 1]; + + if (next === '\n' || next === '\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace + char === ':' && this.prevNodeIsJsonLike()) { + this.items.push({ + char: char, + offset: offset + }); + offset += 1; + break; + } + } + // fallthrough + + default: + { + var node = parseNode({ + atLineStart: false, + inCollection: false, + inFlow: true, + indent: -1, + lineStart: lineStart, + parent: this + }, offset); + + if (!node) { + // at next document start + this.valueRange = new Range(start, offset); + return offset; + } + + this.items.push(node); + offset = Node.normalizeOffset(src, node.range.end); + } + } + + offset = Node.endOfWhiteSpace(src, offset); + char = src[offset]; + } + + this.valueRange = new Range(start, offset + 1); + + if (char) { + this.items.push({ + char: char, + offset: offset + }); + offset = Node.endOfWhiteSpace(src, offset + 1); + offset = this.parseComment(offset); + } + + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(FlowCollection.prototype), "setOrigRanges", this).call(this, cr, offset); + this.items.forEach(function (node) { + if (node instanceof Node) { + offset = node.setOrigRanges(cr, offset); + } else if (cr.length === 0) { + node.origOffset = node.offset; + } else { + var i = offset; + + while (i < cr.length) { + if (cr[i] > node.offset) break;else ++i; + } + + node.origOffset = node.offset + i; + offset = i; + } + }); + return offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + items = this.items, + range = this.range, + value = this.value; + if (value != null) return value; + var nodes = items.filter(function (item) { + return item instanceof Node; + }); + var str = ''; + var prevEnd = range.start; + nodes.forEach(function (node) { + var prefix = src.slice(prevEnd, node.range.start); + prevEnd = node.range.end; + str += prefix + String(node); + + if (str[str.length - 1] === '\n' && src[prevEnd - 1] !== '\n' && src[prevEnd] === '\n') { + // Comment range does not include the terminal newline, but its + // stringified value does. Without this fix, newlines at comment ends + // get duplicated. + prevEnd += 1; + } + }); + str += src.slice(prevEnd, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }]); + + return FlowCollection; +}(Node); + +var QuoteDouble = /*#__PURE__*/function (_Node) { + _inherits(QuoteDouble, _Node); + + var _super = _createSuper(QuoteDouble); + + function QuoteDouble() { + _classCallCheck(this, QuoteDouble); + + return _super.apply(this, arguments); + } + + _createClass(QuoteDouble, [{ + key: "strValue", + get: + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + function get() { + if (!this.valueRange || !this.context) return null; + var errors = []; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var _this$context = this.context, + indent = _this$context.indent, + src = _this$context.src; + if (src[end - 1] !== '"') errors.push(new YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by + // escaped backslashes; also, this should be faster. + + var str = ''; + + for (var i = start + 1; i < end - 1; ++i) { + var ch = src[i]; + + if (ch === '\n') { + if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + + var _Node$foldNewline = Node.foldNewline(src, i, indent), + fold = _Node$foldNewline.fold, + offset = _Node$foldNewline.offset, + error = _Node$foldNewline.error; + + str += fold; + i = offset; + if (error) errors.push(new YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented')); + } else if (ch === '\\') { + i += 1; + + switch (src[i]) { + case '0': + str += '\0'; + break; + // null character + + case 'a': + str += '\x07'; + break; + // bell character + + case 'b': + str += '\b'; + break; + // backspace + + case 'e': + str += '\x1b'; + break; + // escape character + + case 'f': + str += '\f'; + break; + // form feed + + case 'n': + str += '\n'; + break; + // line feed + + case 'r': + str += '\r'; + break; + // carriage return + + case 't': + str += '\t'; + break; + // horizontal tab + + case 'v': + str += '\v'; + break; + // vertical tab + + case 'N': + str += "\x85"; + break; + // Unicode next line + + case '_': + str += "\xA0"; + break; + // Unicode non-breaking space + + case 'L': + str += "\u2028"; + break; + // Unicode line separator + + case 'P': + str += "\u2029"; + break; + // Unicode paragraph separator + + case ' ': + str += ' '; + break; + + case '"': + str += '"'; + break; + + case '/': + str += '/'; + break; + + case '\\': + str += '\\'; + break; + + case '\t': + str += '\t'; + break; + + case 'x': + str += this.parseCharCode(i + 1, 2, errors); + i += 2; + break; + + case 'u': + str += this.parseCharCode(i + 1, 4, errors); + i += 4; + break; + + case 'U': + str += this.parseCharCode(i + 1, 8, errors); + i += 8; + break; + + case '\n': + // skip escaped newlines, but still trim the following line + while (src[i + 1] === ' ' || src[i + 1] === '\t') { + i += 1; + } + + break; + + default: + errors.push(new YAMLSyntaxError(this, "Invalid escape sequence ".concat(src.substr(i - 1, 2)))); + str += '\\' + src[i]; + } + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + var wsStart = i; + var next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors: errors, + str: str + } : str; + } + }, { + key: "parseCharCode", + value: function parseCharCode(offset, length, errors) { + var src = this.context.src; + var cc = src.substr(offset, length); + var ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc); + var code = ok ? parseInt(cc, 16) : NaN; + + if (isNaN(code)) { + errors.push(new YAMLSyntaxError(this, "Invalid escape sequence ".concat(src.substr(offset - 2, length + 2)))); + return src.substr(offset - 2, length + 2); + } + + return String.fromCodePoint(code); + } + /** + * Parses a "double quoted" value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var src = context.src; + var offset = QuoteDouble.endOfQuote(src, start + 1); + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }], [{ + key: "endOfQuote", + value: function endOfQuote(src, offset) { + var ch = src[offset]; + + while (ch && ch !== '"') { + offset += ch === '\\' ? 2 : 1; + ch = src[offset]; + } + + return offset + 1; + } + }]); + + return QuoteDouble; +}(Node); + +var QuoteSingle = /*#__PURE__*/function (_Node) { + _inherits(QuoteSingle, _Node); + + var _super = _createSuper(QuoteSingle); + + function QuoteSingle() { + _classCallCheck(this, QuoteSingle); + + return _super.apply(this, arguments); + } + + _createClass(QuoteSingle, [{ + key: "strValue", + get: + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + function get() { + if (!this.valueRange || !this.context) return null; + var errors = []; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var _this$context = this.context, + indent = _this$context.indent, + src = _this$context.src; + if (src[end - 1] !== "'") errors.push(new YAMLSyntaxError(this, "Missing closing 'quote")); + var str = ''; + + for (var i = start + 1; i < end - 1; ++i) { + var ch = src[i]; + + if (ch === '\n') { + if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + + var _Node$foldNewline = Node.foldNewline(src, i, indent), + fold = _Node$foldNewline.fold, + offset = _Node$foldNewline.offset, + error = _Node$foldNewline.error; + + str += fold; + i = offset; + if (error) errors.push(new YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented')); + } else if (ch === "'") { + str += ch; + i += 1; + if (src[i] !== "'") errors.push(new YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.')); + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + var wsStart = i; + var next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors: errors, + str: str + } : str; + } + /** + * Parses a 'single quoted' value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var src = context.src; + var offset = QuoteSingle.endOfQuote(src, start + 1); + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }], [{ + key: "endOfQuote", + value: function endOfQuote(src, offset) { + var ch = src[offset]; + + while (ch) { + if (ch === "'") { + if (src[offset + 1] !== "'") break; + ch = src[offset += 2]; + } else { + ch = src[offset += 1]; + } + } + + return offset + 1; + } + }]); + + return QuoteSingle; +}(Node); + +function createNewNode(type, props) { + switch (type) { + case Type.ALIAS: + return new Alias(type, props); + + case Type.BLOCK_FOLDED: + case Type.BLOCK_LITERAL: + return new BlockValue(type, props); + + case Type.FLOW_MAP: + case Type.FLOW_SEQ: + return new FlowCollection(type, props); + + case Type.MAP_KEY: + case Type.MAP_VALUE: + case Type.SEQ_ITEM: + return new CollectionItem(type, props); + + case Type.COMMENT: + case Type.PLAIN: + return new PlainValue(type, props); + + case Type.QUOTE_DOUBLE: + return new QuoteDouble(type, props); + + case Type.QUOTE_SINGLE: + return new QuoteSingle(type, props); + + /* istanbul ignore next */ + + default: + return null; + // should never happen + } +} +/** + * @param {boolean} atLineStart - Node starts at beginning of line + * @param {boolean} inFlow - true if currently in a flow context + * @param {boolean} inCollection - true if currently in a collection context + * @param {number} indent - Current level of indentation + * @param {number} lineStart - Start of the current line + * @param {Node} parent - The parent of the node + * @param {string} src - Source of the YAML document + */ + + +var ParseContext = /*#__PURE__*/function () { + function ParseContext() { + var _this = this; + + var orig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + atLineStart = _ref.atLineStart, + inCollection = _ref.inCollection, + inFlow = _ref.inFlow, + indent = _ref.indent, + lineStart = _ref.lineStart, + parent = _ref.parent; + + _classCallCheck(this, ParseContext); + + _defineProperty(this, "parseNode", function (overlay, start) { + if (Node.atDocumentBoundary(_this.src, start)) return null; + var context = new ParseContext(_this, overlay); + + var _context$parseProps = context.parseProps(start), + props = _context$parseProps.props, + type = _context$parseProps.type, + valueStart = _context$parseProps.valueStart; + + var node = createNewNode(type, props); + var offset = node.parse(context, valueStart); + node.range = new Range(start, offset); + /* istanbul ignore if */ + + if (offset <= start) { + // This should never happen, but if it does, let's make sure to at least + // step one character forward to avoid a busy loop. + node.error = new Error("Node#parse consumed no characters"); + node.error.parseEnd = offset; + node.error.source = node; + node.range.end = start + 1; + } + + if (context.nodeStartsCollection(node)) { + if (!node.error && !context.atLineStart && context.parent.type === Type.DOCUMENT) { + node.error = new YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)'); + } + + var collection = new Collection(node); + offset = collection.parse(new ParseContext(context), offset); + collection.range = new Range(start, offset); + return collection; + } + + return node; + }); + + this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false; + this.inCollection = inCollection != null ? inCollection : orig.inCollection || false; + this.inFlow = inFlow != null ? inFlow : orig.inFlow || false; + this.indent = indent != null ? indent : orig.indent; + this.lineStart = lineStart != null ? lineStart : orig.lineStart; + this.parent = parent != null ? parent : orig.parent || {}; + this.root = orig.root; + this.src = orig.src; + } + + _createClass(ParseContext, [{ + key: "nodeStartsCollection", + value: function nodeStartsCollection(node) { + var inCollection = this.inCollection, + inFlow = this.inFlow, + src = this.src; + if (inCollection || inFlow) return false; + if (node instanceof CollectionItem) return true; // check for implicit key + + var offset = node.range.end; + if (src[offset] === '\n' || src[offset - 1] === '\n') return false; + offset = Node.endOfWhiteSpace(src, offset); + return src[offset] === ':'; + } // Anchor and tag are before type, which determines the node implementation + // class; hence this intermediate step. + + }, { + key: "parseProps", + value: function parseProps(offset) { + var inFlow = this.inFlow, + parent = this.parent, + src = this.src; + var props = []; + var lineHasProps = false; + offset = this.atLineStart ? Node.endOfIndent(src, offset) : Node.endOfWhiteSpace(src, offset); + var ch = src[offset]; + + while (ch === Char.ANCHOR || ch === Char.COMMENT || ch === Char.TAG || ch === '\n') { + if (ch === '\n') { + var inEnd = offset; + var lineStart = void 0; + + do { + lineStart = inEnd + 1; + inEnd = Node.endOfIndent(src, lineStart); + } while (src[inEnd] === '\n'); + + var indentDiff = inEnd - (lineStart + this.indent); + var noIndicatorAsIndent = parent.type === Type.SEQ_ITEM && parent.context.atLineStart; + if (src[inEnd] !== '#' && !Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break; + this.atLineStart = true; + this.lineStart = lineStart; + lineHasProps = false; + offset = inEnd; + } else if (ch === Char.COMMENT) { + var end = Node.endOfLine(src, offset + 1); + props.push(new Range(offset, end)); + offset = end; + } else { + var _end = Node.endOfIdentifier(src, offset + 1); + + if (ch === Char.TAG && src[_end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, _end + 13))) { + // Let's presume we're dealing with a YAML 1.0 domain tag here, rather + // than an empty but 'foo.bar' private-tagged node in a flow collection + // followed without whitespace by a plain string starting with a year + // or date divided by something. + _end = Node.endOfIdentifier(src, _end + 5); + } + + props.push(new Range(offset, _end)); + lineHasProps = true; + offset = Node.endOfWhiteSpace(src, _end); + } + + ch = src[offset]; + } // '- &a : b' has an anchor on an empty node + + + if (lineHasProps && ch === ':' && Node.atBlank(src, offset + 1, true)) offset -= 1; + var type = ParseContext.parseType(src, offset, inFlow); + return { + props: props, + type: type, + valueStart: offset + }; + } + /** + * Parses a node from the source + * @param {ParseContext} overlay + * @param {number} start - Index of first non-whitespace character for the node + * @returns {?Node} - null if at a document boundary + */ + + }], [{ + key: "parseType", + value: function parseType(src, offset, inFlow) { + switch (src[offset]) { + case '*': + return Type.ALIAS; + + case '>': + return Type.BLOCK_FOLDED; + + case '|': + return Type.BLOCK_LITERAL; + + case '{': + return Type.FLOW_MAP; + + case '[': + return Type.FLOW_SEQ; + + case '?': + return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_KEY : Type.PLAIN; + + case ':': + return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_VALUE : Type.PLAIN; + + case '-': + return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.SEQ_ITEM : Type.PLAIN; + + case '"': + return Type.QUOTE_DOUBLE; + + case "'": + return Type.QUOTE_SINGLE; + + default: + return Type.PLAIN; + } + } + }]); + + return ParseContext; +}(); + +// Published as 'yaml/parse-cst' +function parse(src) { + var cr = []; + + if (src.indexOf('\r') !== -1) { + src = src.replace(/\r\n?/g, function (match, offset) { + if (match.length > 1) cr.push(offset); + return '\n'; + }); + } + + var documents = []; + var offset = 0; + + do { + var doc = new Document(); + var context = new ParseContext({ + src: src + }); + offset = doc.parse(context, offset); + documents.push(doc); + } while (offset < src.length); + + documents.setOrigRanges = function () { + if (cr.length === 0) return false; + + for (var i = 1; i < cr.length; ++i) { + cr[i] -= i; + } + + var crOffset = 0; + + for (var _i = 0; _i < documents.length; ++_i) { + crOffset = documents[_i].setOrigRanges(cr, crOffset); + } + + cr.splice(0, cr.length); + return true; + }; + + documents.toString = function () { + return documents.join('...\n'); + }; + + return documents; +} + +export { parse }; diff --git a/node_modules/yaml/browser/dist/resolveSeq-492ab440.js b/node_modules/yaml/browser/dist/resolveSeq-492ab440.js new file mode 100644 index 0000000..50c7c19 --- /dev/null +++ b/node_modules/yaml/browser/dist/resolveSeq-492ab440.js @@ -0,0 +1,2419 @@ +import { c as _classCallCheck, j as _inherits, k as _createSuper, b as _createClass, e as _defineProperty, p as _assertThisInitialized, a as _typeof, q as _toArray, T as Type, _ as _createForOfIteratorHelper, l as _get, m as _getPrototypeOf, o as YAMLReferenceError, r as _possibleConstructorReturn, h as _slicedToArray, g as YAMLSemanticError, n as defaultTags, f as YAMLWarning, C as Char, Y as YAMLSyntaxError, P as PlainValue } from './PlainValue-b8036b75.js'; + +function addCommentBefore(str, indent, comment) { + if (!comment) return str; + var cc = comment.replace(/[\s\S]^/gm, "$&".concat(indent, "#")); + return "#".concat(cc, "\n").concat(indent).concat(str); +} +function addComment(str, indent, comment) { + return !comment ? str : comment.indexOf('\n') === -1 ? "".concat(str, " #").concat(comment) : "".concat(str, "\n") + comment.replace(/^/gm, "".concat(indent || '', "#")); +} + +var Node = function Node() { + _classCallCheck(this, Node); +}; + +function toJSON(value, arg, ctx) { + if (Array.isArray(value)) return value.map(function (v, i) { + return toJSON(v, String(i), ctx); + }); + + if (value && typeof value.toJSON === 'function') { + var anchor = ctx && ctx.anchors && ctx.anchors.get(value); + if (anchor) ctx.onCreate = function (res) { + anchor.res = res; + delete ctx.onCreate; + }; + var res = value.toJSON(arg, ctx); + if (anchor && ctx.onCreate) ctx.onCreate(res); + return res; + } + + if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value); + return value; +} + +var Scalar = /*#__PURE__*/function (_Node) { + _inherits(Scalar, _Node); + + var _super = _createSuper(Scalar); + + function Scalar(value) { + var _this; + + _classCallCheck(this, Scalar); + + _this = _super.call(this); + _this.value = value; + return _this; + } + + _createClass(Scalar, [{ + key: "toJSON", + value: function toJSON$1(arg, ctx) { + return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx); + } + }, { + key: "toString", + value: function toString() { + return String(this.value); + } + }]); + + return Scalar; +}(Node); + +function collectionFromPath(schema, path, value) { + var v = value; + + for (var i = path.length - 1; i >= 0; --i) { + var k = path[i]; + + if (Number.isInteger(k) && k >= 0) { + var a = []; + a[k] = v; + v = a; + } else { + var o = {}; + Object.defineProperty(o, k, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + v = o; + } + } + + return schema.createNode(v, false); +} // null, undefined, or an empty non-string iterable (e.g. []) + + +var isEmptyPath = function isEmptyPath(path) { + return path == null || _typeof(path) === 'object' && path[Symbol.iterator]().next().done; +}; +var Collection = /*#__PURE__*/function (_Node) { + _inherits(Collection, _Node); + + var _super = _createSuper(Collection); + + function Collection(schema) { + var _this; + + _classCallCheck(this, Collection); + + _this = _super.call(this); + + _defineProperty(_assertThisInitialized(_this), "items", []); + + _this.schema = schema; + return _this; + } + + _createClass(Collection, [{ + key: "addIn", + value: function addIn(path, value) { + if (isEmptyPath(path)) this.add(value);else { + var _path = _toArray(path), + key = _path[0], + rest = _path.slice(1); + + var node = this.get(key, true); + if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error("Expected YAML collection at ".concat(key, ". Remaining path: ").concat(rest)); + } + } + }, { + key: "deleteIn", + value: function deleteIn(_ref) { + var _ref2 = _toArray(_ref), + key = _ref2[0], + rest = _ref2.slice(1); + + if (rest.length === 0) return this.delete(key); + var node = this.get(key, true); + if (node instanceof Collection) return node.deleteIn(rest);else throw new Error("Expected YAML collection at ".concat(key, ". Remaining path: ").concat(rest)); + } + }, { + key: "getIn", + value: function getIn(_ref3, keepScalar) { + var _ref4 = _toArray(_ref3), + key = _ref4[0], + rest = _ref4.slice(1); + + var node = this.get(key, true); + if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined; + } + }, { + key: "hasAllNullValues", + value: function hasAllNullValues() { + return this.items.every(function (node) { + if (!node || node.type !== 'PAIR') return false; + var n = node.value; + return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag; + }); + } + }, { + key: "hasIn", + value: function hasIn(_ref5) { + var _ref6 = _toArray(_ref5), + key = _ref6[0], + rest = _ref6.slice(1); + + if (rest.length === 0) return this.has(key); + var node = this.get(key, true); + return node instanceof Collection ? node.hasIn(rest) : false; + } + }, { + key: "setIn", + value: function setIn(_ref7, value) { + var _ref8 = _toArray(_ref7), + key = _ref8[0], + rest = _ref8.slice(1); + + if (rest.length === 0) { + this.set(key, value); + } else { + var node = this.get(key, true); + if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error("Expected YAML collection at ".concat(key, ". Remaining path: ").concat(rest)); + } + } // overridden in implementations + + /* istanbul ignore next */ + + }, { + key: "toJSON", + value: function toJSON() { + return null; + } + }, { + key: "toString", + value: function toString(ctx, _ref9, onComment, onChompKeep) { + var _this2 = this; + + var blockItem = _ref9.blockItem, + flowChars = _ref9.flowChars, + isMap = _ref9.isMap, + itemIndent = _ref9.itemIndent; + var _ctx = ctx, + indent = _ctx.indent, + indentStep = _ctx.indentStep, + stringify = _ctx.stringify; + var inFlow = this.type === Type.FLOW_MAP || this.type === Type.FLOW_SEQ || ctx.inFlow; + if (inFlow) itemIndent += indentStep; + var allNullValues = isMap && this.hasAllNullValues(); + ctx = Object.assign({}, ctx, { + allNullValues: allNullValues, + indent: itemIndent, + inFlow: inFlow, + type: null + }); + var chompKeep = false; + var hasItemWithNewLine = false; + var nodes = this.items.reduce(function (nodes, item, i) { + var comment; + + if (item) { + if (!chompKeep && item.spaceBefore) nodes.push({ + type: 'comment', + str: '' + }); + if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(function (line) { + nodes.push({ + type: 'comment', + str: "#".concat(line) + }); + }); + if (item.comment) comment = item.comment; + if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true; + } + + chompKeep = false; + var str = stringify(item, ctx, function () { + return comment = null; + }, function () { + return chompKeep = true; + }); + if (inFlow && !hasItemWithNewLine && str.includes('\n')) hasItemWithNewLine = true; + if (inFlow && i < _this2.items.length - 1) str += ','; + str = addComment(str, itemIndent, comment); + if (chompKeep && (comment || inFlow)) chompKeep = false; + nodes.push({ + type: 'item', + str: str + }); + return nodes; + }, []); + var str; + + if (nodes.length === 0) { + str = flowChars.start + flowChars.end; + } else if (inFlow) { + var start = flowChars.start, + end = flowChars.end; + var strings = nodes.map(function (n) { + return n.str; + }); + + if (hasItemWithNewLine || strings.reduce(function (sum, str) { + return sum + str.length + 2; + }, 2) > Collection.maxFlowStringSingleLineLength) { + str = start; + + var _iterator = _createForOfIteratorHelper(strings), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var s = _step.value; + str += s ? "\n".concat(indentStep).concat(indent).concat(s) : '\n'; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + str += "\n".concat(indent).concat(end); + } else { + str = "".concat(start, " ").concat(strings.join(' '), " ").concat(end); + } + } else { + var _strings = nodes.map(blockItem); + + str = _strings.shift(); + + var _iterator2 = _createForOfIteratorHelper(_strings), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var _s = _step2.value; + str += _s ? "\n".concat(indent).concat(_s) : '\n'; + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + + if (this.comment) { + str += '\n' + this.comment.replace(/^/gm, "".concat(indent, "#")); + if (onComment) onComment(); + } else if (chompKeep && onChompKeep) onChompKeep(); + + return str; + } + }]); + + return Collection; +}(Node); + +_defineProperty(Collection, "maxFlowStringSingleLineLength", 60); + +function asItemIndex(key) { + var idx = key instanceof Scalar ? key.value : key; + if (idx && typeof idx === 'string') idx = Number(idx); + return Number.isInteger(idx) && idx >= 0 ? idx : null; +} + +var YAMLSeq = /*#__PURE__*/function (_Collection) { + _inherits(YAMLSeq, _Collection); + + var _super = _createSuper(YAMLSeq); + + function YAMLSeq() { + _classCallCheck(this, YAMLSeq); + + return _super.apply(this, arguments); + } + + _createClass(YAMLSeq, [{ + key: "add", + value: function add(value) { + this.items.push(value); + } + }, { + key: "delete", + value: function _delete(key) { + var idx = asItemIndex(key); + if (typeof idx !== 'number') return false; + var del = this.items.splice(idx, 1); + return del.length > 0; + } + }, { + key: "get", + value: function get(key, keepScalar) { + var idx = asItemIndex(key); + if (typeof idx !== 'number') return undefined; + var it = this.items[idx]; + return !keepScalar && it instanceof Scalar ? it.value : it; + } + }, { + key: "has", + value: function has(key) { + var idx = asItemIndex(key); + return typeof idx === 'number' && idx < this.items.length; + } + }, { + key: "set", + value: function set(key, value) { + var idx = asItemIndex(key); + if (typeof idx !== 'number') throw new Error("Expected a valid index, not ".concat(key, ".")); + this.items[idx] = value; + } + }, { + key: "toJSON", + value: function toJSON$1(_, ctx) { + var seq = []; + if (ctx && ctx.onCreate) ctx.onCreate(seq); + var i = 0; + + var _iterator = _createForOfIteratorHelper(this.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + seq.push(toJSON(item, String(i++), ctx)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return seq; + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + return _get(_getPrototypeOf(YAMLSeq.prototype), "toString", this).call(this, ctx, { + blockItem: function blockItem(n) { + return n.type === 'comment' ? n.str : "- ".concat(n.str); + }, + flowChars: { + start: '[', + end: ']' + }, + isMap: false, + itemIndent: (ctx.indent || '') + ' ' + }, onComment, onChompKeep); + } + }]); + + return YAMLSeq; +}(Collection); + +var stringifyKey = function stringifyKey(key, jsKey, ctx) { + if (jsKey === null) return ''; + if (_typeof(jsKey) !== 'object') return String(jsKey); + if (key instanceof Node && ctx && ctx.doc) return key.toString({ + anchors: Object.create(null), + doc: ctx.doc, + indent: '', + indentStep: ctx.indentStep, + inFlow: true, + inStringifyKey: true, + stringify: ctx.stringify + }); + return JSON.stringify(jsKey); +}; + +var Pair = /*#__PURE__*/function (_Node) { + _inherits(Pair, _Node); + + var _super = _createSuper(Pair); + + function Pair(key) { + var _this; + + var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, Pair); + + _this = _super.call(this); + _this.key = key; + _this.value = value; + _this.type = Pair.Type.PAIR; + return _this; + } + + _createClass(Pair, [{ + key: "commentBefore", + get: function get() { + return this.key instanceof Node ? this.key.commentBefore : undefined; + }, + set: function set(cb) { + if (this.key == null) this.key = new Scalar(null); + if (this.key instanceof Node) this.key.commentBefore = cb;else { + var msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.'; + throw new Error(msg); + } + } + }, { + key: "addToJSMap", + value: function addToJSMap(ctx, map) { + var key = toJSON(this.key, '', ctx); + + if (map instanceof Map) { + var value = toJSON(this.value, key, ctx); + map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else { + var stringKey = stringifyKey(this.key, key, ctx); + + var _value = toJSON(this.value, stringKey, ctx); + + if (stringKey in map) Object.defineProperty(map, stringKey, { + value: _value, + writable: true, + enumerable: true, + configurable: true + });else map[stringKey] = _value; + } + + return map; + } + }, { + key: "toJSON", + value: function toJSON(_, ctx) { + var pair = ctx && ctx.mapAsMap ? new Map() : {}; + return this.addToJSMap(ctx, pair); + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx || !ctx.doc) return JSON.stringify(this); + var _ctx$doc$options = ctx.doc.options, + indentSize = _ctx$doc$options.indent, + indentSeq = _ctx$doc$options.indentSeq, + simpleKeys = _ctx$doc$options.simpleKeys; + var key = this.key, + value = this.value; + var keyComment = key instanceof Node && key.comment; + + if (simpleKeys) { + if (keyComment) { + throw new Error('With simple keys, key nodes cannot have comments'); + } + + if (key instanceof Collection) { + var msg = 'With simple keys, collection cannot be used as a key value'; + throw new Error(msg); + } + } + + var explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === Type.BLOCK_FOLDED || key.type === Type.BLOCK_LITERAL : _typeof(key) === 'object')); + var _ctx = ctx, + doc = _ctx.doc, + indent = _ctx.indent, + indentStep = _ctx.indentStep, + stringify = _ctx.stringify; + ctx = Object.assign({}, ctx, { + implicitKey: !explicitKey, + indent: indent + indentStep + }); + var chompKeep = false; + var str = stringify(key, ctx, function () { + return keyComment = null; + }, function () { + return chompKeep = true; + }); + str = addComment(str, ctx.indent, keyComment); + + if (!explicitKey && str.length > 1024) { + if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters'); + explicitKey = true; + } + + if (ctx.allNullValues && !simpleKeys) { + if (this.comment) { + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } else if (chompKeep && !keyComment && onChompKeep) onChompKeep(); + + return ctx.inFlow && !explicitKey ? str : "? ".concat(str); + } + + str = explicitKey ? "? ".concat(str, "\n").concat(indent, ":") : "".concat(str, ":"); + + if (this.comment) { + // expected (but not strictly required) to be a single-line comment + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } + + var vcb = ''; + var valueComment = null; + + if (value instanceof Node) { + if (value.spaceBefore) vcb = '\n'; + + if (value.commentBefore) { + var cs = value.commentBefore.replace(/^/gm, "".concat(ctx.indent, "#")); + vcb += "\n".concat(cs); + } + + valueComment = value.comment; + } else if (value && _typeof(value) === 'object') { + value = doc.schema.createNode(value, true); + } + + ctx.implicitKey = false; + if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1; + chompKeep = false; + + if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) { + // If indentSeq === false, consider '- ' as part of indentation where possible + ctx.indent = ctx.indent.substr(2); + } + + var valueStr = stringify(value, ctx, function () { + return valueComment = null; + }, function () { + return chompKeep = true; + }); + var ws = ' '; + + if (vcb || this.comment) { + ws = "".concat(vcb, "\n").concat(ctx.indent); + } else if (!explicitKey && value instanceof Collection) { + var flow = valueStr[0] === '[' || valueStr[0] === '{'; + if (!flow || valueStr.includes('\n')) ws = "\n".concat(ctx.indent); + } else if (valueStr[0] === '\n') ws = ''; + + if (chompKeep && !valueComment && onChompKeep) onChompKeep(); + return addComment(str + ws + valueStr, ctx.indent, valueComment); + } + }]); + + return Pair; +}(Node); + +_defineProperty(Pair, "Type", { + PAIR: 'PAIR', + MERGE_PAIR: 'MERGE_PAIR' +}); + +var getAliasCount = function getAliasCount(node, anchors) { + if (node instanceof Alias) { + var anchor = anchors.get(node.source); + return anchor.count * anchor.aliasCount; + } else if (node instanceof Collection) { + var count = 0; + + var _iterator = _createForOfIteratorHelper(node.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + var c = getAliasCount(item, anchors); + if (c > count) count = c; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return count; + } else if (node instanceof Pair) { + var kc = getAliasCount(node.key, anchors); + var vc = getAliasCount(node.value, anchors); + return Math.max(kc, vc); + } + + return 1; +}; + +var Alias = /*#__PURE__*/function (_Node) { + _inherits(Alias, _Node); + + var _super = _createSuper(Alias); + + function Alias(source) { + var _this; + + _classCallCheck(this, Alias); + + _this = _super.call(this); + _this.source = source; + _this.type = Type.ALIAS; + return _this; + } + + _createClass(Alias, [{ + key: "tag", + set: function set(t) { + throw new Error('Alias nodes cannot have tags'); + } + }, { + key: "toJSON", + value: function toJSON$1(arg, ctx) { + if (!ctx) return toJSON(this.source, arg, ctx); + var anchors = ctx.anchors, + maxAliasCount = ctx.maxAliasCount; + var anchor = anchors.get(this.source); + /* istanbul ignore if */ + + if (!anchor || anchor.res === undefined) { + var msg = 'This should not happen: Alias anchor was not resolved?'; + if (this.cstNode) throw new YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg); + } + + if (maxAliasCount >= 0) { + anchor.count += 1; + if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors); + + if (anchor.count * anchor.aliasCount > maxAliasCount) { + var _msg = 'Excessive alias count indicates a resource exhaustion attack'; + if (this.cstNode) throw new YAMLReferenceError(this.cstNode, _msg);else throw new ReferenceError(_msg); + } + } + + return anchor.res; + } // Only called when stringifying an alias mapping key while constructing + // Object output. + + }, { + key: "toString", + value: function toString(ctx) { + return Alias.stringify(this, ctx); + } + }], [{ + key: "stringify", + value: function stringify(_ref, _ref2) { + var range = _ref.range, + source = _ref.source; + var anchors = _ref2.anchors, + doc = _ref2.doc, + implicitKey = _ref2.implicitKey, + inStringifyKey = _ref2.inStringifyKey; + var anchor = Object.keys(anchors).find(function (a) { + return anchors[a] === source; + }); + if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName(); + if (anchor) return "*".concat(anchor).concat(implicitKey ? ' ' : ''); + var msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node'; + throw new Error("".concat(msg, " [").concat(range, "]")); + } + }]); + + return Alias; +}(Node); + +_defineProperty(Alias, "default", true); + +function findPair(items, key) { + var k = key instanceof Scalar ? key.value : key; + + var _iterator = _createForOfIteratorHelper(items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var it = _step.value; + + if (it instanceof Pair) { + if (it.key === key || it.key === k) return it; + if (it.key && it.key.value === k) return it; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return undefined; +} +var YAMLMap = /*#__PURE__*/function (_Collection) { + _inherits(YAMLMap, _Collection); + + var _super = _createSuper(YAMLMap); + + function YAMLMap() { + _classCallCheck(this, YAMLMap); + + return _super.apply(this, arguments); + } + + _createClass(YAMLMap, [{ + key: "add", + value: function add(pair, overwrite) { + if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value); + var prev = findPair(this.items, pair.key); + var sortEntries = this.schema && this.schema.sortMapEntries; + + if (prev) { + if (overwrite) prev.value = pair.value;else throw new Error("Key ".concat(pair.key, " already set")); + } else if (sortEntries) { + var i = this.items.findIndex(function (item) { + return sortEntries(pair, item) < 0; + }); + if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair); + } else { + this.items.push(pair); + } + } + }, { + key: "delete", + value: function _delete(key) { + var it = findPair(this.items, key); + if (!it) return false; + var del = this.items.splice(this.items.indexOf(it), 1); + return del.length > 0; + } + }, { + key: "get", + value: function get(key, keepScalar) { + var it = findPair(this.items, key); + var node = it && it.value; + return !keepScalar && node instanceof Scalar ? node.value : node; + } + }, { + key: "has", + value: function has(key) { + return !!findPair(this.items, key); + } + }, { + key: "set", + value: function set(key, value) { + this.add(new Pair(key, value), true); + } + /** + * @param {*} arg ignored + * @param {*} ctx Conversion context, originally set in Document#toJSON() + * @param {Class} Type If set, forces the returned collection type + * @returns {*} Instance of Type, Map, or Object + */ + + }, { + key: "toJSON", + value: function toJSON(_, ctx, Type) { + var map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {}; + if (ctx && ctx.onCreate) ctx.onCreate(map); + + var _iterator2 = _createForOfIteratorHelper(this.items), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var item = _step2.value; + item.addToJSMap(ctx, map); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return map; + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + + var _iterator3 = _createForOfIteratorHelper(this.items), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var item = _step3.value; + if (!(item instanceof Pair)) throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(item), " instead")); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + + return _get(_getPrototypeOf(YAMLMap.prototype), "toString", this).call(this, ctx, { + blockItem: function blockItem(n) { + return n.str; + }, + flowChars: { + start: '{', + end: '}' + }, + isMap: true, + itemIndent: ctx.indent || '' + }, onComment, onChompKeep); + } + }]); + + return YAMLMap; +}(Collection); + +var MERGE_KEY = '<<'; +var Merge = /*#__PURE__*/function (_Pair) { + _inherits(Merge, _Pair); + + var _super = _createSuper(Merge); + + function Merge(pair) { + var _this; + + _classCallCheck(this, Merge); + + if (pair instanceof Pair) { + var seq = pair.value; + + if (!(seq instanceof YAMLSeq)) { + seq = new YAMLSeq(); + seq.items.push(pair.value); + seq.range = pair.value.range; + } + + _this = _super.call(this, pair.key, seq); + _this.range = pair.range; + } else { + _this = _super.call(this, new Scalar(MERGE_KEY), new YAMLSeq()); + } + + _this.type = Pair.Type.MERGE_PAIR; + return _possibleConstructorReturn(_this); + } // If the value associated with a merge key is a single mapping node, each of + // its key/value pairs is inserted into the current mapping, unless the key + // already exists in it. If the value associated with the merge key is a + // sequence, then this sequence is expected to contain mapping nodes and each + // of these nodes is merged in turn according to its order in the sequence. + // Keys in mapping nodes earlier in the sequence override keys specified in + // later mapping nodes. -- http://yaml.org/type/merge.html + + + _createClass(Merge, [{ + key: "addToJSMap", + value: function addToJSMap(ctx, map) { + var _iterator = _createForOfIteratorHelper(this.value.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var source = _step.value.source; + if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps'); + var srcMap = source.toJSON(null, ctx, Map); + + var _iterator2 = _createForOfIteratorHelper(srcMap), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var _step2$value = _slicedToArray(_step2.value, 2), + key = _step2$value[0], + value = _step2$value[1]; + + if (map instanceof Map) { + if (!map.has(key)) map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else if (!Object.prototype.hasOwnProperty.call(map, key)) { + Object.defineProperty(map, key, { + value: value, + writable: true, + enumerable: true, + configurable: true + }); + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return map; + } + }, { + key: "toString", + value: function toString(ctx, onComment) { + var seq = this.value; + if (seq.items.length > 1) return _get(_getPrototypeOf(Merge.prototype), "toString", this).call(this, ctx, onComment); + this.value = seq.items[0]; + + var str = _get(_getPrototypeOf(Merge.prototype), "toString", this).call(this, ctx, onComment); + + this.value = seq; + return str; + } + }]); + + return Merge; +}(Pair); + +var binaryOptions = { + defaultType: Type.BLOCK_LITERAL, + lineWidth: 76 +}; +var boolOptions = { + trueStr: 'true', + falseStr: 'false' +}; +var intOptions = { + asBigInt: false +}; +var nullOptions = { + nullStr: 'null' +}; +var strOptions = { + defaultType: Type.PLAIN, + doubleQuoted: { + jsonEncoding: false, + minMultiLineLength: 40 + }, + fold: { + lineWidth: 80, + minContentWidth: 20 + } +}; + +function resolveScalar(str, tags, scalarFallback) { + var _iterator = _createForOfIteratorHelper(tags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _step.value, + format = _step$value.format, + test = _step$value.test, + resolve = _step$value.resolve; + + if (test) { + var match = str.match(test); + + if (match) { + var res = resolve.apply(null, match); + if (!(res instanceof Scalar)) res = new Scalar(res); + if (format) res.format = format; + return res; + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + if (scalarFallback) str = scalarFallback(str); + return new Scalar(str); +} + +var FOLD_FLOW = 'flow'; +var FOLD_BLOCK = 'block'; +var FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line +// returns index of last newline in more-indented block + +var consumeMoreIndentedLines = function consumeMoreIndentedLines(text, i) { + var ch = text[i + 1]; + + while (ch === ' ' || ch === '\t') { + do { + ch = text[i += 1]; + } while (ch && ch !== '\n'); + + ch = text[i + 1]; + } + + return i; +}; +/** + * Tries to keep input at up to `lineWidth` characters, splitting only on spaces + * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are + * terminated with `\n` and started with `indent`. + * + * @param {string} text + * @param {string} indent + * @param {string} [mode='flow'] `'block'` prevents more-indented lines + * from being folded; `'quoted'` allows for `\` escapes, including escaped + * newlines + * @param {Object} options + * @param {number} [options.indentAtStart] Accounts for leading contents on + * the first line, defaulting to `indent.length` + * @param {number} [options.lineWidth=80] + * @param {number} [options.minContentWidth=20] Allow highly indented lines to + * stretch the line width or indent content from the start + * @param {function} options.onFold Called once if the text is folded + * @param {function} options.onFold Called once if any line of text exceeds + * lineWidth characters + */ + + +function foldFlowLines(text, indent, mode, _ref) { + var indentAtStart = _ref.indentAtStart, + _ref$lineWidth = _ref.lineWidth, + lineWidth = _ref$lineWidth === void 0 ? 80 : _ref$lineWidth, + _ref$minContentWidth = _ref.minContentWidth, + minContentWidth = _ref$minContentWidth === void 0 ? 20 : _ref$minContentWidth, + onFold = _ref.onFold, + onOverflow = _ref.onOverflow; + if (!lineWidth || lineWidth < 0) return text; + var endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length); + if (text.length <= endStep) return text; + var folds = []; + var escapedFolds = {}; + var end = lineWidth - indent.length; + + if (typeof indentAtStart === 'number') { + if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart; + } + + var split = undefined; + var prev = undefined; + var overflow = false; + var i = -1; + var escStart = -1; + var escEnd = -1; + + if (mode === FOLD_BLOCK) { + i = consumeMoreIndentedLines(text, i); + if (i !== -1) end = i + endStep; + } + + for (var ch; ch = text[i += 1];) { + if (mode === FOLD_QUOTED && ch === '\\') { + escStart = i; + + switch (text[i + 1]) { + case 'x': + i += 3; + break; + + case 'u': + i += 5; + break; + + case 'U': + i += 9; + break; + + default: + i += 1; + } + + escEnd = i; + } + + if (ch === '\n') { + if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i); + end = i + endStep; + split = undefined; + } else { + if (ch === ' ' && prev && prev !== ' ' && prev !== '\n' && prev !== '\t') { + // space surrounded by non-space can be replaced with newline + indent + var next = text[i + 1]; + if (next && next !== ' ' && next !== '\n' && next !== '\t') split = i; + } + + if (i >= end) { + if (split) { + folds.push(split); + end = split + endStep; + split = undefined; + } else if (mode === FOLD_QUOTED) { + // white-space collected at end may stretch past lineWidth + while (prev === ' ' || prev === '\t') { + prev = ch; + ch = text[i += 1]; + overflow = true; + } // Account for newline escape, but don't break preceding escape + + + var j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string + + if (escapedFolds[j]) return text; + folds.push(j); + escapedFolds[j] = true; + end = j + endStep; + split = undefined; + } else { + overflow = true; + } + } + } + + prev = ch; + } + + if (overflow && onOverflow) onOverflow(); + if (folds.length === 0) return text; + if (onFold) onFold(); + var res = text.slice(0, folds[0]); + + for (var _i = 0; _i < folds.length; ++_i) { + var fold = folds[_i]; + + var _end = folds[_i + 1] || text.length; + + if (fold === 0) res = "\n".concat(indent).concat(text.slice(0, _end));else { + if (mode === FOLD_QUOTED && escapedFolds[fold]) res += "".concat(text[fold], "\\"); + res += "\n".concat(indent).concat(text.slice(fold + 1, _end)); + } + } + + return res; +} + +var getFoldOptions = function getFoldOptions(_ref) { + var indentAtStart = _ref.indentAtStart; + return indentAtStart ? Object.assign({ + indentAtStart: indentAtStart + }, strOptions.fold) : strOptions.fold; +}; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will +// presume that's starting a new document. + + +var containsDocumentMarker = function containsDocumentMarker(str) { + return /^(%|---|\.\.\.)/m.test(str); +}; + +function lineLengthOverLimit(str, lineWidth, indentLength) { + if (!lineWidth || lineWidth < 0) return false; + var limit = lineWidth - indentLength; + var strLen = str.length; + if (strLen <= limit) return false; + + for (var i = 0, start = 0; i < strLen; ++i) { + if (str[i] === '\n') { + if (i - start > limit) return true; + start = i + 1; + if (strLen - start <= limit) return false; + } + } + + return true; +} + +function doubleQuotedString(value, ctx) { + var implicitKey = ctx.implicitKey; + var _strOptions$doubleQuo = strOptions.doubleQuoted, + jsonEncoding = _strOptions$doubleQuo.jsonEncoding, + minMultiLineLength = _strOptions$doubleQuo.minMultiLineLength; + var json = JSON.stringify(value); + if (jsonEncoding) return json; + var indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + var str = ''; + var start = 0; + + for (var i = 0, ch = json[i]; ch; ch = json[++i]) { + if (ch === ' ' && json[i + 1] === '\\' && json[i + 2] === 'n') { + // space before newline needs to be escaped to not be folded + str += json.slice(start, i) + '\\ '; + i += 1; + start = i; + ch = '\\'; + } + + if (ch === '\\') switch (json[i + 1]) { + case 'u': + { + str += json.slice(start, i); + var code = json.substr(i + 2, 4); + + switch (code) { + case '0000': + str += '\\0'; + break; + + case '0007': + str += '\\a'; + break; + + case '000b': + str += '\\v'; + break; + + case '001b': + str += '\\e'; + break; + + case '0085': + str += '\\N'; + break; + + case '00a0': + str += '\\_'; + break; + + case '2028': + str += '\\L'; + break; + + case '2029': + str += '\\P'; + break; + + default: + if (code.substr(0, 2) === '00') str += '\\x' + code.substr(2);else str += json.substr(i, 6); + } + + i += 5; + start = i + 1; + } + break; + + case 'n': + if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) { + i += 1; + } else { + // folding will eat first newline + str += json.slice(start, i) + '\n\n'; + + while (json[i + 2] === '\\' && json[i + 3] === 'n' && json[i + 4] !== '"') { + str += '\n'; + i += 2; + } + + str += indent; // space after newline needs to be escaped to not be folded + + if (json[i + 2] === ' ') str += '\\'; + i += 1; + start = i + 1; + } + + break; + + default: + i += 1; + } + } + + str = start ? str + json.slice(start) : json; + return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx)); +} + +function singleQuotedString(value, ctx) { + if (ctx.implicitKey) { + if (/\n/.test(value)) return doubleQuotedString(value, ctx); + } else { + // single quoted string can't have leading or trailing whitespace around newline + if (/[ \t]\n|\n[ \t]/.test(value)) return doubleQuotedString(value, ctx); + } + + var indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + var res = "'" + value.replace(/'/g, "''").replace(/\n+/g, "$&\n".concat(indent)) + "'"; + return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx)); +} + +function blockString(_ref2, ctx, onComment, onChompKeep) { + var comment = _ref2.comment, + type = _ref2.type, + value = _ref2.value; + + // 1. Block can't end in whitespace unless the last line is non-empty. + // 2. Strings consisting of only whitespace are best rendered explicitly. + if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) { + return doubleQuotedString(value, ctx); + } + + var indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : ''); + var indentSize = indent ? '2' : '1'; // root is at -1 + + var literal = type === Type.BLOCK_FOLDED ? false : type === Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length); + var header = literal ? '|' : '>'; + if (!value) return header + '\n'; + var wsStart = ''; + var wsEnd = ''; + value = value.replace(/[\n\t ]*$/, function (ws) { + var n = ws.indexOf('\n'); + + if (n === -1) { + header += '-'; // strip + } else if (value === ws || n !== ws.length - 1) { + header += '+'; // keep + + if (onChompKeep) onChompKeep(); + } + + wsEnd = ws.replace(/\n$/, ''); + return ''; + }).replace(/^[\n ]*/, function (ws) { + if (ws.indexOf(' ') !== -1) header += indentSize; + var m = ws.match(/ +$/); + + if (m) { + wsStart = ws.slice(0, -m[0].length); + return m[0]; + } else { + wsStart = ws; + return ''; + } + }); + if (wsEnd) wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, "$&".concat(indent)); + if (wsStart) wsStart = wsStart.replace(/\n+/g, "$&".concat(indent)); + + if (comment) { + header += ' #' + comment.replace(/ ?[\r\n]+/g, ' '); + if (onComment) onComment(); + } + + if (!value) return "".concat(header).concat(indentSize, "\n").concat(indent).concat(wsEnd); + + if (literal) { + value = value.replace(/\n+/g, "$&".concat(indent)); + return "".concat(header, "\n").concat(indent).concat(wsStart).concat(value).concat(wsEnd); + } + + value = value.replace(/\n+/g, '\n$&').replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, '$1$2') // more-indented lines aren't folded + // ^ ind.line ^ empty ^ capture next empty lines only at end of indent + .replace(/\n+/g, "$&".concat(indent)); + var body = foldFlowLines("".concat(wsStart).concat(value).concat(wsEnd), indent, FOLD_BLOCK, strOptions.fold); + return "".concat(header, "\n").concat(indent).concat(body); +} + +function plainString(item, ctx, onComment, onChompKeep) { + var comment = item.comment, + type = item.type, + value = item.value; + var actualString = ctx.actualString, + implicitKey = ctx.implicitKey, + indent = ctx.indent, + inFlow = ctx.inFlow; + + if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) { + return doubleQuotedString(value, ctx); + } + + if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) { + // not allowed: + // - empty string, '-' or '?' + // - start with an indicator character (except [?:-]) or /[?-] / + // - '\n ', ': ' or ' \n' anywhere + // - '#' not preceded by a non-space char + // - end with ' ' or ':' + return implicitKey || inFlow || value.indexOf('\n') === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep); + } + + if (!implicitKey && !inFlow && type !== Type.PLAIN && value.indexOf('\n') !== -1) { + // Where allowed & type not set explicitly, prefer block style for multiline strings + return blockString(item, ctx, onComment, onChompKeep); + } + + if (indent === '' && containsDocumentMarker(value)) { + ctx.forceBlockIndent = true; + return blockString(item, ctx, onComment, onChompKeep); + } + + var str = value.replace(/\n+/g, "$&\n".concat(indent)); // Verify that output will be parsed as a string, as e.g. plain numbers and + // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'), + // and others in v1.1. + + if (actualString) { + var tags = ctx.doc.schema.tags; + var resolved = resolveScalar(str, tags, tags.scalarFallback).value; + if (typeof resolved !== 'string') return doubleQuotedString(value, ctx); + } + + var body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx)); + + if (comment && !inFlow && (body.indexOf('\n') !== -1 || comment.indexOf('\n') !== -1)) { + if (onComment) onComment(); + return addCommentBefore(body, indent, comment); + } + + return body; +} + +function stringifyString(item, ctx, onComment, onChompKeep) { + var defaultType = strOptions.defaultType; + var implicitKey = ctx.implicitKey, + inFlow = ctx.inFlow; + var _item = item, + type = _item.type, + value = _item.value; + + if (typeof value !== 'string') { + value = String(value); + item = Object.assign({}, item, { + value: value + }); + } + + var _stringify = function _stringify(_type) { + switch (_type) { + case Type.BLOCK_FOLDED: + case Type.BLOCK_LITERAL: + return blockString(item, ctx, onComment, onChompKeep); + + case Type.QUOTE_DOUBLE: + return doubleQuotedString(value, ctx); + + case Type.QUOTE_SINGLE: + return singleQuotedString(value, ctx); + + case Type.PLAIN: + return plainString(item, ctx, onComment, onChompKeep); + + default: + return null; + } + }; + + if (type !== Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) { + // force double quotes on control characters + type = Type.QUOTE_DOUBLE; + } else if ((implicitKey || inFlow) && (type === Type.BLOCK_FOLDED || type === Type.BLOCK_LITERAL)) { + // should not happen; blocks are not valid inside flow containers + type = Type.QUOTE_DOUBLE; + } + + var res = _stringify(type); + + if (res === null) { + res = _stringify(defaultType); + if (res === null) throw new Error("Unsupported default string type ".concat(defaultType)); + } + + return res; +} + +function stringifyNumber(_ref) { + var format = _ref.format, + minFractionDigits = _ref.minFractionDigits, + tag = _ref.tag, + value = _ref.value; + if (typeof value === 'bigint') return String(value); + if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf'; + var n = JSON.stringify(value); + + if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\d/.test(n)) { + var i = n.indexOf('.'); + + if (i < 0) { + i = n.length; + n += '.'; + } + + var d = minFractionDigits - (n.length - i - 1); + + while (d-- > 0) { + n += '0'; + } + } + + return n; +} + +function checkFlowCollectionEnd(errors, cst) { + var char, name; + + switch (cst.type) { + case Type.FLOW_MAP: + char = '}'; + name = 'flow map'; + break; + + case Type.FLOW_SEQ: + char = ']'; + name = 'flow sequence'; + break; + + default: + errors.push(new YAMLSemanticError(cst, 'Not a flow collection!?')); + return; + } + + var lastItem; + + for (var i = cst.items.length - 1; i >= 0; --i) { + var item = cst.items[i]; + + if (!item || item.type !== Type.COMMENT) { + lastItem = item; + break; + } + } + + if (lastItem && lastItem.char !== char) { + var msg = "Expected ".concat(name, " to end with ").concat(char); + var err; + + if (typeof lastItem.offset === 'number') { + err = new YAMLSemanticError(cst, msg); + err.offset = lastItem.offset + 1; + } else { + err = new YAMLSemanticError(lastItem, msg); + if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start; + } + + errors.push(err); + } +} +function checkFlowCommentSpace(errors, comment) { + var prev = comment.context.src[comment.range.start - 1]; + + if (prev !== '\n' && prev !== '\t' && prev !== ' ') { + var msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new YAMLSemanticError(comment, msg)); + } +} +function getLongKeyError(source, key) { + var sk = String(key); + var k = sk.substr(0, 8) + '...' + sk.substr(-8); + return new YAMLSemanticError(source, "The \"".concat(k, "\" key is too long")); +} +function resolveComments(collection, comments) { + var _iterator = _createForOfIteratorHelper(comments), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _step.value, + afterKey = _step$value.afterKey, + before = _step$value.before, + comment = _step$value.comment; + var item = collection.items[before]; + + if (!item) { + if (comment !== undefined) { + if (collection.comment) collection.comment += '\n' + comment;else collection.comment = comment; + } + } else { + if (afterKey && item.value) item = item.value; + + if (comment === undefined) { + if (afterKey || !item.commentBefore) item.spaceBefore = true; + } else { + if (item.commentBefore) item.commentBefore += '\n' + comment;else item.commentBefore = comment; + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } +} + +// on error, will return { str: string, errors: Error[] } +function resolveString(doc, node) { + var res = node.strValue; + if (!res) return ''; + if (typeof res === 'string') return res; + res.errors.forEach(function (error) { + if (!error.source) error.source = node; + doc.errors.push(error); + }); + return res.str; +} + +function resolveTagHandle(doc, node) { + var _node$tag = node.tag, + handle = _node$tag.handle, + suffix = _node$tag.suffix; + var prefix = doc.tagPrefixes.find(function (p) { + return p.handle === handle; + }); + + if (!prefix) { + var dtp = doc.getDefaults().tagPrefixes; + if (dtp) prefix = dtp.find(function (p) { + return p.handle === handle; + }); + if (!prefix) throw new YAMLSemanticError(node, "The ".concat(handle, " tag handle is non-default and was not declared.")); + } + + if (!suffix) throw new YAMLSemanticError(node, "The ".concat(handle, " tag has no suffix.")); + + if (handle === '!' && (doc.version || doc.options.version) === '1.0') { + if (suffix[0] === '^') { + doc.warnings.push(new YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported')); + return suffix; + } + + if (/[:/]/.test(suffix)) { + // word/foo -> tag:word.yaml.org,2002:foo + var vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i); + return vocab ? "tag:".concat(vocab[1], ".yaml.org,2002:").concat(vocab[2]) : "tag:".concat(suffix); + } + } + + return prefix.prefix + decodeURIComponent(suffix); +} + +function resolveTagName(doc, node) { + var tag = node.tag, + type = node.type; + var nonSpecific = false; + + if (tag) { + var handle = tag.handle, + suffix = tag.suffix, + verbatim = tag.verbatim; + + if (verbatim) { + if (verbatim !== '!' && verbatim !== '!!') return verbatim; + var msg = "Verbatim tags aren't resolved, so ".concat(verbatim, " is invalid."); + doc.errors.push(new YAMLSemanticError(node, msg)); + } else if (handle === '!' && !suffix) { + nonSpecific = true; + } else { + try { + return resolveTagHandle(doc, node); + } catch (error) { + doc.errors.push(error); + } + } + } + + switch (type) { + case Type.BLOCK_FOLDED: + case Type.BLOCK_LITERAL: + case Type.QUOTE_DOUBLE: + case Type.QUOTE_SINGLE: + return defaultTags.STR; + + case Type.FLOW_MAP: + case Type.MAP: + return defaultTags.MAP; + + case Type.FLOW_SEQ: + case Type.SEQ: + return defaultTags.SEQ; + + case Type.PLAIN: + return nonSpecific ? defaultTags.STR : null; + + default: + return null; + } +} + +function resolveByTagName(doc, node, tagName) { + var tags = doc.schema.tags; + var matchWithTest = []; + + var _iterator = _createForOfIteratorHelper(tags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var tag = _step.value; + + if (tag.tag === tagName) { + if (tag.test) matchWithTest.push(tag);else { + var res = tag.resolve(doc, node); + return res instanceof Collection ? res : new Scalar(res); + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + var str = resolveString(doc, node); + if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback); + return null; +} + +function getFallbackTagName(_ref) { + var type = _ref.type; + + switch (type) { + case Type.FLOW_MAP: + case Type.MAP: + return defaultTags.MAP; + + case Type.FLOW_SEQ: + case Type.SEQ: + return defaultTags.SEQ; + + default: + return defaultTags.STR; + } +} + +function resolveTag(doc, node, tagName) { + try { + var res = resolveByTagName(doc, node, tagName); + + if (res) { + if (tagName && node.tag) res.tag = tagName; + return res; + } + } catch (error) { + /* istanbul ignore if */ + if (!error.source) error.source = node; + doc.errors.push(error); + return null; + } + + try { + var fallback = getFallbackTagName(node); + if (!fallback) throw new Error("The tag ".concat(tagName, " is unavailable")); + var msg = "The tag ".concat(tagName, " is unavailable, falling back to ").concat(fallback); + doc.warnings.push(new YAMLWarning(node, msg)); + + var _res = resolveByTagName(doc, node, fallback); + + _res.tag = tagName; + return _res; + } catch (error) { + var refError = new YAMLReferenceError(node, error.message); + refError.stack = error.stack; + doc.errors.push(refError); + return null; + } +} + +var isCollectionItem = function isCollectionItem(node) { + if (!node) return false; + var type = node.type; + return type === Type.MAP_KEY || type === Type.MAP_VALUE || type === Type.SEQ_ITEM; +}; + +function resolveNodeProps(errors, node) { + var comments = { + before: [], + after: [] + }; + var hasAnchor = false; + var hasTag = false; + var props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props; + + var _iterator = _createForOfIteratorHelper(props), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _step.value, + start = _step$value.start, + end = _step$value.end; + + switch (node.context.src[start]) { + case Char.COMMENT: + { + if (!node.commentHasRequiredWhitespace(start)) { + var msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new YAMLSemanticError(node, msg)); + } + + var header = node.header, + valueRange = node.valueRange; + var cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before; + cc.push(node.context.src.slice(start + 1, end)); + break; + } + // Actual anchor & tag resolution is handled by schema, here we just complain + + case Char.ANCHOR: + if (hasAnchor) { + var _msg = 'A node can have at most one anchor'; + errors.push(new YAMLSemanticError(node, _msg)); + } + + hasAnchor = true; + break; + + case Char.TAG: + if (hasTag) { + var _msg2 = 'A node can have at most one tag'; + errors.push(new YAMLSemanticError(node, _msg2)); + } + + hasTag = true; + break; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return { + comments: comments, + hasAnchor: hasAnchor, + hasTag: hasTag + }; +} + +function resolveNodeValue(doc, node) { + var anchors = doc.anchors, + errors = doc.errors, + schema = doc.schema; + + if (node.type === Type.ALIAS) { + var name = node.rawValue; + var src = anchors.getNode(name); + + if (!src) { + var msg = "Aliased anchor not found: ".concat(name); + errors.push(new YAMLReferenceError(node, msg)); + return null; + } // Lazy resolution for circular references + + + var res = new Alias(src); + + anchors._cstAliases.push(res); + + return res; + } + + var tagName = resolveTagName(doc, node); + if (tagName) return resolveTag(doc, node, tagName); + + if (node.type !== Type.PLAIN) { + var _msg3 = "Failed to resolve ".concat(node.type, " node here"); + + errors.push(new YAMLSyntaxError(node, _msg3)); + return null; + } + + try { + var str = resolveString(doc, node); + return resolveScalar(str, schema.tags, schema.tags.scalarFallback); + } catch (error) { + if (!error.source) error.source = node; + errors.push(error); + return null; + } +} // sets node.resolved on success + + +function resolveNode(doc, node) { + if (!node) return null; + if (node.error) doc.errors.push(node.error); + + var _resolveNodeProps = resolveNodeProps(doc.errors, node), + comments = _resolveNodeProps.comments, + hasAnchor = _resolveNodeProps.hasAnchor, + hasTag = _resolveNodeProps.hasTag; + + if (hasAnchor) { + var anchors = doc.anchors; + var name = node.anchor; + var prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor + // name have already been resolved, so it may safely be renamed. + + if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as + // anchors need to be available during resolution to allow for + // circular references. + + anchors.map[name] = node; + } + + if (node.type === Type.ALIAS && (hasAnchor || hasTag)) { + var msg = 'An alias node must not specify any properties'; + doc.errors.push(new YAMLSemanticError(node, msg)); + } + + var res = resolveNodeValue(doc, node); + + if (res) { + res.range = [node.range.start, node.range.end]; + if (doc.options.keepCstNodes) res.cstNode = node; + if (doc.options.keepNodeTypes) res.type = node.type; + var cb = comments.before.join('\n'); + + if (cb) { + res.commentBefore = res.commentBefore ? "".concat(res.commentBefore, "\n").concat(cb) : cb; + } + + var ca = comments.after.join('\n'); + if (ca) res.comment = res.comment ? "".concat(res.comment, "\n").concat(ca) : ca; + } + + return node.resolved = res; +} + +function resolveMap(doc, cst) { + if (cst.type !== Type.MAP && cst.type !== Type.FLOW_MAP) { + var msg = "A ".concat(cst.type, " node cannot be resolved as a mapping"); + doc.errors.push(new YAMLSyntaxError(cst, msg)); + return null; + } + + var _ref = cst.type === Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst), + comments = _ref.comments, + items = _ref.items; + + var map = new YAMLMap(); + map.items = items; + resolveComments(map, comments); + var hasCollectionKey = false; + + for (var i = 0; i < items.length; ++i) { + var iKey = items[i].key; + if (iKey instanceof Collection) hasCollectionKey = true; + + if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) { + items[i] = new Merge(items[i]); + var sources = items[i].value.items; + var error = null; + sources.some(function (node) { + if (node instanceof Alias) { + // During parsing, alias sources are CST nodes; to account for + // circular references their resolved values can't be used here. + var type = node.source.type; + if (type === Type.MAP || type === Type.FLOW_MAP) return false; + return error = 'Merge nodes aliases can only point to maps'; + } + + return error = 'Merge nodes can only have Alias nodes as values'; + }); + if (error) doc.errors.push(new YAMLSemanticError(cst, error)); + } else { + for (var j = i + 1; j < items.length; ++j) { + var jKey = items[j].key; + + if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) { + var _msg = "Map keys must be unique; \"".concat(iKey, "\" is repeated"); + + doc.errors.push(new YAMLSemanticError(cst, _msg)); + break; + } + } + } + } + + if (hasCollectionKey && !doc.options.mapAsMap) { + var warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new YAMLWarning(cst, warn)); + } + + cst.resolved = map; + return map; +} + +var valueHasPairComment = function valueHasPairComment(_ref2) { + var _ref2$context = _ref2.context, + lineStart = _ref2$context.lineStart, + node = _ref2$context.node, + src = _ref2$context.src, + props = _ref2.props; + if (props.length === 0) return false; + var start = props[0].start; + if (node && start > node.valueRange.start) return false; + if (src[start] !== Char.COMMENT) return false; + + for (var i = lineStart; i < start; ++i) { + if (src[i] === '\n') return false; + } + + return true; +}; + +function resolvePairComment(item, pair) { + if (!valueHasPairComment(item)) return; + var comment = item.getPropValue(0, Char.COMMENT, true); + var found = false; + var cb = pair.value.commentBefore; + + if (cb && cb.startsWith(comment)) { + pair.value.commentBefore = cb.substr(comment.length + 1); + found = true; + } else { + var cc = pair.value.comment; + + if (!item.node && cc && cc.startsWith(comment)) { + pair.value.comment = cc.substr(comment.length + 1); + found = true; + } + } + + if (found) pair.comment = comment; +} + +function resolveBlockMapItems(doc, cst) { + var comments = []; + var items = []; + var key = undefined; + var keyStart = null; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + switch (item.type) { + case Type.BLANK_LINE: + comments.push({ + afterKey: !!key, + before: items.length + }); + break; + + case Type.COMMENT: + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + break; + + case Type.MAP_KEY: + if (key !== undefined) items.push(new Pair(key)); + if (item.error) doc.errors.push(item.error); + key = resolveNode(doc, item.node); + keyStart = null; + break; + + case Type.MAP_VALUE: + { + if (key === undefined) key = null; + if (item.error) doc.errors.push(item.error); + + if (!item.context.atLineStart && item.node && item.node.type === Type.MAP && !item.node.context.atLineStart) { + var msg = 'Nested mappings are not allowed in compact mappings'; + doc.errors.push(new YAMLSemanticError(item.node, msg)); + } + + var valueNode = item.node; + + if (!valueNode && item.props.length > 0) { + // Comments on an empty mapping value need to be preserved, so we + // need to construct a minimal empty node here to use instead of the + // missing `item.node`. -- eemeli/yaml#19 + valueNode = new PlainValue(Type.PLAIN, []); + valueNode.context = { + parent: item, + src: item.context.src + }; + var pos = item.range.start + 1; + valueNode.range = { + start: pos, + end: pos + }; + valueNode.valueRange = { + start: pos, + end: pos + }; + + if (typeof item.range.origStart === 'number') { + var origPos = item.range.origStart + 1; + valueNode.range.origStart = valueNode.range.origEnd = origPos; + valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos; + } + } + + var pair = new Pair(key, resolveNode(doc, valueNode)); + resolvePairComment(item, pair); + items.push(pair); + + if (key && typeof keyStart === 'number') { + if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + } + + key = undefined; + keyStart = null; + } + break; + + default: + if (key !== undefined) items.push(new Pair(key)); + key = resolveNode(doc, item); + keyStart = item.range.start; + if (item.error) doc.errors.push(item.error); + + next: for (var j = i + 1;; ++j) { + var nextItem = cst.items[j]; + + switch (nextItem && nextItem.type) { + case Type.BLANK_LINE: + case Type.COMMENT: + continue next; + + case Type.MAP_VALUE: + break next; + + default: + { + var _msg2 = 'Implicit map keys need to be followed by map values'; + doc.errors.push(new YAMLSemanticError(item, _msg2)); + break next; + } + } + } + + if (item.valueRangeContainsNewline) { + var _msg3 = 'Implicit map keys need to be on a single line'; + doc.errors.push(new YAMLSemanticError(item, _msg3)); + } + + } + } + + if (key !== undefined) items.push(new Pair(key)); + return { + comments: comments, + items: items + }; +} + +function resolveFlowMapItems(doc, cst) { + var comments = []; + var items = []; + var key = undefined; + var explicitKey = false; + var next = '{'; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + if (typeof item.char === 'string') { + var char = item.char, + offset = item.offset; + + if (char === '?' && key === undefined && !explicitKey) { + explicitKey = true; + next = ':'; + continue; + } + + if (char === ':') { + if (key === undefined) key = null; + + if (next === ':') { + next = ','; + continue; + } + } else { + if (explicitKey) { + if (key === undefined && char !== ',') key = null; + explicitKey = false; + } + + if (key !== undefined) { + items.push(new Pair(key)); + key = undefined; + + if (char === ',') { + next = ':'; + continue; + } + } + } + + if (char === '}') { + if (i === cst.items.length - 1) continue; + } else if (char === next) { + next = ':'; + continue; + } + + var msg = "Flow map contains an unexpected ".concat(char); + var err = new YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } else if (item.type === Type.BLANK_LINE) { + comments.push({ + afterKey: !!key, + before: items.length + }); + } else if (item.type === Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + } else if (key === undefined) { + if (next === ',') doc.errors.push(new YAMLSemanticError(item, 'Separator , missing in flow map')); + key = resolveNode(doc, item); + } else { + if (next !== ',') doc.errors.push(new YAMLSemanticError(item, 'Indicator : missing in flow map entry')); + items.push(new Pair(key, resolveNode(doc, item))); + key = undefined; + explicitKey = false; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments: comments, + items: items + }; +} + +function resolveSeq(doc, cst) { + if (cst.type !== Type.SEQ && cst.type !== Type.FLOW_SEQ) { + var msg = "A ".concat(cst.type, " node cannot be resolved as a sequence"); + doc.errors.push(new YAMLSyntaxError(cst, msg)); + return null; + } + + var _ref = cst.type === Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst), + comments = _ref.comments, + items = _ref.items; + + var seq = new YAMLSeq(); + seq.items = items; + resolveComments(seq, comments); + + if (!doc.options.mapAsMap && items.some(function (it) { + return it instanceof Pair && it.key instanceof Collection; + })) { + var warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new YAMLWarning(cst, warn)); + } + + cst.resolved = seq; + return seq; +} + +function resolveBlockSeqItems(doc, cst) { + var comments = []; + var items = []; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + switch (item.type) { + case Type.BLANK_LINE: + comments.push({ + before: items.length + }); + break; + + case Type.COMMENT: + comments.push({ + comment: item.comment, + before: items.length + }); + break; + + case Type.SEQ_ITEM: + if (item.error) doc.errors.push(item.error); + items.push(resolveNode(doc, item.node)); + + if (item.hasProps) { + var msg = 'Sequence items cannot have tags or anchors before the - indicator'; + doc.errors.push(new YAMLSemanticError(item, msg)); + } + + break; + + default: + if (item.error) doc.errors.push(item.error); + doc.errors.push(new YAMLSyntaxError(item, "Unexpected ".concat(item.type, " node in sequence"))); + } + } + + return { + comments: comments, + items: items + }; +} + +function resolveFlowSeqItems(doc, cst) { + var comments = []; + var items = []; + var explicitKey = false; + var key = undefined; + var keyStart = null; + var next = '['; + var prevItem = null; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + if (typeof item.char === 'string') { + var char = item.char, + offset = item.offset; + + if (char !== ':' && (explicitKey || key !== undefined)) { + if (explicitKey && key === undefined) key = next ? items.pop() : null; + items.push(new Pair(key)); + explicitKey = false; + key = undefined; + keyStart = null; + } + + if (char === next) { + next = null; + } else if (!next && char === '?') { + explicitKey = true; + } else if (next !== '[' && char === ':' && key === undefined) { + if (next === ',') { + key = items.pop(); + + if (key instanceof Pair) { + var msg = 'Chaining flow sequence pairs is invalid'; + var err = new YAMLSemanticError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + + if (!explicitKey && typeof keyStart === 'number') { + var keyEnd = item.range ? item.range.start : item.offset; + if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + var src = prevItem.context.src; + + for (var _i = keyStart; _i < keyEnd; ++_i) { + if (src[_i] === '\n') { + var _msg = 'Implicit keys of flow sequence pairs need to be on a single line'; + doc.errors.push(new YAMLSemanticError(prevItem, _msg)); + break; + } + } + } + } else { + key = null; + } + + keyStart = null; + explicitKey = false; + next = null; + } else if (next === '[' || char !== ']' || i < cst.items.length - 1) { + var _msg2 = "Flow sequence contains an unexpected ".concat(char); + + var _err = new YAMLSyntaxError(cst, _msg2); + + _err.offset = offset; + doc.errors.push(_err); + } + } else if (item.type === Type.BLANK_LINE) { + comments.push({ + before: items.length + }); + } else if (item.type === Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + comment: item.comment, + before: items.length + }); + } else { + if (next) { + var _msg3 = "Expected a ".concat(next, " in flow sequence"); + + doc.errors.push(new YAMLSemanticError(item, _msg3)); + } + + var value = resolveNode(doc, item); + + if (key === undefined) { + items.push(value); + prevItem = item; + } else { + items.push(new Pair(key, value)); + key = undefined; + } + + keyStart = item.range.start; + next = ','; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments: comments, + items: items + }; +} + +export { Alias as A, Collection as C, Merge as M, Node as N, Pair as P, Scalar as S, YAMLSeq as Y, boolOptions as a, binaryOptions as b, stringifyString as c, YAMLMap as d, isEmptyPath as e, addComment as f, resolveMap as g, resolveSeq as h, intOptions as i, resolveString as j, stringifyNumber as k, findPair as l, nullOptions as n, resolveNode as r, strOptions as s, toJSON as t }; diff --git a/node_modules/yaml/browser/dist/types.js b/node_modules/yaml/browser/dist/types.js new file mode 100644 index 0000000..da2288b --- /dev/null +++ b/node_modules/yaml/browser/dist/types.js @@ -0,0 +1,4 @@ +export { A as Alias, C as Collection, M as Merge, N as Node, P as Pair, S as Scalar, d as YAMLMap, Y as YAMLSeq, b as binaryOptions, a as boolOptions, i as intOptions, n as nullOptions, s as strOptions } from './resolveSeq-492ab440.js'; +export { S as Schema } from './Schema-e94716c8.js'; +import './PlainValue-b8036b75.js'; +import './warnings-df54cb69.js'; diff --git a/node_modules/yaml/browser/dist/util.js b/node_modules/yaml/browser/dist/util.js new file mode 100644 index 0000000..29f4663 --- /dev/null +++ b/node_modules/yaml/browser/dist/util.js @@ -0,0 +1,2 @@ +export { l as findPair, g as parseMap, h as parseSeq, k as stringifyNumber, c as stringifyString, t as toJSON } from './resolveSeq-492ab440.js'; +export { T as Type, i as YAMLError, o as YAMLReferenceError, g as YAMLSemanticError, Y as YAMLSyntaxError, f as YAMLWarning } from './PlainValue-b8036b75.js'; diff --git a/node_modules/yaml/browser/dist/warnings-df54cb69.js b/node_modules/yaml/browser/dist/warnings-df54cb69.js new file mode 100644 index 0000000..9532e83 --- /dev/null +++ b/node_modules/yaml/browser/dist/warnings-df54cb69.js @@ -0,0 +1,499 @@ +import { o as YAMLReferenceError, T as Type, g as YAMLSemanticError, _ as _createForOfIteratorHelper, e as _defineProperty, j as _inherits, k as _createSuper, c as _classCallCheck, p as _assertThisInitialized, b as _createClass, a as _typeof, l as _get, m as _getPrototypeOf } from './PlainValue-b8036b75.js'; +import { j as resolveString, b as binaryOptions, c as stringifyString, h as resolveSeq, P as Pair, d as YAMLMap, Y as YAMLSeq, t as toJSON, S as Scalar, l as findPair, g as resolveMap, k as stringifyNumber } from './resolveSeq-492ab440.js'; + +/* global atob, btoa, Buffer */ +var binary = { + identify: function identify(value) { + return value instanceof Uint8Array; + }, + // Buffer inherits from Uint8Array + default: false, + tag: 'tag:yaml.org,2002:binary', + + /** + * Returns a Buffer in node and an Uint8Array in browsers + * + * To use the resulting buffer as an image, you'll want to do something like: + * + * const blob = new Blob([buffer], { type: 'image/jpeg' }) + * document.querySelector('#photo').src = URL.createObjectURL(blob) + */ + resolve: function resolve(doc, node) { + var src = resolveString(doc, node); + + if (typeof Buffer === 'function') { + return Buffer.from(src, 'base64'); + } else if (typeof atob === 'function') { + // On IE 11, atob() can't handle newlines + var str = atob(src.replace(/[\n\r]/g, '')); + var buffer = new Uint8Array(str.length); + + for (var i = 0; i < str.length; ++i) { + buffer[i] = str.charCodeAt(i); + } + + return buffer; + } else { + var msg = 'This environment does not support reading binary tags; either Buffer or atob is required'; + doc.errors.push(new YAMLReferenceError(node, msg)); + return null; + } + }, + options: binaryOptions, + stringify: function stringify(_ref, ctx, onComment, onChompKeep) { + var comment = _ref.comment, + type = _ref.type, + value = _ref.value; + var src; + + if (typeof Buffer === 'function') { + src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64'); + } else if (typeof btoa === 'function') { + var s = ''; + + for (var i = 0; i < value.length; ++i) { + s += String.fromCharCode(value[i]); + } + + src = btoa(s); + } else { + throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required'); + } + + if (!type) type = binaryOptions.defaultType; + + if (type === Type.QUOTE_DOUBLE) { + value = src; + } else { + var lineWidth = binaryOptions.lineWidth; + var n = Math.ceil(src.length / lineWidth); + var lines = new Array(n); + + for (var _i = 0, o = 0; _i < n; ++_i, o += lineWidth) { + lines[_i] = src.substr(o, lineWidth); + } + + value = lines.join(type === Type.BLOCK_LITERAL ? '\n' : ' '); + } + + return stringifyString({ + comment: comment, + type: type, + value: value + }, ctx, onComment, onChompKeep); + } +}; + +function parsePairs(doc, cst) { + var seq = resolveSeq(doc, cst); + + for (var i = 0; i < seq.items.length; ++i) { + var item = seq.items[i]; + if (item instanceof Pair) continue;else if (item instanceof YAMLMap) { + if (item.items.length > 1) { + var msg = 'Each pair must have its own sequence indicator'; + throw new YAMLSemanticError(cst, msg); + } + + var pair = item.items[0] || new Pair(); + if (item.commentBefore) pair.commentBefore = pair.commentBefore ? "".concat(item.commentBefore, "\n").concat(pair.commentBefore) : item.commentBefore; + if (item.comment) pair.comment = pair.comment ? "".concat(item.comment, "\n").concat(pair.comment) : item.comment; + item = pair; + } + seq.items[i] = item instanceof Pair ? item : new Pair(item); + } + + return seq; +} +function createPairs(schema, iterable, ctx) { + var pairs = new YAMLSeq(schema); + pairs.tag = 'tag:yaml.org,2002:pairs'; + + var _iterator = _createForOfIteratorHelper(iterable), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var it = _step.value; + var key = void 0, + value = void 0; + + if (Array.isArray(it)) { + if (it.length === 2) { + key = it[0]; + value = it[1]; + } else throw new TypeError("Expected [key, value] tuple: ".concat(it)); + } else if (it && it instanceof Object) { + var keys = Object.keys(it); + + if (keys.length === 1) { + key = keys[0]; + value = it[key]; + } else throw new TypeError("Expected { key: value } tuple: ".concat(it)); + } else { + key = it; + } + + var pair = schema.createPair(key, value, ctx); + pairs.items.push(pair); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return pairs; +} +var pairs = { + default: false, + tag: 'tag:yaml.org,2002:pairs', + resolve: parsePairs, + createNode: createPairs +}; + +var YAMLOMap = /*#__PURE__*/function (_YAMLSeq) { + _inherits(YAMLOMap, _YAMLSeq); + + var _super = _createSuper(YAMLOMap); + + function YAMLOMap() { + var _this; + + _classCallCheck(this, YAMLOMap); + + _this = _super.call(this); + + _defineProperty(_assertThisInitialized(_this), "add", YAMLMap.prototype.add.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "delete", YAMLMap.prototype.delete.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "get", YAMLMap.prototype.get.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "has", YAMLMap.prototype.has.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "set", YAMLMap.prototype.set.bind(_assertThisInitialized(_this))); + + _this.tag = YAMLOMap.tag; + return _this; + } + + _createClass(YAMLOMap, [{ + key: "toJSON", + value: function toJSON$1(_, ctx) { + var map = new Map(); + if (ctx && ctx.onCreate) ctx.onCreate(map); + + var _iterator = _createForOfIteratorHelper(this.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var pair = _step.value; + var key = void 0, + value = void 0; + + if (pair instanceof Pair) { + key = toJSON(pair.key, '', ctx); + value = toJSON(pair.value, key, ctx); + } else { + key = toJSON(pair, '', ctx); + } + + if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys'); + map.set(key, value); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return map; + } + }]); + + return YAMLOMap; +}(YAMLSeq); + +_defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap'); + +function parseOMap(doc, cst) { + var pairs = parsePairs(doc, cst); + var seenKeys = []; + + var _iterator2 = _createForOfIteratorHelper(pairs.items), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var key = _step2.value.key; + + if (key instanceof Scalar) { + if (seenKeys.includes(key.value)) { + var msg = 'Ordered maps must not include duplicate keys'; + throw new YAMLSemanticError(cst, msg); + } else { + seenKeys.push(key.value); + } + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return Object.assign(new YAMLOMap(), pairs); +} + +function createOMap(schema, iterable, ctx) { + var pairs = createPairs(schema, iterable, ctx); + var omap = new YAMLOMap(); + omap.items = pairs.items; + return omap; +} + +var omap = { + identify: function identify(value) { + return value instanceof Map; + }, + nodeClass: YAMLOMap, + default: false, + tag: 'tag:yaml.org,2002:omap', + resolve: parseOMap, + createNode: createOMap +}; + +var YAMLSet = /*#__PURE__*/function (_YAMLMap) { + _inherits(YAMLSet, _YAMLMap); + + var _super = _createSuper(YAMLSet); + + function YAMLSet() { + var _this; + + _classCallCheck(this, YAMLSet); + + _this = _super.call(this); + _this.tag = YAMLSet.tag; + return _this; + } + + _createClass(YAMLSet, [{ + key: "add", + value: function add(key) { + var pair = key instanceof Pair ? key : new Pair(key); + var prev = findPair(this.items, pair.key); + if (!prev) this.items.push(pair); + } + }, { + key: "get", + value: function get(key, keepPair) { + var pair = findPair(this.items, key); + return !keepPair && pair instanceof Pair ? pair.key instanceof Scalar ? pair.key.value : pair.key : pair; + } + }, { + key: "set", + value: function set(key, value) { + if (typeof value !== 'boolean') throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(_typeof(value))); + var prev = findPair(this.items, key); + + if (prev && !value) { + this.items.splice(this.items.indexOf(prev), 1); + } else if (!prev && value) { + this.items.push(new Pair(key)); + } + } + }, { + key: "toJSON", + value: function toJSON(_, ctx) { + return _get(_getPrototypeOf(YAMLSet.prototype), "toJSON", this).call(this, _, ctx, Set); + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + if (this.hasAllNullValues()) return _get(_getPrototypeOf(YAMLSet.prototype), "toString", this).call(this, ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values'); + } + }]); + + return YAMLSet; +}(YAMLMap); + +_defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set'); + +function parseSet(doc, cst) { + var map = resolveMap(doc, cst); + if (!map.hasAllNullValues()) throw new YAMLSemanticError(cst, 'Set items must all have null values'); + return Object.assign(new YAMLSet(), map); +} + +function createSet(schema, iterable, ctx) { + var set = new YAMLSet(); + + var _iterator = _createForOfIteratorHelper(iterable), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var value = _step.value; + set.items.push(schema.createPair(value, null, ctx)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return set; +} + +var set = { + identify: function identify(value) { + return value instanceof Set; + }, + nodeClass: YAMLSet, + default: false, + tag: 'tag:yaml.org,2002:set', + resolve: parseSet, + createNode: createSet +}; + +var parseSexagesimal = function parseSexagesimal(sign, parts) { + var n = parts.split(':').reduce(function (n, p) { + return n * 60 + Number(p); + }, 0); + return sign === '-' ? -n : n; +}; // hhhh:mm:ss.sss + + +var stringifySexagesimal = function stringifySexagesimal(_ref) { + var value = _ref.value; + if (isNaN(value) || !isFinite(value)) return stringifyNumber(value); + var sign = ''; + + if (value < 0) { + sign = '-'; + value = Math.abs(value); + } + + var parts = [value % 60]; // seconds, including ms + + if (value < 60) { + parts.unshift(0); // at least one : is required + } else { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value % 60); // minutes + + if (value >= 60) { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value); // hours + } + } + + return sign + parts.map(function (n) { + return n < 10 ? '0' + String(n) : String(n); + }).join(':').replace(/000000\d*$/, '') // % 60 may introduce error + ; +}; + +var intTime = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/, + resolve: function resolve(str, sign, parts) { + return parseSexagesimal(sign, parts.replace(/_/g, '')); + }, + stringify: stringifySexagesimal +}; +var floatTime = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/, + resolve: function resolve(str, sign, parts) { + return parseSexagesimal(sign, parts.replace(/_/g, '')); + }, + stringify: stringifySexagesimal +}; +var timestamp = { + identify: function identify(value) { + return value instanceof Date; + }, + default: true, + tag: 'tag:yaml.org,2002:timestamp', + // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part + // may be omitted altogether, resulting in a date format. In such a case, the time part is + // assumed to be 00:00:00Z (start of day, UTC). + test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd + '(?:(?:t|T|[ \\t]+)' + // t | T | whitespace + '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)? + '(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30 + ')?' + ')$'), + resolve: function resolve(str, year, month, day, hour, minute, second, millisec, tz) { + if (millisec) millisec = (millisec + '00').substr(1, 3); + var date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0); + + if (tz && tz !== 'Z') { + var d = parseSexagesimal(tz[0], tz.slice(1)); + if (Math.abs(d) < 30) d *= 60; + date -= 60000 * d; + } + + return new Date(date); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, ''); + } +}; + +/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */ +function shouldWarn(deprecation) { + var env = typeof process !== 'undefined' && process.env || {}; + + if (deprecation) { + if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS; + return !env.YAML_SILENCE_DEPRECATION_WARNINGS; + } + + if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS; + return !env.YAML_SILENCE_WARNINGS; +} + +function warn(warning, type) { + if (shouldWarn(false)) { + var emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to + // https://github.com/facebook/jest/issues/2549 + + if (emit) emit(warning, type);else { + // eslint-disable-next-line no-console + console.warn(type ? "".concat(type, ": ").concat(warning) : warning); + } + } +} +function warnFileDeprecation(filename) { + if (shouldWarn(true)) { + var path = filename.replace(/.*yaml[/\\]/i, '').replace(/\.js$/, '').replace(/\\/g, '/'); + warn("The endpoint 'yaml/".concat(path, "' will be removed in a future release."), 'DeprecationWarning'); + } +} +var warned = {}; +function warnOptionDeprecation(name, alternative) { + if (!warned[name] && shouldWarn(true)) { + warned[name] = true; + var msg = "The option '".concat(name, "' will be removed in a future release"); + msg += alternative ? ", use '".concat(alternative, "' instead.") : '.'; + warn(msg, 'DeprecationWarning'); + } +} + +export { warnOptionDeprecation as a, binary as b, warnFileDeprecation as c, floatTime as f, intTime as i, omap as o, pairs as p, set as s, timestamp as t, warn as w }; diff --git a/node_modules/yaml/browser/index.js b/node_modules/yaml/browser/index.js new file mode 100644 index 0000000..b501ac4 --- /dev/null +++ b/node_modules/yaml/browser/index.js @@ -0,0 +1 @@ +module.exports = require('./dist').YAML diff --git a/node_modules/yaml/browser/map.js b/node_modules/yaml/browser/map.js new file mode 100644 index 0000000..78f2ebc --- /dev/null +++ b/node_modules/yaml/browser/map.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLMap +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/pair.js b/node_modules/yaml/browser/pair.js new file mode 100644 index 0000000..b2880a2 --- /dev/null +++ b/node_modules/yaml/browser/pair.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Pair +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/parse-cst.js b/node_modules/yaml/browser/parse-cst.js new file mode 100644 index 0000000..8065756 --- /dev/null +++ b/node_modules/yaml/browser/parse-cst.js @@ -0,0 +1 @@ +module.exports = require('./dist/parse-cst').parse diff --git a/node_modules/yaml/browser/scalar.js b/node_modules/yaml/browser/scalar.js new file mode 100644 index 0000000..deee1b0 --- /dev/null +++ b/node_modules/yaml/browser/scalar.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Scalar +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/schema.js b/node_modules/yaml/browser/schema.js new file mode 100644 index 0000000..4139c4b --- /dev/null +++ b/node_modules/yaml/browser/schema.js @@ -0,0 +1,9 @@ +const types = require('./dist/types') +const util = require('./dist/util') + +module.exports = types.Schema +module.exports.nullOptions = types.nullOptions +module.exports.strOptions = types.strOptions +module.exports.stringify = util.stringifyString + +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/seq.js b/node_modules/yaml/browser/seq.js new file mode 100644 index 0000000..66147df --- /dev/null +++ b/node_modules/yaml/browser/seq.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLSeq +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types.js b/node_modules/yaml/browser/types.js new file mode 100644 index 0000000..b1e46c4 --- /dev/null +++ b/node_modules/yaml/browser/types.js @@ -0,0 +1 @@ +module.exports = require('./dist/types') diff --git a/node_modules/yaml/browser/types/binary.js b/node_modules/yaml/browser/types/binary.js new file mode 100644 index 0000000..271b9de --- /dev/null +++ b/node_modules/yaml/browser/types/binary.js @@ -0,0 +1,8 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.binary = legacy.binary +exports.default = [exports.binary] + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/omap.js b/node_modules/yaml/browser/types/omap.js new file mode 100644 index 0000000..37b638b --- /dev/null +++ b/node_modules/yaml/browser/types/omap.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.omap +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/pairs.js b/node_modules/yaml/browser/types/pairs.js new file mode 100644 index 0000000..f1df201 --- /dev/null +++ b/node_modules/yaml/browser/types/pairs.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.pairs +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/set.js b/node_modules/yaml/browser/types/set.js new file mode 100644 index 0000000..e7dc9d4 --- /dev/null +++ b/node_modules/yaml/browser/types/set.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.set +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/timestamp.js b/node_modules/yaml/browser/types/timestamp.js new file mode 100644 index 0000000..39c5b6d --- /dev/null +++ b/node_modules/yaml/browser/types/timestamp.js @@ -0,0 +1,10 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.default = [legacy.intTime, legacy.floatTime, legacy.timestamp] +exports.floatTime = legacy.floatTime +exports.intTime = legacy.intTime +exports.timestamp = legacy.timestamp + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/util.js b/node_modules/yaml/browser/util.js new file mode 100644 index 0000000..bf38456 --- /dev/null +++ b/node_modules/yaml/browser/util.js @@ -0,0 +1 @@ +module.exports = require('./dist/util') diff --git a/node_modules/yaml/dist/Document-9b4560a1.js b/node_modules/yaml/dist/Document-9b4560a1.js new file mode 100644 index 0000000..a2613db --- /dev/null +++ b/node_modules/yaml/dist/Document-9b4560a1.js @@ -0,0 +1,757 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var Schema = require('./Schema-88e323a7.js'); + +const defaultOptions = { + anchorPrefix: 'a', + customTags: null, + indent: 2, + indentSeq: true, + keepCstNodes: false, + keepNodeTypes: true, + keepBlobsInJSON: true, + mapAsMap: false, + maxAliasCount: 100, + prettyErrors: false, + // TODO Set true in v2 + simpleKeys: false, + version: '1.2' +}; +const scalarOptions = { + get binary() { + return resolveSeq.binaryOptions; + }, + + set binary(opt) { + Object.assign(resolveSeq.binaryOptions, opt); + }, + + get bool() { + return resolveSeq.boolOptions; + }, + + set bool(opt) { + Object.assign(resolveSeq.boolOptions, opt); + }, + + get int() { + return resolveSeq.intOptions; + }, + + set int(opt) { + Object.assign(resolveSeq.intOptions, opt); + }, + + get null() { + return resolveSeq.nullOptions; + }, + + set null(opt) { + Object.assign(resolveSeq.nullOptions, opt); + }, + + get str() { + return resolveSeq.strOptions; + }, + + set str(opt) { + Object.assign(resolveSeq.strOptions, opt); + } + +}; +const documentOptions = { + '1.0': { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: PlainValue.defaultTagPrefix + }, { + handle: '!!', + prefix: 'tag:private.yaml.org,2002:' + }] + }, + 1.1: { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: PlainValue.defaultTagPrefix + }] + }, + 1.2: { + schema: 'core', + merge: false, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: PlainValue.defaultTagPrefix + }] + } +}; + +function stringifyTag(doc, tag) { + if ((doc.version || doc.options.version) === '1.0') { + const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/); + if (priv) return '!' + priv[1]; + const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/); + return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`; + } + + let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0); + + if (!p) { + const dtp = doc.getDefaults().tagPrefixes; + p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0); + } + + if (!p) return tag[0] === '!' ? tag : `!<${tag}>`; + const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, ch => ({ + '!': '%21', + ',': '%2C', + '[': '%5B', + ']': '%5D', + '{': '%7B', + '}': '%7D' + })[ch]); + return p.handle + suffix; +} + +function getTagObject(tags, item) { + if (item instanceof resolveSeq.Alias) return resolveSeq.Alias; + + if (item.tag) { + const match = tags.filter(t => t.tag === item.tag); + if (match.length > 0) return match.find(t => t.format === item.format) || match[0]; + } + + let tagObj, obj; + + if (item instanceof resolveSeq.Scalar) { + obj = item.value; // TODO: deprecate/remove class check + + const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class); + tagObj = match.find(t => t.format === item.format) || match.find(t => !t.format); + } else { + obj = item; + tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass); + } + + if (!tagObj) { + const name = obj && obj.constructor ? obj.constructor.name : typeof obj; + throw new Error(`Tag not resolved for ${name} value`); + } + + return tagObj; +} // needs to be called before value stringifier to allow for circular anchor refs + + +function stringifyProps(node, tagObj, { + anchors, + doc +}) { + const props = []; + const anchor = doc.anchors.getName(node); + + if (anchor) { + anchors[anchor] = node; + props.push(`&${anchor}`); + } + + if (node.tag) { + props.push(stringifyTag(doc, node.tag)); + } else if (!tagObj.default) { + props.push(stringifyTag(doc, tagObj.tag)); + } + + return props.join(' '); +} + +function stringify(item, ctx, onComment, onChompKeep) { + const { + anchors, + schema + } = ctx.doc; + let tagObj; + + if (!(item instanceof resolveSeq.Node)) { + const createCtx = { + aliasNodes: [], + onTagObj: o => tagObj = o, + prevObjects: new Map() + }; + item = schema.createNode(item, true, null, createCtx); + + for (const alias of createCtx.aliasNodes) { + alias.source = alias.source.node; + let name = anchors.getName(alias.source); + + if (!name) { + name = anchors.newName(); + anchors.map[name] = alias.source; + } + } + } + + if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep); + if (!tagObj) tagObj = getTagObject(schema.tags, item); + const props = stringifyProps(item, tagObj, ctx); + if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1; + const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep); + if (!props) return str; + return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\n${ctx.indent}${str}`; +} + +class Anchors { + static validAnchorNode(node) { + return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap; + } + + constructor(prefix) { + PlainValue._defineProperty(this, "map", Object.create(null)); + + this.prefix = prefix; + } + + createAlias(node, name) { + this.setAnchor(node, name); + return new resolveSeq.Alias(node); + } + + createMergePair(...sources) { + const merge = new resolveSeq.Merge(); + merge.value.items = sources.map(s => { + if (s instanceof resolveSeq.Alias) { + if (s.source instanceof resolveSeq.YAMLMap) return s; + } else if (s instanceof resolveSeq.YAMLMap) { + return this.createAlias(s); + } + + throw new Error('Merge sources must be Map nodes or their Aliases'); + }); + return merge; + } + + getName(node) { + const { + map + } = this; + return Object.keys(map).find(a => map[a] === node); + } + + getNames() { + return Object.keys(this.map); + } + + getNode(name) { + return this.map[name]; + } + + newName(prefix) { + if (!prefix) prefix = this.prefix; + const names = Object.keys(this.map); + + for (let i = 1; true; ++i) { + const name = `${prefix}${i}`; + if (!names.includes(name)) return name; + } + } // During parsing, map & aliases contain CST nodes + + + resolveNodes() { + const { + map, + _cstAliases + } = this; + Object.keys(map).forEach(a => { + map[a] = map[a].resolved; + }); + + _cstAliases.forEach(a => { + a.source = a.source.resolved; + }); + + delete this._cstAliases; + } + + setAnchor(node, name) { + if (node != null && !Anchors.validAnchorNode(node)) { + throw new Error('Anchors may only be set for Scalar, Seq and Map nodes'); + } + + if (name && /[\x00-\x19\s,[\]{}]/.test(name)) { + throw new Error('Anchor names must not contain whitespace or control characters'); + } + + const { + map + } = this; + const prev = node && Object.keys(map).find(a => map[a] === node); + + if (prev) { + if (!name) { + return prev; + } else if (prev !== name) { + delete map[prev]; + map[name] = node; + } + } else { + if (!name) { + if (!node) return null; + name = this.newName(); + } + + map[name] = node; + } + + return name; + } + +} + +const visit = (node, tags) => { + if (node && typeof node === 'object') { + const { + tag + } = node; + + if (node instanceof resolveSeq.Collection) { + if (tag) tags[tag] = true; + node.items.forEach(n => visit(n, tags)); + } else if (node instanceof resolveSeq.Pair) { + visit(node.key, tags); + visit(node.value, tags); + } else if (node instanceof resolveSeq.Scalar) { + if (tag) tags[tag] = true; + } + } + + return tags; +}; + +const listTagNames = node => Object.keys(visit(node, {})); + +function parseContents(doc, contents) { + const comments = { + before: [], + after: [] + }; + let body = undefined; + let spaceBefore = false; + + for (const node of contents) { + if (node.valueRange) { + if (body !== undefined) { + const msg = 'Document contains trailing content not separated by a ... or --- line'; + doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg)); + break; + } + + const res = resolveSeq.resolveNode(doc, node); + + if (spaceBefore) { + res.spaceBefore = true; + spaceBefore = false; + } + + body = res; + } else if (node.comment !== null) { + const cc = body === undefined ? comments.before : comments.after; + cc.push(node.comment); + } else if (node.type === PlainValue.Type.BLANK_LINE) { + spaceBefore = true; + + if (body === undefined && comments.before.length > 0 && !doc.commentBefore) { + // space-separated comments at start are parsed as document comments + doc.commentBefore = comments.before.join('\n'); + comments.before = []; + } + } + } + + doc.contents = body || null; + + if (!body) { + doc.comment = comments.before.concat(comments.after).join('\n') || null; + } else { + const cb = comments.before.join('\n'); + + if (cb) { + const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body; + cbNode.commentBefore = cbNode.commentBefore ? `${cb}\n${cbNode.commentBefore}` : cb; + } + + doc.comment = comments.after.join('\n') || null; + } +} + +function resolveTagDirective({ + tagPrefixes +}, directive) { + const [handle, prefix] = directive.parameters; + + if (!handle || !prefix) { + const msg = 'Insufficient parameters given for %TAG directive'; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + + if (tagPrefixes.some(p => p.handle === handle)) { + const msg = 'The %TAG directive must only be given at most once per handle in the same document.'; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + + return { + handle, + prefix + }; +} + +function resolveYamlDirective(doc, directive) { + let [version] = directive.parameters; + if (directive.name === 'YAML:1.0') version = '1.0'; + + if (!version) { + const msg = 'Insufficient parameters given for %YAML directive'; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + + if (!documentOptions[version]) { + const v0 = doc.version || doc.options.version; + const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`; + doc.warnings.push(new PlainValue.YAMLWarning(directive, msg)); + } + + return version; +} + +function parseDirectives(doc, directives, prevDoc) { + const directiveComments = []; + let hasDirectives = false; + + for (const directive of directives) { + const { + comment, + name + } = directive; + + switch (name) { + case 'TAG': + try { + doc.tagPrefixes.push(resolveTagDirective(doc, directive)); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + case 'YAML': + case 'YAML:1.0': + if (doc.version) { + const msg = 'The %YAML directive must only be given at most once per document.'; + doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg)); + } + + try { + doc.version = resolveYamlDirective(doc, directive); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + default: + if (name) { + const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`; + doc.warnings.push(new PlainValue.YAMLWarning(directive, msg)); + } + + } + + if (comment) directiveComments.push(comment); + } + + if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) { + const copyTagPrefix = ({ + handle, + prefix + }) => ({ + handle, + prefix + }); + + doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix); + doc.version = prevDoc.version; + } + + doc.commentBefore = directiveComments.join('\n') || null; +} + +function assertCollection(contents) { + if (contents instanceof resolveSeq.Collection) return true; + throw new Error('Expected a YAML collection as document contents'); +} + +class Document { + constructor(options) { + this.anchors = new Anchors(options.anchorPrefix); + this.commentBefore = null; + this.comment = null; + this.contents = null; + this.directivesEndMarker = null; + this.errors = []; + this.options = options; + this.schema = null; + this.tagPrefixes = []; + this.version = null; + this.warnings = []; + } + + add(value) { + assertCollection(this.contents); + return this.contents.add(value); + } + + addIn(path, value) { + assertCollection(this.contents); + this.contents.addIn(path, value); + } + + delete(key) { + assertCollection(this.contents); + return this.contents.delete(key); + } + + deleteIn(path) { + if (resolveSeq.isEmptyPath(path)) { + if (this.contents == null) return false; + this.contents = null; + return true; + } + + assertCollection(this.contents); + return this.contents.deleteIn(path); + } + + getDefaults() { + return Document.defaults[this.version] || Document.defaults[this.options.version] || {}; + } + + get(key, keepScalar) { + return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined; + } + + getIn(path, keepScalar) { + if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents; + return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined; + } + + has(key) { + return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false; + } + + hasIn(path) { + if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined; + return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false; + } + + set(key, value) { + assertCollection(this.contents); + this.contents.set(key, value); + } + + setIn(path, value) { + if (resolveSeq.isEmptyPath(path)) this.contents = value;else { + assertCollection(this.contents); + this.contents.setIn(path, value); + } + } + + setSchema(id, customTags) { + if (!id && !customTags && this.schema) return; + if (typeof id === 'number') id = id.toFixed(1); + + if (id === '1.0' || id === '1.1' || id === '1.2') { + if (this.version) this.version = id;else this.options.version = id; + delete this.options.schema; + } else if (id && typeof id === 'string') { + this.options.schema = id; + } + + if (Array.isArray(customTags)) this.options.customTags = customTags; + const opt = Object.assign({}, this.getDefaults(), this.options); + this.schema = new Schema.Schema(opt); + } + + parse(node, prevDoc) { + if (this.options.keepCstNodes) this.cstNode = node; + if (this.options.keepNodeTypes) this.type = 'DOCUMENT'; + const { + directives = [], + contents = [], + directivesEndMarker, + error, + valueRange + } = node; + + if (error) { + if (!error.source) error.source = this; + this.errors.push(error); + } + + parseDirectives(this, directives, prevDoc); + if (directivesEndMarker) this.directivesEndMarker = true; + this.range = valueRange ? [valueRange.start, valueRange.end] : null; + this.setSchema(); + this.anchors._cstAliases = []; + parseContents(this, contents); + this.anchors.resolveNodes(); + + if (this.options.prettyErrors) { + for (const error of this.errors) if (error instanceof PlainValue.YAMLError) error.makePretty(); + + for (const warn of this.warnings) if (warn instanceof PlainValue.YAMLError) warn.makePretty(); + } + + return this; + } + + listNonDefaultTags() { + return listTagNames(this.contents).filter(t => t.indexOf(Schema.Schema.defaultPrefix) !== 0); + } + + setTagPrefix(handle, prefix) { + if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !'); + + if (prefix) { + const prev = this.tagPrefixes.find(p => p.handle === handle); + if (prev) prev.prefix = prefix;else this.tagPrefixes.push({ + handle, + prefix + }); + } else { + this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle); + } + } + + toJSON(arg, onAnchor) { + const { + keepBlobsInJSON, + mapAsMap, + maxAliasCount + } = this.options; + const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar)); + const ctx = { + doc: this, + indentStep: ' ', + keep, + mapAsMap: keep && !!mapAsMap, + maxAliasCount, + stringify // Requiring directly in Pair would create circular dependencies + + }; + const anchorNames = Object.keys(this.anchors.map); + if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(name => [this.anchors.map[name], { + alias: [], + aliasCount: 0, + count: 1 + }])); + const res = resolveSeq.toJSON(this.contents, arg, ctx); + if (typeof onAnchor === 'function' && ctx.anchors) for (const { + count, + res + } of ctx.anchors.values()) onAnchor(res, count); + return res; + } + + toString() { + if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified'); + const indentSize = this.options.indent; + + if (!Number.isInteger(indentSize) || indentSize <= 0) { + const s = JSON.stringify(indentSize); + throw new Error(`"indent" option must be a positive integer, not ${s}`); + } + + this.setSchema(); + const lines = []; + let hasDirectives = false; + + if (this.version) { + let vd = '%YAML 1.2'; + + if (this.schema.name === 'yaml-1.1') { + if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1'; + } + + lines.push(vd); + hasDirectives = true; + } + + const tagNames = this.listNonDefaultTags(); + this.tagPrefixes.forEach(({ + handle, + prefix + }) => { + if (tagNames.some(t => t.indexOf(prefix) === 0)) { + lines.push(`%TAG ${handle} ${prefix}`); + hasDirectives = true; + } + }); + if (hasDirectives || this.directivesEndMarker) lines.push('---'); + + if (this.commentBefore) { + if (hasDirectives || !this.directivesEndMarker) lines.unshift(''); + lines.unshift(this.commentBefore.replace(/^/gm, '#')); + } + + const ctx = { + anchors: Object.create(null), + doc: this, + indent: '', + indentStep: ' '.repeat(indentSize), + stringify // Requiring directly in nodes would create circular dependencies + + }; + let chompKeep = false; + let contentComment = null; + + if (this.contents) { + if (this.contents instanceof resolveSeq.Node) { + if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push(''); + if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment + + ctx.forceBlockIndent = !!this.comment; + contentComment = this.contents.comment; + } + + const onChompKeep = contentComment ? null : () => chompKeep = true; + const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep); + lines.push(resolveSeq.addComment(body, '', contentComment)); + } else if (this.contents !== undefined) { + lines.push(stringify(this.contents, ctx)); + } + + if (this.comment) { + if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push(''); + lines.push(this.comment.replace(/^/gm, '#')); + } + + return lines.join('\n') + '\n'; + } + +} + +PlainValue._defineProperty(Document, "defaults", documentOptions); + +exports.Document = Document; +exports.defaultOptions = defaultOptions; +exports.scalarOptions = scalarOptions; diff --git a/node_modules/yaml/dist/PlainValue-ec8e588e.js b/node_modules/yaml/dist/PlainValue-ec8e588e.js new file mode 100644 index 0000000..db8a14e --- /dev/null +++ b/node_modules/yaml/dist/PlainValue-ec8e588e.js @@ -0,0 +1,876 @@ +'use strict'; + +const Char = { + ANCHOR: '&', + COMMENT: '#', + TAG: '!', + DIRECTIVES_END: '-', + DOCUMENT_END: '.' +}; +const Type = { + ALIAS: 'ALIAS', + BLANK_LINE: 'BLANK_LINE', + BLOCK_FOLDED: 'BLOCK_FOLDED', + BLOCK_LITERAL: 'BLOCK_LITERAL', + COMMENT: 'COMMENT', + DIRECTIVE: 'DIRECTIVE', + DOCUMENT: 'DOCUMENT', + FLOW_MAP: 'FLOW_MAP', + FLOW_SEQ: 'FLOW_SEQ', + MAP: 'MAP', + MAP_KEY: 'MAP_KEY', + MAP_VALUE: 'MAP_VALUE', + PLAIN: 'PLAIN', + QUOTE_DOUBLE: 'QUOTE_DOUBLE', + QUOTE_SINGLE: 'QUOTE_SINGLE', + SEQ: 'SEQ', + SEQ_ITEM: 'SEQ_ITEM' +}; +const defaultTagPrefix = 'tag:yaml.org,2002:'; +const defaultTags = { + MAP: 'tag:yaml.org,2002:map', + SEQ: 'tag:yaml.org,2002:seq', + STR: 'tag:yaml.org,2002:str' +}; + +function findLineStarts(src) { + const ls = [0]; + let offset = src.indexOf('\n'); + + while (offset !== -1) { + offset += 1; + ls.push(offset); + offset = src.indexOf('\n', offset); + } + + return ls; +} + +function getSrcInfo(cst) { + let lineStarts, src; + + if (typeof cst === 'string') { + lineStarts = findLineStarts(cst); + src = cst; + } else { + if (Array.isArray(cst)) cst = cst[0]; + + if (cst && cst.context) { + if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src); + lineStarts = cst.lineStarts; + src = cst.context.src; + } + } + + return { + lineStarts, + src + }; +} +/** + * @typedef {Object} LinePos - One-indexed position in the source + * @property {number} line + * @property {number} col + */ + +/** + * Determine the line/col position matching a character offset. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns a one-indexed `{ line, col }` location if found, or + * `undefined` otherwise. + * + * @param {number} offset + * @param {string|Document|Document[]} cst + * @returns {?LinePos} + */ + + +function getLinePos(offset, cst) { + if (typeof offset !== 'number' || offset < 0) return null; + const { + lineStarts, + src + } = getSrcInfo(cst); + if (!lineStarts || !src || offset > src.length) return null; + + for (let i = 0; i < lineStarts.length; ++i) { + const start = lineStarts[i]; + + if (offset < start) { + return { + line: i, + col: offset - lineStarts[i - 1] + 1 + }; + } + + if (offset === start) return { + line: i + 1, + col: 1 + }; + } + + const line = lineStarts.length; + return { + line, + col: offset - lineStarts[line - 1] + 1 + }; +} +/** + * Get a specified line from the source. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns the line as a string if found, or `null` otherwise. + * + * @param {number} line One-indexed line number + * @param {string|Document|Document[]} cst + * @returns {?string} + */ + +function getLine(line, cst) { + const { + lineStarts, + src + } = getSrcInfo(cst); + if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null; + const start = lineStarts[line - 1]; + let end = lineStarts[line]; // undefined for last line; that's ok for slice() + + while (end && end > start && src[end - 1] === '\n') --end; + + return src.slice(start, end); +} +/** + * Pretty-print the starting line from the source indicated by the range `pos` + * + * Trims output to `maxWidth` chars while keeping the starting column visible, + * using `…` at either end to indicate dropped characters. + * + * Returns a two-line string (or `null`) with `\n` as separator; the second line + * will hold appropriately indented `^` marks indicating the column range. + * + * @param {Object} pos + * @param {LinePos} pos.start + * @param {LinePos} [pos.end] + * @param {string|Document|Document[]*} cst + * @param {number} [maxWidth=80] + * @returns {?string} + */ + +function getPrettyContext({ + start, + end +}, cst, maxWidth = 80) { + let src = getLine(start.line, cst); + if (!src) return null; + let { + col + } = start; + + if (src.length > maxWidth) { + if (col <= maxWidth - 10) { + src = src.substr(0, maxWidth - 1) + '…'; + } else { + const halfWidth = Math.round(maxWidth / 2); + if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…'; + col -= src.length - maxWidth; + src = '…' + src.substr(1 - maxWidth); + } + } + + let errLen = 1; + let errEnd = ''; + + if (end) { + if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) { + errLen = end.col - start.col; + } else { + errLen = Math.min(src.length + 1, maxWidth) - col; + errEnd = '…'; + } + } + + const offset = col > 1 ? ' '.repeat(col - 1) : ''; + const err = '^'.repeat(errLen); + return `${src}\n${offset}${err}${errEnd}`; +} + +class Range { + static copy(orig) { + return new Range(orig.start, orig.end); + } + + constructor(start, end) { + this.start = start; + this.end = end || start; + } + + isEmpty() { + return typeof this.start !== 'number' || !this.end || this.end <= this.start; + } + /** + * Set `origStart` and `origEnd` to point to the original source range for + * this node, which may differ due to dropped CR characters. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + + setOrigRange(cr, offset) { + const { + start, + end + } = this; + + if (cr.length === 0 || end <= cr[0]) { + this.origStart = start; + this.origEnd = end; + return offset; + } + + let i = offset; + + while (i < cr.length) { + if (cr[i] > start) break;else ++i; + } + + this.origStart = start + i; + const nextOffset = i; + + while (i < cr.length) { + // if end was at \n, it should now be at \r + if (cr[i] >= end) break;else ++i; + } + + this.origEnd = end + i; + return nextOffset; + } + +} + +/** Root class of all nodes */ + +class Node { + static addStringTerminator(src, offset, str) { + if (str[str.length - 1] === '\n') return str; + const next = Node.endOfWhiteSpace(src, offset); + return next >= src.length || src[next] === '\n' ? str + '\n' : str; + } // ^(---|...) + + + static atDocumentBoundary(src, offset, sep) { + const ch0 = src[offset]; + if (!ch0) return true; + const prev = src[offset - 1]; + if (prev && prev !== '\n') return false; + + if (sep) { + if (ch0 !== sep) return false; + } else { + if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false; + } + + const ch1 = src[offset + 1]; + const ch2 = src[offset + 2]; + if (ch1 !== ch0 || ch2 !== ch0) return false; + const ch3 = src[offset + 3]; + return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' '; + } + + static endOfIdentifier(src, offset) { + let ch = src[offset]; + const isVerbatim = ch === '<'; + const notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ',']; + + while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1]; + + if (isVerbatim && ch === '>') offset += 1; + return offset; + } + + static endOfIndent(src, offset) { + let ch = src[offset]; + + while (ch === ' ') ch = src[offset += 1]; + + return offset; + } + + static endOfLine(src, offset) { + let ch = src[offset]; + + while (ch && ch !== '\n') ch = src[offset += 1]; + + return offset; + } + + static endOfWhiteSpace(src, offset) { + let ch = src[offset]; + + while (ch === '\t' || ch === ' ') ch = src[offset += 1]; + + return offset; + } + + static startOfLine(src, offset) { + let ch = src[offset - 1]; + if (ch === '\n') return offset; + + while (ch && ch !== '\n') ch = src[offset -= 1]; + + return offset + 1; + } + /** + * End of indentation, or null if the line's indent level is not more + * than `indent` + * + * @param {string} src + * @param {number} indent + * @param {number} lineStart + * @returns {?number} + */ + + + static endOfBlockIndent(src, indent, lineStart) { + const inEnd = Node.endOfIndent(src, lineStart); + + if (inEnd > lineStart + indent) { + return inEnd; + } else { + const wsEnd = Node.endOfWhiteSpace(src, inEnd); + const ch = src[wsEnd]; + if (!ch || ch === '\n') return wsEnd; + } + + return null; + } + + static atBlank(src, offset, endAsBlank) { + const ch = src[offset]; + return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch; + } + + static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) { + if (!ch || indentDiff < 0) return false; + if (indentDiff > 0) return true; + return indicatorAsIndent && ch === '-'; + } // should be at line or string end, or at next non-whitespace char + + + static normalizeOffset(src, offset) { + const ch = src[offset]; + return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset); + } // fold single newline into space, multiple newlines to N - 1 newlines + // presumes src[offset] === '\n' + + + static foldNewline(src, offset, indent) { + let inCount = 0; + let error = false; + let fold = ''; + let ch = src[offset + 1]; + + while (ch === ' ' || ch === '\t' || ch === '\n') { + switch (ch) { + case '\n': + inCount = 0; + offset += 1; + fold += '\n'; + break; + + case '\t': + if (inCount <= indent) error = true; + offset = Node.endOfWhiteSpace(src, offset + 2) - 1; + break; + + case ' ': + inCount += 1; + offset += 1; + break; + } + + ch = src[offset + 1]; + } + + if (!fold) fold = ' '; + if (ch && inCount <= indent) error = true; + return { + fold, + offset, + error + }; + } + + constructor(type, props, context) { + Object.defineProperty(this, 'context', { + value: context || null, + writable: true + }); + this.error = null; + this.range = null; + this.valueRange = null; + this.props = props || []; + this.type = type; + this.value = null; + } + + getPropValue(idx, key, skipKey) { + if (!this.context) return null; + const { + src + } = this.context; + const prop = this.props[idx]; + return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null; + } + + get anchor() { + for (let i = 0; i < this.props.length; ++i) { + const anchor = this.getPropValue(i, Char.ANCHOR, true); + if (anchor != null) return anchor; + } + + return null; + } + + get comment() { + const comments = []; + + for (let i = 0; i < this.props.length; ++i) { + const comment = this.getPropValue(i, Char.COMMENT, true); + if (comment != null) comments.push(comment); + } + + return comments.length > 0 ? comments.join('\n') : null; + } + + commentHasRequiredWhitespace(start) { + const { + src + } = this.context; + if (this.header && start === this.header.end) return false; + if (!this.valueRange) return false; + const { + end + } = this.valueRange; + return start !== end || Node.atBlank(src, end - 1); + } + + get hasComment() { + if (this.context) { + const { + src + } = this.context; + + for (let i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] === Char.COMMENT) return true; + } + } + + return false; + } + + get hasProps() { + if (this.context) { + const { + src + } = this.context; + + for (let i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] !== Char.COMMENT) return true; + } + } + + return false; + } + + get includesTrailingLines() { + return false; + } + + get jsonLike() { + const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE]; + return jsonLikeTypes.indexOf(this.type) !== -1; + } + + get rangeAsLinePos() { + if (!this.range || !this.context) return undefined; + const start = getLinePos(this.range.start, this.context.root); + if (!start) return undefined; + const end = getLinePos(this.range.end, this.context.root); + return { + start, + end + }; + } + + get rawValue() { + if (!this.valueRange || !this.context) return null; + const { + start, + end + } = this.valueRange; + return this.context.src.slice(start, end); + } + + get tag() { + for (let i = 0; i < this.props.length; ++i) { + const tag = this.getPropValue(i, Char.TAG, false); + + if (tag != null) { + if (tag[1] === '<') { + return { + verbatim: tag.slice(2, -1) + }; + } else { + // eslint-disable-next-line no-unused-vars + const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/); + return { + handle, + suffix + }; + } + } + } + + return null; + } + + get valueRangeContainsNewline() { + if (!this.valueRange || !this.context) return false; + const { + start, + end + } = this.valueRange; + const { + src + } = this.context; + + for (let i = start; i < end; ++i) { + if (src[i] === '\n') return true; + } + + return false; + } + + parseComment(start) { + const { + src + } = this.context; + + if (src[start] === Char.COMMENT) { + const end = Node.endOfLine(src, start + 1); + const commentRange = new Range(start, end); + this.props.push(commentRange); + return end; + } + + return start; + } + /** + * Populates the `origStart` and `origEnd` values of all ranges for this + * node. Extended by child classes to handle descendant nodes. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + + setOrigRanges(cr, offset) { + if (this.range) offset = this.range.setOrigRange(cr, offset); + if (this.valueRange) this.valueRange.setOrigRange(cr, offset); + this.props.forEach(prop => prop.setOrigRange(cr, offset)); + return offset; + } + + toString() { + const { + context: { + src + }, + range, + value + } = this; + if (value != null) return value; + const str = src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + +} + +class YAMLError extends Error { + constructor(name, source, message) { + if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`); + super(); + this.name = name; + this.message = message; + this.source = source; + } + + makePretty() { + if (!this.source) return; + this.nodeType = this.source.type; + const cst = this.source.context && this.source.context.root; + + if (typeof this.offset === 'number') { + this.range = new Range(this.offset, this.offset + 1); + const start = cst && getLinePos(this.offset, cst); + + if (start) { + const end = { + line: start.line, + col: start.col + 1 + }; + this.linePos = { + start, + end + }; + } + + delete this.offset; + } else { + this.range = this.source.range; + this.linePos = this.source.rangeAsLinePos; + } + + if (this.linePos) { + const { + line, + col + } = this.linePos.start; + this.message += ` at line ${line}, column ${col}`; + const ctx = cst && getPrettyContext(this.linePos, cst); + if (ctx) this.message += `:\n\n${ctx}\n`; + } + + delete this.source; + } + +} +class YAMLReferenceError extends YAMLError { + constructor(source, message) { + super('YAMLReferenceError', source, message); + } + +} +class YAMLSemanticError extends YAMLError { + constructor(source, message) { + super('YAMLSemanticError', source, message); + } + +} +class YAMLSyntaxError extends YAMLError { + constructor(source, message) { + super('YAMLSyntaxError', source, message); + } + +} +class YAMLWarning extends YAMLError { + constructor(source, message) { + super('YAMLWarning', source, message); + } + +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +class PlainValue extends Node { + static endOfLine(src, start, inFlow) { + let ch = src[start]; + let offset = start; + + while (ch && ch !== '\n') { + if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break; + const next = src[offset + 1]; + if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break; + if ((ch === ' ' || ch === '\t') && next === '#') break; + offset += 1; + ch = next; + } + + return offset; + } + + get strValue() { + if (!this.valueRange || !this.context) return null; + let { + start, + end + } = this.valueRange; + const { + src + } = this.context; + let ch = src[end - 1]; + + while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) ch = src[--end - 1]; + + let str = ''; + + for (let i = start; i < end; ++i) { + const ch = src[i]; + + if (ch === '\n') { + const { + fold, + offset + } = Node.foldNewline(src, i, -1); + str += fold; + i = offset; + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + const wsStart = i; + let next = src[i + 1]; + + while (i < end && (next === ' ' || next === '\t')) { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + const ch0 = src[start]; + + switch (ch0) { + case '\t': + { + const msg = 'Plain value cannot start with a tab character'; + const errors = [new YAMLSemanticError(this, msg)]; + return { + errors, + str + }; + } + + case '@': + case '`': + { + const msg = `Plain value cannot start with reserved character ${ch0}`; + const errors = [new YAMLSemanticError(this, msg)]; + return { + errors, + str + }; + } + + default: + return str; + } + } + + parseBlockValue(start) { + const { + indent, + inFlow, + src + } = this.context; + let offset = start; + let valueEnd = start; + + for (let ch = src[offset]; ch === '\n'; ch = src[offset]) { + if (Node.atDocumentBoundary(src, offset + 1)) break; + const end = Node.endOfBlockIndent(src, indent, offset + 1); + if (end === null || src[end] === '#') break; + + if (src[end] === '\n') { + offset = end; + } else { + valueEnd = PlainValue.endOfLine(src, end, inFlow); + offset = valueEnd; + } + } + + if (this.valueRange.isEmpty()) this.valueRange.start = start; + this.valueRange.end = valueEnd; + return valueEnd; + } + /** + * Parses a plain value from the source + * + * Accepted forms are: + * ``` + * #comment + * + * first line + * + * first line #comment + * + * first line + * block + * lines + * + * #comment + * block + * lines + * ``` + * where block lines are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar, may be `\n` + */ + + + parse(context, start) { + this.context = context; + const { + inFlow, + src + } = context; + let offset = start; + const ch = src[offset]; + + if (ch && ch !== '#' && ch !== '\n') { + offset = PlainValue.endOfLine(src, start, inFlow); + } + + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + + if (!this.hasComment || this.valueRange.isEmpty()) { + offset = this.parseBlockValue(offset); + } + + return offset; + } + +} + +exports.Char = Char; +exports.Node = Node; +exports.PlainValue = PlainValue; +exports.Range = Range; +exports.Type = Type; +exports.YAMLError = YAMLError; +exports.YAMLReferenceError = YAMLReferenceError; +exports.YAMLSemanticError = YAMLSemanticError; +exports.YAMLSyntaxError = YAMLSyntaxError; +exports.YAMLWarning = YAMLWarning; +exports._defineProperty = _defineProperty; +exports.defaultTagPrefix = defaultTagPrefix; +exports.defaultTags = defaultTags; diff --git a/node_modules/yaml/dist/Schema-88e323a7.js b/node_modules/yaml/dist/Schema-88e323a7.js new file mode 100644 index 0000000..5de109f --- /dev/null +++ b/node_modules/yaml/dist/Schema-88e323a7.js @@ -0,0 +1,525 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var warnings = require('./warnings-1000a372.js'); + +function createMap(schema, obj, ctx) { + const map = new resolveSeq.YAMLMap(schema); + + if (obj instanceof Map) { + for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx)); + } else if (obj && typeof obj === 'object') { + for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx)); + } + + if (typeof schema.sortMapEntries === 'function') { + map.items.sort(schema.sortMapEntries); + } + + return map; +} + +const map = { + createNode: createMap, + default: true, + nodeClass: resolveSeq.YAMLMap, + tag: 'tag:yaml.org,2002:map', + resolve: resolveSeq.resolveMap +}; + +function createSeq(schema, obj, ctx) { + const seq = new resolveSeq.YAMLSeq(schema); + + if (obj && obj[Symbol.iterator]) { + for (const it of obj) { + const v = schema.createNode(it, ctx.wrapScalars, null, ctx); + seq.items.push(v); + } + } + + return seq; +} + +const seq = { + createNode: createSeq, + default: true, + nodeClass: resolveSeq.YAMLSeq, + tag: 'tag:yaml.org,2002:seq', + resolve: resolveSeq.resolveSeq +}; + +const string = { + identify: value => typeof value === 'string', + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveSeq.resolveString, + + stringify(item, ctx, onComment, onChompKeep) { + ctx = Object.assign({ + actualString: true + }, ctx); + return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep); + }, + + options: resolveSeq.strOptions +}; + +const failsafe = [map, seq, string]; + +/* global BigInt */ + +const intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value); + +const intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix); + +function intStringify$1(node, radix, prefix) { + const { + value + } = node; + if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix); + return resolveSeq.stringifyNumber(node); +} + +const nullObj = { + identify: value => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: () => null, + options: resolveSeq.nullOptions, + stringify: () => resolveSeq.nullOptions.nullStr +}; +const boolObj = { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/, + resolve: str => str[0] === 't' || str[0] === 'T', + options: resolveSeq.boolOptions, + stringify: ({ + value + }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr +}; +const octObj = { + identify: value => intIdentify$2(value) && value >= 0, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^0o([0-7]+)$/, + resolve: (str, oct) => intResolve$1(str, oct, 8), + options: resolveSeq.intOptions, + stringify: node => intStringify$1(node, 8, '0o') +}; +const intObj = { + identify: intIdentify$2, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^[-+]?[0-9]+$/, + resolve: str => intResolve$1(str, str, 10), + options: resolveSeq.intOptions, + stringify: resolveSeq.stringifyNumber +}; +const hexObj = { + identify: value => intIdentify$2(value) && value >= 0, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^0x([0-9a-fA-F]+)$/, + resolve: (str, hex) => intResolve$1(str, hex, 16), + options: resolveSeq.intOptions, + stringify: node => intStringify$1(node, 16, '0x') +}; +const nanObj = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, + stringify: resolveSeq.stringifyNumber +}; +const expObj = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/, + resolve: str => parseFloat(str), + stringify: ({ + value + }) => Number(value).toExponential() +}; +const floatObj = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/, + + resolve(str, frac1, frac2) { + const frac = frac1 || frac2; + const node = new resolveSeq.Scalar(parseFloat(str)); + if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length; + return node; + }, + + stringify: resolveSeq.stringifyNumber +}; +const core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]); + +/* global BigInt */ + +const intIdentify$1 = value => typeof value === 'bigint' || Number.isInteger(value); + +const stringifyJSON = ({ + value +}) => JSON.stringify(value); + +const json = [map, seq, { + identify: value => typeof value === 'string', + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveSeq.resolveString, + stringify: stringifyJSON +}, { + identify: value => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^null$/, + resolve: () => null, + stringify: stringifyJSON +}, { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^true|false$/, + resolve: str => str === 'true', + stringify: stringifyJSON +}, { + identify: intIdentify$1, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^-?(?:0|[1-9][0-9]*)$/, + resolve: str => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10), + stringify: ({ + value + }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value) +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, + resolve: str => parseFloat(str), + stringify: stringifyJSON +}]; + +json.scalarFallback = str => { + throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`); +}; + +/* global BigInt */ + +const boolStringify = ({ + value +}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr; + +const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value); + +function intResolve(sign, src, radix) { + let str = src.replace(/_/g, ''); + + if (resolveSeq.intOptions.asBigInt) { + switch (radix) { + case 2: + str = `0b${str}`; + break; + + case 8: + str = `0o${str}`; + break; + + case 16: + str = `0x${str}`; + break; + } + + const n = BigInt(str); + return sign === '-' ? BigInt(-1) * n : n; + } + + const n = parseInt(str, radix); + return sign === '-' ? -1 * n : n; +} + +function intStringify(node, radix, prefix) { + const { + value + } = node; + + if (intIdentify(value)) { + const str = value.toString(radix); + return value < 0 ? '-' + prefix + str.substr(1) : prefix + str; + } + + return resolveSeq.stringifyNumber(node); +} + +const yaml11 = failsafe.concat([{ + identify: value => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: () => null, + options: resolveSeq.nullOptions, + stringify: () => resolveSeq.nullOptions.nullStr +}, { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, + resolve: () => true, + options: resolveSeq.boolOptions, + stringify: boolStringify +}, { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, + resolve: () => false, + options: resolveSeq.boolOptions, + stringify: boolStringify +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'BIN', + test: /^([-+]?)0b([0-1_]+)$/, + resolve: (str, sign, bin) => intResolve(sign, bin, 2), + stringify: node => intStringify(node, 2, '0b') +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^([-+]?)0([0-7_]+)$/, + resolve: (str, sign, oct) => intResolve(sign, oct, 8), + stringify: node => intStringify(node, 8, '0') +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^([-+]?)([0-9][0-9_]*)$/, + resolve: (str, sign, abs) => intResolve(sign, abs, 10), + stringify: resolveSeq.stringifyNumber +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^([-+]?)0x([0-9a-fA-F_]+)$/, + resolve: (str, sign, hex) => intResolve(sign, hex, 16), + stringify: node => intStringify(node, 16, '0x') +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, + stringify: resolveSeq.stringifyNumber +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, + resolve: str => parseFloat(str.replace(/_/g, '')), + stringify: ({ + value + }) => Number(value).toExponential() +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, + + resolve(str, frac) { + const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, ''))); + + if (frac) { + const f = frac.replace(/_/g, ''); + if (f[f.length - 1] === '0') node.minFractionDigits = f.length; + } + + return node; + }, + + stringify: resolveSeq.stringifyNumber +}], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp); + +const schemas = { + core, + failsafe, + json, + yaml11 +}; +const tags = { + binary: warnings.binary, + bool: boolObj, + float: floatObj, + floatExp: expObj, + floatNaN: nanObj, + floatTime: warnings.floatTime, + int: intObj, + intHex: hexObj, + intOct: octObj, + intTime: warnings.intTime, + map, + null: nullObj, + omap: warnings.omap, + pairs: warnings.pairs, + seq, + set: warnings.set, + timestamp: warnings.timestamp +}; + +function findTagObject(value, tagName, tags) { + if (tagName) { + const match = tags.filter(t => t.tag === tagName); + const tagObj = match.find(t => !t.format) || match[0]; + if (!tagObj) throw new Error(`Tag ${tagName} not found`); + return tagObj; + } // TODO: deprecate/remove class check + + + return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format); +} + +function createNode(value, tagName, ctx) { + if (value instanceof resolveSeq.Node) return value; + const { + defaultPrefix, + onTagObj, + prevObjects, + schema, + wrapScalars + } = ctx; + if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2); + let tagObj = findTagObject(value, tagName, schema.tags); + + if (!tagObj) { + if (typeof value.toJSON === 'function') value = value.toJSON(); + if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq.Scalar(value) : value; + tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map; + } + + if (onTagObj) { + onTagObj(tagObj); + delete ctx.onTagObj; + } // Detect duplicate references to the same object & use Alias nodes for all + // after first. The `obj` wrapper allows for circular references to resolve. + + + const obj = { + value: undefined, + node: undefined + }; + + if (value && typeof value === 'object' && prevObjects) { + const prev = prevObjects.get(value); + + if (prev) { + const alias = new resolveSeq.Alias(prev); // leaves source dirty; must be cleaned by caller + + ctx.aliasNodes.push(alias); // defined along with prevObjects + + return alias; + } + + obj.value = value; + prevObjects.set(value, obj); + } + + obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value; + if (tagName && obj.node instanceof resolveSeq.Node) obj.node.tag = tagName; + return obj.node; +} + +function getSchemaTags(schemas, knownTags, customTags, schemaId) { + let tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11' + + if (!tags) { + const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', '); + throw new Error(`Unknown schema "${schemaId}"; use one of ${keys}`); + } + + if (Array.isArray(customTags)) { + for (const tag of customTags) tags = tags.concat(tag); + } else if (typeof customTags === 'function') { + tags = customTags(tags.slice()); + } + + for (let i = 0; i < tags.length; ++i) { + const tag = tags[i]; + + if (typeof tag === 'string') { + const tagObj = knownTags[tag]; + + if (!tagObj) { + const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', '); + throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`); + } + + tags[i] = tagObj; + } + } + + return tags; +} + +const sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0; + +class Schema { + // TODO: remove in v2 + // TODO: remove in v2 + constructor({ + customTags, + merge, + schema, + sortMapEntries, + tags: deprecatedCustomTags + }) { + this.merge = !!merge; + this.name = schema; + this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null; + if (!customTags && deprecatedCustomTags) warnings.warnOptionDeprecation('tags', 'customTags'); + this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema); + } + + createNode(value, wrapScalars, tagName, ctx) { + const baseCtx = { + defaultPrefix: Schema.defaultPrefix, + schema: this, + wrapScalars + }; + const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx; + return createNode(value, tagName, createCtx); + } + + createPair(key, value, ctx) { + if (!ctx) ctx = { + wrapScalars: true + }; + const k = this.createNode(key, ctx.wrapScalars, null, ctx); + const v = this.createNode(value, ctx.wrapScalars, null, ctx); + return new resolveSeq.Pair(k, v); + } + +} + +PlainValue._defineProperty(Schema, "defaultPrefix", PlainValue.defaultTagPrefix); + +PlainValue._defineProperty(Schema, "defaultTags", PlainValue.defaultTags); + +exports.Schema = Schema; diff --git a/node_modules/yaml/dist/index.js b/node_modules/yaml/dist/index.js new file mode 100644 index 0000000..6df1c77 --- /dev/null +++ b/node_modules/yaml/dist/index.js @@ -0,0 +1,79 @@ +'use strict'; + +var parseCst = require('./parse-cst.js'); +var Document$1 = require('./Document-9b4560a1.js'); +var Schema = require('./Schema-88e323a7.js'); +var PlainValue = require('./PlainValue-ec8e588e.js'); +var warnings = require('./warnings-1000a372.js'); +require('./resolveSeq-d03cb037.js'); + +function createNode(value, wrapScalars = true, tag) { + if (tag === undefined && typeof wrapScalars === 'string') { + tag = wrapScalars; + wrapScalars = true; + } + + const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions); + const schema = new Schema.Schema(options); + return schema.createNode(value, wrapScalars, tag); +} + +class Document extends Document$1.Document { + constructor(options) { + super(Object.assign({}, Document$1.defaultOptions, options)); + } + +} + +function parseAllDocuments(src, options) { + const stream = []; + let prev; + + for (const cstDoc of parseCst.parse(src)) { + const doc = new Document(options); + doc.parse(cstDoc, prev); + stream.push(doc); + prev = doc; + } + + return stream; +} + +function parseDocument(src, options) { + const cst = parseCst.parse(src); + const doc = new Document(options).parse(cst[0]); + + if (cst.length > 1) { + const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()'; + doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg)); + } + + return doc; +} + +function parse(src, options) { + const doc = parseDocument(src, options); + doc.warnings.forEach(warning => warnings.warn(warning)); + if (doc.errors.length > 0) throw doc.errors[0]; + return doc.toJSON(); +} + +function stringify(value, options) { + const doc = new Document(options); + doc.contents = value; + return String(doc); +} + +const YAML = { + createNode, + defaultOptions: Document$1.defaultOptions, + Document, + parse, + parseAllDocuments, + parseCST: parseCst.parse, + parseDocument, + scalarOptions: Document$1.scalarOptions, + stringify +}; + +exports.YAML = YAML; diff --git a/node_modules/yaml/dist/legacy-exports.js b/node_modules/yaml/dist/legacy-exports.js new file mode 100644 index 0000000..9a5d037 --- /dev/null +++ b/node_modules/yaml/dist/legacy-exports.js @@ -0,0 +1,16 @@ +'use strict'; + +var warnings = require('./warnings-1000a372.js'); +require('./PlainValue-ec8e588e.js'); +require('./resolveSeq-d03cb037.js'); + + + +exports.binary = warnings.binary; +exports.floatTime = warnings.floatTime; +exports.intTime = warnings.intTime; +exports.omap = warnings.omap; +exports.pairs = warnings.pairs; +exports.set = warnings.set; +exports.timestamp = warnings.timestamp; +exports.warnFileDeprecation = warnings.warnFileDeprecation; diff --git a/node_modules/yaml/dist/parse-cst.js b/node_modules/yaml/dist/parse-cst.js new file mode 100644 index 0000000..d69bedc --- /dev/null +++ b/node_modules/yaml/dist/parse-cst.js @@ -0,0 +1,1753 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); + +class BlankLine extends PlainValue.Node { + constructor() { + super(PlainValue.Type.BLANK_LINE); + } + /* istanbul ignore next */ + + + get includesTrailingLines() { + // This is never called from anywhere, but if it were, + // this is the value it should return. + return true; + } + /** + * Parses a blank line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first \n character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + this.range = new PlainValue.Range(start, start + 1); + return start + 1; + } + +} + +class CollectionItem extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.node = null; + } + + get includesTrailingLines() { + return !!this.node && this.node.includesTrailingLines; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let { + atLineStart, + lineStart + } = context; + if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM) this.error = new PlainValue.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line'); + const indent = atLineStart ? start - lineStart : context.indent; + let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1); + let ch = src[offset]; + const inlineComment = ch === '#'; + const comments = []; + let blankLine = null; + + while (ch === '\n' || ch === '#') { + if (ch === '#') { + const end = PlainValue.Node.endOfLine(src, offset + 1); + comments.push(new PlainValue.Range(offset, end)); + offset = end; + } else { + atLineStart = true; + lineStart = offset + 1; + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n' && comments.length === 0) { + blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src + }, lineStart); + } + + offset = PlainValue.Node.endOfIndent(src, lineStart); + } + + ch = src[offset]; + } + + if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) { + this.node = parseNode({ + atLineStart, + inCollection: false, + indent, + lineStart, + parent: this + }, offset); + } else if (ch && lineStart > start + 1) { + offset = lineStart - 1; + } + + if (this.node) { + if (blankLine) { + // Only blank lines preceding non-empty nodes are captured. Note that + // this means that collection item range start indices do not always + // increase monotonically. -- eemeli/yaml#126 + const items = context.parent.items || context.parent.contents; + if (items) items.push(blankLine); + } + + if (comments.length) Array.prototype.push.apply(this.props, comments); + offset = this.node.range.end; + } else { + if (inlineComment) { + const c = comments[0]; + this.props.push(c); + offset = c.end; + } else { + offset = PlainValue.Node.endOfLine(src, start + 1); + } + } + + const end = this.node ? this.node.valueRange.end : offset; + this.valueRange = new PlainValue.Range(start, end); + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + return this.node ? this.node.setOrigRanges(cr, offset) : offset; + } + + toString() { + const { + context: { + src + }, + node, + range, + value + } = this; + if (value != null) return value; + const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end); + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + +} + +class Comment extends PlainValue.Node { + constructor() { + super(PlainValue.Type.COMMENT); + } + /** + * Parses a comment line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + parse(context, start) { + this.context = context; + const offset = this.parseComment(start); + this.range = new PlainValue.Range(start, offset); + return offset; + } + +} + +function grabCollectionEndComments(node) { + let cnode = node; + + while (cnode instanceof CollectionItem) cnode = cnode.node; + + if (!(cnode instanceof Collection)) return null; + const len = cnode.items.length; + let ci = -1; + + for (let i = len - 1; i >= 0; --i) { + const n = cnode.items[i]; + + if (n.type === PlainValue.Type.COMMENT) { + // Keep sufficiently indented comments with preceding node + const { + indent, + lineStart + } = n.context; + if (indent > 0 && n.range.start >= lineStart + indent) break; + ci = i; + } else if (n.type === PlainValue.Type.BLANK_LINE) ci = i;else break; + } + + if (ci === -1) return null; + const ca = cnode.items.splice(ci, len - ci); + const prevEnd = ca[0].range.start; + + while (true) { + cnode.range.end = prevEnd; + if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd; + if (cnode === node) break; + cnode = cnode.context.parent; + } + + return ca; +} +class Collection extends PlainValue.Node { + static nextContentHasIndent(src, offset, indent) { + const lineStart = PlainValue.Node.endOfLine(src, offset) + 1; + offset = PlainValue.Node.endOfWhiteSpace(src, lineStart); + const ch = src[offset]; + if (!ch) return false; + if (offset >= lineStart + indent) return true; + if (ch !== '#' && ch !== '\n') return false; + return Collection.nextContentHasIndent(src, offset, indent); + } + + constructor(firstItem) { + super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP); + + for (let i = firstItem.props.length - 1; i >= 0; --i) { + if (firstItem.props[i].start < firstItem.context.lineStart) { + // props on previous line are assumed by the collection + this.props = firstItem.props.slice(0, i + 1); + firstItem.props = firstItem.props.slice(i + 1); + const itemRange = firstItem.props[0] || firstItem.valueRange; + firstItem.range.start = itemRange.start; + break; + } + } + + this.items = [firstItem]; + const ec = grabCollectionEndComments(firstItem); + if (ec) Array.prototype.push.apply(this.items, ec); + } + + get includesTrailingLines() { + return this.items.length > 0; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; // It's easier to recalculate lineStart here rather than tracking down the + // last context from which to read it -- eemeli/yaml#2 + + let lineStart = PlainValue.Node.startOfLine(src, start); + const firstItem = this.items[0]; // First-item context needs to be correct for later comment handling + // -- eemeli/yaml#17 + + firstItem.context.parent = this; + this.valueRange = PlainValue.Range.copy(firstItem.valueRange); + const indent = firstItem.range.start - firstItem.context.lineStart; + let offset = start; + offset = PlainValue.Node.normalizeOffset(src, offset); + let ch = src[offset]; + let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset; + let prevIncludesTrailingLines = false; + + while (ch) { + while (ch === '\n' || ch === '#') { + if (atLineStart && ch === '\n' && !prevIncludesTrailingLines) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + + this.items.push(blankLine); + offset -= 1; // blankLine.parse() consumes terminal newline + } else if (ch === '#') { + if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) { + return offset; + } + + const comment = new Comment(); + offset = comment.parse({ + indent, + lineStart, + src + }, offset); + this.items.push(comment); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + } + + lineStart = offset + 1; + offset = PlainValue.Node.endOfIndent(src, lineStart); + + if (PlainValue.Node.atBlank(src, offset)) { + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset); + const next = src[wsEnd]; + + if (!next || next === '\n' || next === '#') { + offset = wsEnd; + } + } + + ch = src[offset]; + atLineStart = true; + } + + if (!ch) { + break; + } + + if (offset !== lineStart + indent && (atLineStart || ch !== ':')) { + if (offset < lineStart + indent) { + if (lineStart > start) offset = lineStart; + break; + } else if (!this.error) { + const msg = 'All collection items must start at the same column'; + this.error = new PlainValue.YAMLSyntaxError(this, msg); + } + } + + if (firstItem.type === PlainValue.Type.SEQ_ITEM) { + if (ch !== '-') { + if (lineStart > start) offset = lineStart; + break; + } + } else if (ch === '-' && !this.error) { + // map key may start with -, as long as it's followed by a non-whitespace char + const next = src[offset + 1]; + + if (!next || next === '\n' || next === '\t' || next === ' ') { + const msg = 'A collection cannot be both a mapping and a sequence'; + this.error = new PlainValue.YAMLSyntaxError(this, msg); + } + } + + const node = parseNode({ + atLineStart, + inCollection: true, + indent, + lineStart, + parent: this + }, offset); + if (!node) return offset; // at next document start + + this.items.push(node); + this.valueRange.end = node.valueRange.end; + offset = PlainValue.Node.normalizeOffset(src, node.range.end); + ch = src[offset]; + atLineStart = false; + prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range + // has advanced to check the current line's indentation level + // -- eemeli/yaml#10 & eemeli/yaml#38 + + if (ch) { + let ls = offset - 1; + let prev = src[ls]; + + while (prev === ' ' || prev === '\t') prev = src[--ls]; + + if (prev === '\n') { + lineStart = ls + 1; + atLineStart = true; + } + } + + const ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.items, ec); + } + + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.items.forEach(node => { + offset = node.setOrigRanges(cr, offset); + }); + return offset; + } + + toString() { + const { + context: { + src + }, + items, + range, + value + } = this; + if (value != null) return value; + let str = src.slice(range.start, items[0].range.start) + String(items[0]); + + for (let i = 1; i < items.length; ++i) { + const item = items[i]; + const { + atLineStart, + indent + } = item.context; + if (atLineStart) for (let i = 0; i < indent; ++i) str += ' '; + str += String(item); + } + + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + +} + +class Directive extends PlainValue.Node { + constructor() { + super(PlainValue.Type.DIRECTIVE); + this.name = null; + } + + get parameters() { + const raw = this.rawValue; + return raw ? raw.trim().split(/[ \t]+/) : []; + } + + parseName(start) { + const { + src + } = this.context; + let offset = start; + let ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') ch = src[offset += 1]; + + this.name = src.slice(start, offset); + return offset; + } + + parseParameters(start) { + const { + src + } = this.context; + let offset = start; + let ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '#') ch = src[offset += 1]; + + this.valueRange = new PlainValue.Range(start, offset); + return offset; + } + + parse(context, start) { + this.context = context; + let offset = this.parseName(start + 1); + offset = this.parseParameters(offset); + offset = this.parseComment(offset); + this.range = new PlainValue.Range(start, offset); + return offset; + } + +} + +class Document extends PlainValue.Node { + static startCommentOrEndBlankLine(src, start) { + const offset = PlainValue.Node.endOfWhiteSpace(src, start); + const ch = src[offset]; + return ch === '#' || ch === '\n' ? offset : start; + } + + constructor() { + super(PlainValue.Type.DOCUMENT); + this.directives = null; + this.contents = null; + this.directivesEndMarker = null; + this.documentEndMarker = null; + } + + parseDirectives(start) { + const { + src + } = this.context; + this.directives = []; + let atLineStart = true; + let hasDirectives = false; + let offset = start; + + while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) { + offset = Document.startCommentOrEndBlankLine(src, offset); + + switch (src[offset]) { + case '\n': + if (atLineStart) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + + if (offset < src.length) { + this.directives.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + break; + + case '#': + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.directives.push(comment); + atLineStart = false; + } + break; + + case '%': + { + const directive = new Directive(); + offset = directive.parse({ + parent: this, + src + }, offset); + this.directives.push(directive); + hasDirectives = true; + atLineStart = false; + } + break; + + default: + if (hasDirectives) { + this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + } + + if (src[offset]) { + this.directivesEndMarker = new PlainValue.Range(offset, offset + 3); + return offset + 3; + } + + if (hasDirectives) { + this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + + parseContents(start) { + const { + parseNode, + src + } = this.context; + if (!this.contents) this.contents = []; + let lineStart = start; + + while (src[lineStart - 1] === '-') lineStart -= 1; + + let offset = PlainValue.Node.endOfWhiteSpace(src, start); + let atLineStart = lineStart === start; + this.valueRange = new PlainValue.Range(offset); + + while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) { + switch (src[offset]) { + case '\n': + if (atLineStart) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + + if (offset < src.length) { + this.contents.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + lineStart = offset; + break; + + case '#': + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.contents.push(comment); + atLineStart = false; + } + break; + + default: + { + const iEnd = PlainValue.Node.endOfIndent(src, offset); + const context = { + atLineStart, + indent: -1, + inFlow: false, + inCollection: false, + lineStart, + parent: this + }; + const node = parseNode(context, iEnd); + if (!node) return this.valueRange.end = iEnd; // at next document start + + this.contents.push(node); + offset = node.range.end; + atLineStart = false; + const ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.contents, ec); + } + } + + offset = Document.startCommentOrEndBlankLine(src, offset); + } + + this.valueRange.end = offset; + + if (src[offset]) { + this.documentEndMarker = new PlainValue.Range(offset, offset + 3); + offset += 3; + + if (src[offset]) { + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + + if (src[offset] === '#') { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.contents.push(comment); + } + + switch (src[offset]) { + case '\n': + offset += 1; + break; + + case undefined: + break; + + default: + this.error = new PlainValue.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix'); + } + } + } + + return offset; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + context.root = this; + this.context = context; + const { + src + } = context; + let offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM + + offset = this.parseDirectives(offset); + offset = this.parseContents(offset); + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.directives.forEach(node => { + offset = node.setOrigRanges(cr, offset); + }); + if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset); + this.contents.forEach(node => { + offset = node.setOrigRanges(cr, offset); + }); + if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset); + return offset; + } + + toString() { + const { + contents, + directives, + value + } = this; + if (value != null) return value; + let str = directives.join(''); + + if (contents.length > 0) { + if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT) str += '---\n'; + str += contents.join(''); + } + + if (str[str.length - 1] !== '\n') str += '\n'; + return str; + } + +} + +class Alias extends PlainValue.Node { + /** + * Parses an *alias from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = PlainValue.Node.endOfIdentifier(src, start + 1); + this.valueRange = new PlainValue.Range(start + 1, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + +} + +const Chomp = { + CLIP: 'CLIP', + KEEP: 'KEEP', + STRIP: 'STRIP' +}; +class BlockValue extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.blockIndent = null; + this.chomping = Chomp.CLIP; + this.header = null; + } + + get includesTrailingLines() { + return this.chomping === Chomp.KEEP; + } + + get strValue() { + if (!this.valueRange || !this.context) return null; + let { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (this.valueRange.isEmpty()) return ''; + let lastNewLine = null; + let ch = src[end - 1]; + + while (ch === '\n' || ch === '\t' || ch === ' ') { + end -= 1; + + if (end <= start) { + if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens + } + + if (ch === '\n') lastNewLine = end; + ch = src[end - 1]; + } + + let keepStart = end + 1; + + if (lastNewLine) { + if (this.chomping === Chomp.KEEP) { + keepStart = lastNewLine; + end = this.valueRange.end; + } else { + end = lastNewLine; + } + } + + const bi = indent + this.blockIndent; + const folded = this.type === PlainValue.Type.BLOCK_FOLDED; + let atStart = true; + let str = ''; + let sep = ''; + let prevMoreIndented = false; + + for (let i = start; i < end; ++i) { + for (let j = 0; j < bi; ++j) { + if (src[i] !== ' ') break; + i += 1; + } + + const ch = src[i]; + + if (ch === '\n') { + if (sep === '\n') str += '\n';else sep = '\n'; + } else { + const lineEnd = PlainValue.Node.endOfLine(src, i); + const line = src.slice(i, lineEnd); + i = lineEnd; + + if (folded && (ch === ' ' || ch === '\t') && i < keepStart) { + if (sep === ' ') sep = '\n';else if (!prevMoreIndented && !atStart && sep === '\n') sep = '\n\n'; + str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '') + + sep = lineEnd < end && src[lineEnd] || ''; + prevMoreIndented = true; + } else { + str += sep + line; + sep = folded && i < keepStart ? ' ' : '\n'; + prevMoreIndented = false; + } + + if (atStart && line !== '') atStart = false; + } + } + + return this.chomping === Chomp.STRIP ? str : str + '\n'; + } + + parseBlockHeader(start) { + const { + src + } = this.context; + let offset = start + 1; + let bi = ''; + + while (true) { + const ch = src[offset]; + + switch (ch) { + case '-': + this.chomping = Chomp.STRIP; + break; + + case '+': + this.chomping = Chomp.KEEP; + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + bi += ch; + break; + + default: + this.blockIndent = Number(bi) || null; + this.header = new PlainValue.Range(start, offset); + return offset; + } + + offset += 1; + } + } + + parseBlockValue(start) { + const { + indent, + src + } = this.context; + const explicit = !!this.blockIndent; + let offset = start; + let valueEnd = start; + let minBlockIndent = 1; + + for (let ch = src[offset]; ch === '\n'; ch = src[offset]) { + offset += 1; + if (PlainValue.Node.atDocumentBoundary(src, offset)) break; + const end = PlainValue.Node.endOfBlockIndent(src, indent, offset); // should not include tab? + + if (end === null) break; + const ch = src[end]; + const lineIndent = end - (offset + indent); + + if (!this.blockIndent) { + // no explicit block indent, none yet detected + if (src[end] !== '\n') { + // first line with non-whitespace content + if (lineIndent < minBlockIndent) { + const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator'; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + + this.blockIndent = lineIndent; + } else if (lineIndent > minBlockIndent) { + // empty line with more whitespace + minBlockIndent = lineIndent; + } + } else if (ch && ch !== '\n' && lineIndent < this.blockIndent) { + if (src[end] === '#') break; + + if (!this.error) { + const src = explicit ? 'explicit indentation indicator' : 'first line'; + const msg = `Block scalars must not be less indented than their ${src}`; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + } + + if (src[end] === '\n') { + offset = end; + } else { + offset = valueEnd = PlainValue.Node.endOfLine(src, end); + } + } + + if (this.chomping !== Chomp.KEEP) { + offset = src[valueEnd] ? valueEnd + 1 : valueEnd; + } + + this.valueRange = new PlainValue.Range(start + 1, offset); + return offset; + } + /** + * Parses a block value from the source + * + * Accepted forms are: + * ``` + * BS + * block + * lines + * + * BS #comment + * block + * lines + * ``` + * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines + * are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this block + */ + + + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = this.parseBlockHeader(start); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + offset = this.parseBlockValue(offset); + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + return this.header ? this.header.setOrigRange(cr, offset) : offset; + } + +} + +class FlowCollection extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.items = null; + } + + prevNodeIsJsonLike(idx = this.items.length) { + const node = this.items[idx - 1]; + return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1)); + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let { + indent, + lineStart + } = context; + let char = src[start]; // { or [ + + this.items = [{ + char, + offset: start + }]; + let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1); + char = src[offset]; + + while (char && char !== ']' && char !== '}') { + switch (char) { + case '\n': + { + lineStart = offset + 1; + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n') { + const blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src + }, lineStart); + this.items.push(blankLine); + } + + offset = PlainValue.Node.endOfIndent(src, lineStart); + + if (offset <= lineStart + indent) { + char = src[offset]; + + if (offset < lineStart + indent || char !== ']' && char !== '}') { + const msg = 'Insufficient indentation in flow collection'; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + } + } + break; + + case ',': + { + this.items.push({ + char, + offset + }); + offset += 1; + } + break; + + case '#': + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.items.push(comment); + } + break; + + case '?': + case ':': + { + const next = src[offset + 1]; + + if (next === '\n' || next === '\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace + char === ':' && this.prevNodeIsJsonLike()) { + this.items.push({ + char, + offset + }); + offset += 1; + break; + } + } + // fallthrough + + default: + { + const node = parseNode({ + atLineStart: false, + inCollection: false, + inFlow: true, + indent: -1, + lineStart, + parent: this + }, offset); + + if (!node) { + // at next document start + this.valueRange = new PlainValue.Range(start, offset); + return offset; + } + + this.items.push(node); + offset = PlainValue.Node.normalizeOffset(src, node.range.end); + } + } + + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + char = src[offset]; + } + + this.valueRange = new PlainValue.Range(start, offset + 1); + + if (char) { + this.items.push({ + char, + offset + }); + offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1); + offset = this.parseComment(offset); + } + + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.items.forEach(node => { + if (node instanceof PlainValue.Node) { + offset = node.setOrigRanges(cr, offset); + } else if (cr.length === 0) { + node.origOffset = node.offset; + } else { + let i = offset; + + while (i < cr.length) { + if (cr[i] > node.offset) break;else ++i; + } + + node.origOffset = node.offset + i; + offset = i; + } + }); + return offset; + } + + toString() { + const { + context: { + src + }, + items, + range, + value + } = this; + if (value != null) return value; + const nodes = items.filter(item => item instanceof PlainValue.Node); + let str = ''; + let prevEnd = range.start; + nodes.forEach(node => { + const prefix = src.slice(prevEnd, node.range.start); + prevEnd = node.range.end; + str += prefix + String(node); + + if (str[str.length - 1] === '\n' && src[prevEnd - 1] !== '\n' && src[prevEnd] === '\n') { + // Comment range does not include the terminal newline, but its + // stringified value does. Without this fix, newlines at comment ends + // get duplicated. + prevEnd += 1; + } + }); + str += src.slice(prevEnd, range.end); + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + +} + +class QuoteDouble extends PlainValue.Node { + static endOfQuote(src, offset) { + let ch = src[offset]; + + while (ch && ch !== '"') { + offset += ch === '\\' ? 2 : 1; + ch = src[offset]; + } + + return offset + 1; + } + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + + + get strValue() { + if (!this.valueRange || !this.context) return null; + const errors = []; + const { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (src[end - 1] !== '"') errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by + // escaped backslashes; also, this should be faster. + + let str = ''; + + for (let i = start + 1; i < end - 1; ++i) { + const ch = src[i]; + + if (ch === '\n') { + if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + const { + fold, + offset, + error + } = PlainValue.Node.foldNewline(src, i, indent); + str += fold; + i = offset; + if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented')); + } else if (ch === '\\') { + i += 1; + + switch (src[i]) { + case '0': + str += '\0'; + break; + // null character + + case 'a': + str += '\x07'; + break; + // bell character + + case 'b': + str += '\b'; + break; + // backspace + + case 'e': + str += '\x1b'; + break; + // escape character + + case 'f': + str += '\f'; + break; + // form feed + + case 'n': + str += '\n'; + break; + // line feed + + case 'r': + str += '\r'; + break; + // carriage return + + case 't': + str += '\t'; + break; + // horizontal tab + + case 'v': + str += '\v'; + break; + // vertical tab + + case 'N': + str += '\u0085'; + break; + // Unicode next line + + case '_': + str += '\u00a0'; + break; + // Unicode non-breaking space + + case 'L': + str += '\u2028'; + break; + // Unicode line separator + + case 'P': + str += '\u2029'; + break; + // Unicode paragraph separator + + case ' ': + str += ' '; + break; + + case '"': + str += '"'; + break; + + case '/': + str += '/'; + break; + + case '\\': + str += '\\'; + break; + + case '\t': + str += '\t'; + break; + + case 'x': + str += this.parseCharCode(i + 1, 2, errors); + i += 2; + break; + + case 'u': + str += this.parseCharCode(i + 1, 4, errors); + i += 4; + break; + + case 'U': + str += this.parseCharCode(i + 1, 8, errors); + i += 8; + break; + + case '\n': + // skip escaped newlines, but still trim the following line + while (src[i + 1] === ' ' || src[i + 1] === '\t') i += 1; + + break; + + default: + errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`)); + str += '\\' + src[i]; + } + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + const wsStart = i; + let next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors, + str + } : str; + } + + parseCharCode(offset, length, errors) { + const { + src + } = this.context; + const cc = src.substr(offset, length); + const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc); + const code = ok ? parseInt(cc, 16) : NaN; + + if (isNaN(code)) { + errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`)); + return src.substr(offset - 2, length + 2); + } + + return String.fromCodePoint(code); + } + /** + * Parses a "double quoted" value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = QuoteDouble.endOfQuote(src, start + 1); + this.valueRange = new PlainValue.Range(start, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + +} + +class QuoteSingle extends PlainValue.Node { + static endOfQuote(src, offset) { + let ch = src[offset]; + + while (ch) { + if (ch === "'") { + if (src[offset + 1] !== "'") break; + ch = src[offset += 2]; + } else { + ch = src[offset += 1]; + } + } + + return offset + 1; + } + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + + + get strValue() { + if (!this.valueRange || !this.context) return null; + const errors = []; + const { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (src[end - 1] !== "'") errors.push(new PlainValue.YAMLSyntaxError(this, "Missing closing 'quote")); + let str = ''; + + for (let i = start + 1; i < end - 1; ++i) { + const ch = src[i]; + + if (ch === '\n') { + if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + const { + fold, + offset, + error + } = PlainValue.Node.foldNewline(src, i, indent); + str += fold; + i = offset; + if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented')); + } else if (ch === "'") { + str += ch; + i += 1; + if (src[i] !== "'") errors.push(new PlainValue.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.')); + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + const wsStart = i; + let next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors, + str + } : str; + } + /** + * Parses a 'single quoted' value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = QuoteSingle.endOfQuote(src, start + 1); + this.valueRange = new PlainValue.Range(start, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + +} + +function createNewNode(type, props) { + switch (type) { + case PlainValue.Type.ALIAS: + return new Alias(type, props); + + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + return new BlockValue(type, props); + + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.FLOW_SEQ: + return new FlowCollection(type, props); + + case PlainValue.Type.MAP_KEY: + case PlainValue.Type.MAP_VALUE: + case PlainValue.Type.SEQ_ITEM: + return new CollectionItem(type, props); + + case PlainValue.Type.COMMENT: + case PlainValue.Type.PLAIN: + return new PlainValue.PlainValue(type, props); + + case PlainValue.Type.QUOTE_DOUBLE: + return new QuoteDouble(type, props); + + case PlainValue.Type.QUOTE_SINGLE: + return new QuoteSingle(type, props); + + /* istanbul ignore next */ + + default: + return null; + // should never happen + } +} +/** + * @param {boolean} atLineStart - Node starts at beginning of line + * @param {boolean} inFlow - true if currently in a flow context + * @param {boolean} inCollection - true if currently in a collection context + * @param {number} indent - Current level of indentation + * @param {number} lineStart - Start of the current line + * @param {Node} parent - The parent of the node + * @param {string} src - Source of the YAML document + */ + + +class ParseContext { + static parseType(src, offset, inFlow) { + switch (src[offset]) { + case '*': + return PlainValue.Type.ALIAS; + + case '>': + return PlainValue.Type.BLOCK_FOLDED; + + case '|': + return PlainValue.Type.BLOCK_LITERAL; + + case '{': + return PlainValue.Type.FLOW_MAP; + + case '[': + return PlainValue.Type.FLOW_SEQ; + + case '?': + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN; + + case ':': + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN; + + case '-': + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN; + + case '"': + return PlainValue.Type.QUOTE_DOUBLE; + + case "'": + return PlainValue.Type.QUOTE_SINGLE; + + default: + return PlainValue.Type.PLAIN; + } + } + + constructor(orig = {}, { + atLineStart, + inCollection, + inFlow, + indent, + lineStart, + parent + } = {}) { + PlainValue._defineProperty(this, "parseNode", (overlay, start) => { + if (PlainValue.Node.atDocumentBoundary(this.src, start)) return null; + const context = new ParseContext(this, overlay); + const { + props, + type, + valueStart + } = context.parseProps(start); + const node = createNewNode(type, props); + let offset = node.parse(context, valueStart); + node.range = new PlainValue.Range(start, offset); + /* istanbul ignore if */ + + if (offset <= start) { + // This should never happen, but if it does, let's make sure to at least + // step one character forward to avoid a busy loop. + node.error = new Error(`Node#parse consumed no characters`); + node.error.parseEnd = offset; + node.error.source = node; + node.range.end = start + 1; + } + + if (context.nodeStartsCollection(node)) { + if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) { + node.error = new PlainValue.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)'); + } + + const collection = new Collection(node); + offset = collection.parse(new ParseContext(context), offset); + collection.range = new PlainValue.Range(start, offset); + return collection; + } + + return node; + }); + + this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false; + this.inCollection = inCollection != null ? inCollection : orig.inCollection || false; + this.inFlow = inFlow != null ? inFlow : orig.inFlow || false; + this.indent = indent != null ? indent : orig.indent; + this.lineStart = lineStart != null ? lineStart : orig.lineStart; + this.parent = parent != null ? parent : orig.parent || {}; + this.root = orig.root; + this.src = orig.src; + } + + nodeStartsCollection(node) { + const { + inCollection, + inFlow, + src + } = this; + if (inCollection || inFlow) return false; + if (node instanceof CollectionItem) return true; // check for implicit key + + let offset = node.range.end; + if (src[offset] === '\n' || src[offset - 1] === '\n') return false; + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + return src[offset] === ':'; + } // Anchor and tag are before type, which determines the node implementation + // class; hence this intermediate step. + + + parseProps(offset) { + const { + inFlow, + parent, + src + } = this; + const props = []; + let lineHasProps = false; + offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset); + let ch = src[offset]; + + while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === '\n') { + if (ch === '\n') { + let inEnd = offset; + let lineStart; + + do { + lineStart = inEnd + 1; + inEnd = PlainValue.Node.endOfIndent(src, lineStart); + } while (src[inEnd] === '\n'); + + const indentDiff = inEnd - (lineStart + this.indent); + const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart; + if (src[inEnd] !== '#' && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break; + this.atLineStart = true; + this.lineStart = lineStart; + lineHasProps = false; + offset = inEnd; + } else if (ch === PlainValue.Char.COMMENT) { + const end = PlainValue.Node.endOfLine(src, offset + 1); + props.push(new PlainValue.Range(offset, end)); + offset = end; + } else { + let end = PlainValue.Node.endOfIdentifier(src, offset + 1); + + if (ch === PlainValue.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) { + // Let's presume we're dealing with a YAML 1.0 domain tag here, rather + // than an empty but 'foo.bar' private-tagged node in a flow collection + // followed without whitespace by a plain string starting with a year + // or date divided by something. + end = PlainValue.Node.endOfIdentifier(src, end + 5); + } + + props.push(new PlainValue.Range(offset, end)); + lineHasProps = true; + offset = PlainValue.Node.endOfWhiteSpace(src, end); + } + + ch = src[offset]; + } // '- &a : b' has an anchor on an empty node + + + if (lineHasProps && ch === ':' && PlainValue.Node.atBlank(src, offset + 1, true)) offset -= 1; + const type = ParseContext.parseType(src, offset, inFlow); + return { + props, + type, + valueStart: offset + }; + } + /** + * Parses a node from the source + * @param {ParseContext} overlay + * @param {number} start - Index of first non-whitespace character for the node + * @returns {?Node} - null if at a document boundary + */ + + +} + +// Published as 'yaml/parse-cst' +function parse(src) { + const cr = []; + + if (src.indexOf('\r') !== -1) { + src = src.replace(/\r\n?/g, (match, offset) => { + if (match.length > 1) cr.push(offset); + return '\n'; + }); + } + + const documents = []; + let offset = 0; + + do { + const doc = new Document(); + const context = new ParseContext({ + src + }); + offset = doc.parse(context, offset); + documents.push(doc); + } while (offset < src.length); + + documents.setOrigRanges = () => { + if (cr.length === 0) return false; + + for (let i = 1; i < cr.length; ++i) cr[i] -= i; + + let crOffset = 0; + + for (let i = 0; i < documents.length; ++i) { + crOffset = documents[i].setOrigRanges(cr, crOffset); + } + + cr.splice(0, cr.length); + return true; + }; + + documents.toString = () => documents.join('...\n'); + + return documents; +} + +exports.parse = parse; diff --git a/node_modules/yaml/dist/resolveSeq-d03cb037.js b/node_modules/yaml/dist/resolveSeq-d03cb037.js new file mode 100644 index 0000000..d7c7c8c --- /dev/null +++ b/node_modules/yaml/dist/resolveSeq-d03cb037.js @@ -0,0 +1,2161 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); + +function addCommentBefore(str, indent, comment) { + if (!comment) return str; + const cc = comment.replace(/[\s\S]^/gm, `$&${indent}#`); + return `#${cc}\n${indent}${str}`; +} +function addComment(str, indent, comment) { + return !comment ? str : comment.indexOf('\n') === -1 ? `${str} #${comment}` : `${str}\n` + comment.replace(/^/gm, `${indent || ''}#`); +} + +class Node {} + +function toJSON(value, arg, ctx) { + if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx)); + + if (value && typeof value.toJSON === 'function') { + const anchor = ctx && ctx.anchors && ctx.anchors.get(value); + if (anchor) ctx.onCreate = res => { + anchor.res = res; + delete ctx.onCreate; + }; + const res = value.toJSON(arg, ctx); + if (anchor && ctx.onCreate) ctx.onCreate(res); + return res; + } + + if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value); + return value; +} + +class Scalar extends Node { + constructor(value) { + super(); + this.value = value; + } + + toJSON(arg, ctx) { + return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx); + } + + toString() { + return String(this.value); + } + +} + +function collectionFromPath(schema, path, value) { + let v = value; + + for (let i = path.length - 1; i >= 0; --i) { + const k = path[i]; + + if (Number.isInteger(k) && k >= 0) { + const a = []; + a[k] = v; + v = a; + } else { + const o = {}; + Object.defineProperty(o, k, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + v = o; + } + } + + return schema.createNode(v, false); +} // null, undefined, or an empty non-string iterable (e.g. []) + + +const isEmptyPath = path => path == null || typeof path === 'object' && path[Symbol.iterator]().next().done; +class Collection extends Node { + constructor(schema) { + super(); + + PlainValue._defineProperty(this, "items", []); + + this.schema = schema; + } + + addIn(path, value) { + if (isEmptyPath(path)) this.add(value);else { + const [key, ...rest] = path; + const node = this.get(key, true); + if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + } + + deleteIn([key, ...rest]) { + if (rest.length === 0) return this.delete(key); + const node = this.get(key, true); + if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + + getIn([key, ...rest], keepScalar) { + const node = this.get(key, true); + if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined; + } + + hasAllNullValues() { + return this.items.every(node => { + if (!node || node.type !== 'PAIR') return false; + const n = node.value; + return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag; + }); + } + + hasIn([key, ...rest]) { + if (rest.length === 0) return this.has(key); + const node = this.get(key, true); + return node instanceof Collection ? node.hasIn(rest) : false; + } + + setIn([key, ...rest], value) { + if (rest.length === 0) { + this.set(key, value); + } else { + const node = this.get(key, true); + if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + } // overridden in implementations + + /* istanbul ignore next */ + + + toJSON() { + return null; + } + + toString(ctx, { + blockItem, + flowChars, + isMap, + itemIndent + }, onComment, onChompKeep) { + const { + indent, + indentStep, + stringify + } = ctx; + const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow; + if (inFlow) itemIndent += indentStep; + const allNullValues = isMap && this.hasAllNullValues(); + ctx = Object.assign({}, ctx, { + allNullValues, + indent: itemIndent, + inFlow, + type: null + }); + let chompKeep = false; + let hasItemWithNewLine = false; + const nodes = this.items.reduce((nodes, item, i) => { + let comment; + + if (item) { + if (!chompKeep && item.spaceBefore) nodes.push({ + type: 'comment', + str: '' + }); + if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(line => { + nodes.push({ + type: 'comment', + str: `#${line}` + }); + }); + if (item.comment) comment = item.comment; + if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true; + } + + chompKeep = false; + let str = stringify(item, ctx, () => comment = null, () => chompKeep = true); + if (inFlow && !hasItemWithNewLine && str.includes('\n')) hasItemWithNewLine = true; + if (inFlow && i < this.items.length - 1) str += ','; + str = addComment(str, itemIndent, comment); + if (chompKeep && (comment || inFlow)) chompKeep = false; + nodes.push({ + type: 'item', + str + }); + return nodes; + }, []); + let str; + + if (nodes.length === 0) { + str = flowChars.start + flowChars.end; + } else if (inFlow) { + const { + start, + end + } = flowChars; + const strings = nodes.map(n => n.str); + + if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection.maxFlowStringSingleLineLength) { + str = start; + + for (const s of strings) { + str += s ? `\n${indentStep}${indent}${s}` : '\n'; + } + + str += `\n${indent}${end}`; + } else { + str = `${start} ${strings.join(' ')} ${end}`; + } + } else { + const strings = nodes.map(blockItem); + str = strings.shift(); + + for (const s of strings) str += s ? `\n${indent}${s}` : '\n'; + } + + if (this.comment) { + str += '\n' + this.comment.replace(/^/gm, `${indent}#`); + if (onComment) onComment(); + } else if (chompKeep && onChompKeep) onChompKeep(); + + return str; + } + +} + +PlainValue._defineProperty(Collection, "maxFlowStringSingleLineLength", 60); + +function asItemIndex(key) { + let idx = key instanceof Scalar ? key.value : key; + if (idx && typeof idx === 'string') idx = Number(idx); + return Number.isInteger(idx) && idx >= 0 ? idx : null; +} + +class YAMLSeq extends Collection { + add(value) { + this.items.push(value); + } + + delete(key) { + const idx = asItemIndex(key); + if (typeof idx !== 'number') return false; + const del = this.items.splice(idx, 1); + return del.length > 0; + } + + get(key, keepScalar) { + const idx = asItemIndex(key); + if (typeof idx !== 'number') return undefined; + const it = this.items[idx]; + return !keepScalar && it instanceof Scalar ? it.value : it; + } + + has(key) { + const idx = asItemIndex(key); + return typeof idx === 'number' && idx < this.items.length; + } + + set(key, value) { + const idx = asItemIndex(key); + if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`); + this.items[idx] = value; + } + + toJSON(_, ctx) { + const seq = []; + if (ctx && ctx.onCreate) ctx.onCreate(seq); + let i = 0; + + for (const item of this.items) seq.push(toJSON(item, String(i++), ctx)); + + return seq; + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + return super.toString(ctx, { + blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`, + flowChars: { + start: '[', + end: ']' + }, + isMap: false, + itemIndent: (ctx.indent || '') + ' ' + }, onComment, onChompKeep); + } + +} + +const stringifyKey = (key, jsKey, ctx) => { + if (jsKey === null) return ''; + if (typeof jsKey !== 'object') return String(jsKey); + if (key instanceof Node && ctx && ctx.doc) return key.toString({ + anchors: Object.create(null), + doc: ctx.doc, + indent: '', + indentStep: ctx.indentStep, + inFlow: true, + inStringifyKey: true, + stringify: ctx.stringify + }); + return JSON.stringify(jsKey); +}; + +class Pair extends Node { + constructor(key, value = null) { + super(); + this.key = key; + this.value = value; + this.type = Pair.Type.PAIR; + } + + get commentBefore() { + return this.key instanceof Node ? this.key.commentBefore : undefined; + } + + set commentBefore(cb) { + if (this.key == null) this.key = new Scalar(null); + if (this.key instanceof Node) this.key.commentBefore = cb;else { + const msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.'; + throw new Error(msg); + } + } + + addToJSMap(ctx, map) { + const key = toJSON(this.key, '', ctx); + + if (map instanceof Map) { + const value = toJSON(this.value, key, ctx); + map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else { + const stringKey = stringifyKey(this.key, key, ctx); + const value = toJSON(this.value, stringKey, ctx); + if (stringKey in map) Object.defineProperty(map, stringKey, { + value, + writable: true, + enumerable: true, + configurable: true + });else map[stringKey] = value; + } + + return map; + } + + toJSON(_, ctx) { + const pair = ctx && ctx.mapAsMap ? new Map() : {}; + return this.addToJSMap(ctx, pair); + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx || !ctx.doc) return JSON.stringify(this); + const { + indent: indentSize, + indentSeq, + simpleKeys + } = ctx.doc.options; + let { + key, + value + } = this; + let keyComment = key instanceof Node && key.comment; + + if (simpleKeys) { + if (keyComment) { + throw new Error('With simple keys, key nodes cannot have comments'); + } + + if (key instanceof Collection) { + const msg = 'With simple keys, collection cannot be used as a key value'; + throw new Error(msg); + } + } + + let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === 'object')); + const { + doc, + indent, + indentStep, + stringify + } = ctx; + ctx = Object.assign({}, ctx, { + implicitKey: !explicitKey, + indent: indent + indentStep + }); + let chompKeep = false; + let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true); + str = addComment(str, ctx.indent, keyComment); + + if (!explicitKey && str.length > 1024) { + if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters'); + explicitKey = true; + } + + if (ctx.allNullValues && !simpleKeys) { + if (this.comment) { + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } else if (chompKeep && !keyComment && onChompKeep) onChompKeep(); + + return ctx.inFlow && !explicitKey ? str : `? ${str}`; + } + + str = explicitKey ? `? ${str}\n${indent}:` : `${str}:`; + + if (this.comment) { + // expected (but not strictly required) to be a single-line comment + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } + + let vcb = ''; + let valueComment = null; + + if (value instanceof Node) { + if (value.spaceBefore) vcb = '\n'; + + if (value.commentBefore) { + const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`); + vcb += `\n${cs}`; + } + + valueComment = value.comment; + } else if (value && typeof value === 'object') { + value = doc.schema.createNode(value, true); + } + + ctx.implicitKey = false; + if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1; + chompKeep = false; + + if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) { + // If indentSeq === false, consider '- ' as part of indentation where possible + ctx.indent = ctx.indent.substr(2); + } + + const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true); + let ws = ' '; + + if (vcb || this.comment) { + ws = `${vcb}\n${ctx.indent}`; + } else if (!explicitKey && value instanceof Collection) { + const flow = valueStr[0] === '[' || valueStr[0] === '{'; + if (!flow || valueStr.includes('\n')) ws = `\n${ctx.indent}`; + } else if (valueStr[0] === '\n') ws = ''; + + if (chompKeep && !valueComment && onChompKeep) onChompKeep(); + return addComment(str + ws + valueStr, ctx.indent, valueComment); + } + +} + +PlainValue._defineProperty(Pair, "Type", { + PAIR: 'PAIR', + MERGE_PAIR: 'MERGE_PAIR' +}); + +const getAliasCount = (node, anchors) => { + if (node instanceof Alias) { + const anchor = anchors.get(node.source); + return anchor.count * anchor.aliasCount; + } else if (node instanceof Collection) { + let count = 0; + + for (const item of node.items) { + const c = getAliasCount(item, anchors); + if (c > count) count = c; + } + + return count; + } else if (node instanceof Pair) { + const kc = getAliasCount(node.key, anchors); + const vc = getAliasCount(node.value, anchors); + return Math.max(kc, vc); + } + + return 1; +}; + +class Alias extends Node { + static stringify({ + range, + source + }, { + anchors, + doc, + implicitKey, + inStringifyKey + }) { + let anchor = Object.keys(anchors).find(a => anchors[a] === source); + if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName(); + if (anchor) return `*${anchor}${implicitKey ? ' ' : ''}`; + const msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node'; + throw new Error(`${msg} [${range}]`); + } + + constructor(source) { + super(); + this.source = source; + this.type = PlainValue.Type.ALIAS; + } + + set tag(t) { + throw new Error('Alias nodes cannot have tags'); + } + + toJSON(arg, ctx) { + if (!ctx) return toJSON(this.source, arg, ctx); + const { + anchors, + maxAliasCount + } = ctx; + const anchor = anchors.get(this.source); + /* istanbul ignore if */ + + if (!anchor || anchor.res === undefined) { + const msg = 'This should not happen: Alias anchor was not resolved?'; + if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg); + } + + if (maxAliasCount >= 0) { + anchor.count += 1; + if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors); + + if (anchor.count * anchor.aliasCount > maxAliasCount) { + const msg = 'Excessive alias count indicates a resource exhaustion attack'; + if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg); + } + } + + return anchor.res; + } // Only called when stringifying an alias mapping key while constructing + // Object output. + + + toString(ctx) { + return Alias.stringify(this, ctx); + } + +} + +PlainValue._defineProperty(Alias, "default", true); + +function findPair(items, key) { + const k = key instanceof Scalar ? key.value : key; + + for (const it of items) { + if (it instanceof Pair) { + if (it.key === key || it.key === k) return it; + if (it.key && it.key.value === k) return it; + } + } + + return undefined; +} +class YAMLMap extends Collection { + add(pair, overwrite) { + if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value); + const prev = findPair(this.items, pair.key); + const sortEntries = this.schema && this.schema.sortMapEntries; + + if (prev) { + if (overwrite) prev.value = pair.value;else throw new Error(`Key ${pair.key} already set`); + } else if (sortEntries) { + const i = this.items.findIndex(item => sortEntries(pair, item) < 0); + if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair); + } else { + this.items.push(pair); + } + } + + delete(key) { + const it = findPair(this.items, key); + if (!it) return false; + const del = this.items.splice(this.items.indexOf(it), 1); + return del.length > 0; + } + + get(key, keepScalar) { + const it = findPair(this.items, key); + const node = it && it.value; + return !keepScalar && node instanceof Scalar ? node.value : node; + } + + has(key) { + return !!findPair(this.items, key); + } + + set(key, value) { + this.add(new Pair(key, value), true); + } + /** + * @param {*} arg ignored + * @param {*} ctx Conversion context, originally set in Document#toJSON() + * @param {Class} Type If set, forces the returned collection type + * @returns {*} Instance of Type, Map, or Object + */ + + + toJSON(_, ctx, Type) { + const map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {}; + if (ctx && ctx.onCreate) ctx.onCreate(map); + + for (const item of this.items) item.addToJSMap(ctx, map); + + return map; + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + + for (const item of this.items) { + if (!(item instanceof Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`); + } + + return super.toString(ctx, { + blockItem: n => n.str, + flowChars: { + start: '{', + end: '}' + }, + isMap: true, + itemIndent: ctx.indent || '' + }, onComment, onChompKeep); + } + +} + +const MERGE_KEY = '<<'; +class Merge extends Pair { + constructor(pair) { + if (pair instanceof Pair) { + let seq = pair.value; + + if (!(seq instanceof YAMLSeq)) { + seq = new YAMLSeq(); + seq.items.push(pair.value); + seq.range = pair.value.range; + } + + super(pair.key, seq); + this.range = pair.range; + } else { + super(new Scalar(MERGE_KEY), new YAMLSeq()); + } + + this.type = Pair.Type.MERGE_PAIR; + } // If the value associated with a merge key is a single mapping node, each of + // its key/value pairs is inserted into the current mapping, unless the key + // already exists in it. If the value associated with the merge key is a + // sequence, then this sequence is expected to contain mapping nodes and each + // of these nodes is merged in turn according to its order in the sequence. + // Keys in mapping nodes earlier in the sequence override keys specified in + // later mapping nodes. -- http://yaml.org/type/merge.html + + + addToJSMap(ctx, map) { + for (const { + source + } of this.value.items) { + if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps'); + const srcMap = source.toJSON(null, ctx, Map); + + for (const [key, value] of srcMap) { + if (map instanceof Map) { + if (!map.has(key)) map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else if (!Object.prototype.hasOwnProperty.call(map, key)) { + Object.defineProperty(map, key, { + value, + writable: true, + enumerable: true, + configurable: true + }); + } + } + } + + return map; + } + + toString(ctx, onComment) { + const seq = this.value; + if (seq.items.length > 1) return super.toString(ctx, onComment); + this.value = seq.items[0]; + const str = super.toString(ctx, onComment); + this.value = seq; + return str; + } + +} + +const binaryOptions = { + defaultType: PlainValue.Type.BLOCK_LITERAL, + lineWidth: 76 +}; +const boolOptions = { + trueStr: 'true', + falseStr: 'false' +}; +const intOptions = { + asBigInt: false +}; +const nullOptions = { + nullStr: 'null' +}; +const strOptions = { + defaultType: PlainValue.Type.PLAIN, + doubleQuoted: { + jsonEncoding: false, + minMultiLineLength: 40 + }, + fold: { + lineWidth: 80, + minContentWidth: 20 + } +}; + +function resolveScalar(str, tags, scalarFallback) { + for (const { + format, + test, + resolve + } of tags) { + if (test) { + const match = str.match(test); + + if (match) { + let res = resolve.apply(null, match); + if (!(res instanceof Scalar)) res = new Scalar(res); + if (format) res.format = format; + return res; + } + } + } + + if (scalarFallback) str = scalarFallback(str); + return new Scalar(str); +} + +const FOLD_FLOW = 'flow'; +const FOLD_BLOCK = 'block'; +const FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line +// returns index of last newline in more-indented block + +const consumeMoreIndentedLines = (text, i) => { + let ch = text[i + 1]; + + while (ch === ' ' || ch === '\t') { + do { + ch = text[i += 1]; + } while (ch && ch !== '\n'); + + ch = text[i + 1]; + } + + return i; +}; +/** + * Tries to keep input at up to `lineWidth` characters, splitting only on spaces + * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are + * terminated with `\n` and started with `indent`. + * + * @param {string} text + * @param {string} indent + * @param {string} [mode='flow'] `'block'` prevents more-indented lines + * from being folded; `'quoted'` allows for `\` escapes, including escaped + * newlines + * @param {Object} options + * @param {number} [options.indentAtStart] Accounts for leading contents on + * the first line, defaulting to `indent.length` + * @param {number} [options.lineWidth=80] + * @param {number} [options.minContentWidth=20] Allow highly indented lines to + * stretch the line width or indent content from the start + * @param {function} options.onFold Called once if the text is folded + * @param {function} options.onFold Called once if any line of text exceeds + * lineWidth characters + */ + + +function foldFlowLines(text, indent, mode, { + indentAtStart, + lineWidth = 80, + minContentWidth = 20, + onFold, + onOverflow +}) { + if (!lineWidth || lineWidth < 0) return text; + const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length); + if (text.length <= endStep) return text; + const folds = []; + const escapedFolds = {}; + let end = lineWidth - indent.length; + + if (typeof indentAtStart === 'number') { + if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart; + } + + let split = undefined; + let prev = undefined; + let overflow = false; + let i = -1; + let escStart = -1; + let escEnd = -1; + + if (mode === FOLD_BLOCK) { + i = consumeMoreIndentedLines(text, i); + if (i !== -1) end = i + endStep; + } + + for (let ch; ch = text[i += 1];) { + if (mode === FOLD_QUOTED && ch === '\\') { + escStart = i; + + switch (text[i + 1]) { + case 'x': + i += 3; + break; + + case 'u': + i += 5; + break; + + case 'U': + i += 9; + break; + + default: + i += 1; + } + + escEnd = i; + } + + if (ch === '\n') { + if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i); + end = i + endStep; + split = undefined; + } else { + if (ch === ' ' && prev && prev !== ' ' && prev !== '\n' && prev !== '\t') { + // space surrounded by non-space can be replaced with newline + indent + const next = text[i + 1]; + if (next && next !== ' ' && next !== '\n' && next !== '\t') split = i; + } + + if (i >= end) { + if (split) { + folds.push(split); + end = split + endStep; + split = undefined; + } else if (mode === FOLD_QUOTED) { + // white-space collected at end may stretch past lineWidth + while (prev === ' ' || prev === '\t') { + prev = ch; + ch = text[i += 1]; + overflow = true; + } // Account for newline escape, but don't break preceding escape + + + const j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string + + if (escapedFolds[j]) return text; + folds.push(j); + escapedFolds[j] = true; + end = j + endStep; + split = undefined; + } else { + overflow = true; + } + } + } + + prev = ch; + } + + if (overflow && onOverflow) onOverflow(); + if (folds.length === 0) return text; + if (onFold) onFold(); + let res = text.slice(0, folds[0]); + + for (let i = 0; i < folds.length; ++i) { + const fold = folds[i]; + const end = folds[i + 1] || text.length; + if (fold === 0) res = `\n${indent}${text.slice(0, end)}`;else { + if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\`; + res += `\n${indent}${text.slice(fold + 1, end)}`; + } + } + + return res; +} + +const getFoldOptions = ({ + indentAtStart +}) => indentAtStart ? Object.assign({ + indentAtStart +}, strOptions.fold) : strOptions.fold; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will +// presume that's starting a new document. + + +const containsDocumentMarker = str => /^(%|---|\.\.\.)/m.test(str); + +function lineLengthOverLimit(str, lineWidth, indentLength) { + if (!lineWidth || lineWidth < 0) return false; + const limit = lineWidth - indentLength; + const strLen = str.length; + if (strLen <= limit) return false; + + for (let i = 0, start = 0; i < strLen; ++i) { + if (str[i] === '\n') { + if (i - start > limit) return true; + start = i + 1; + if (strLen - start <= limit) return false; + } + } + + return true; +} + +function doubleQuotedString(value, ctx) { + const { + implicitKey + } = ctx; + const { + jsonEncoding, + minMultiLineLength + } = strOptions.doubleQuoted; + const json = JSON.stringify(value); + if (jsonEncoding) return json; + const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + let str = ''; + let start = 0; + + for (let i = 0, ch = json[i]; ch; ch = json[++i]) { + if (ch === ' ' && json[i + 1] === '\\' && json[i + 2] === 'n') { + // space before newline needs to be escaped to not be folded + str += json.slice(start, i) + '\\ '; + i += 1; + start = i; + ch = '\\'; + } + + if (ch === '\\') switch (json[i + 1]) { + case 'u': + { + str += json.slice(start, i); + const code = json.substr(i + 2, 4); + + switch (code) { + case '0000': + str += '\\0'; + break; + + case '0007': + str += '\\a'; + break; + + case '000b': + str += '\\v'; + break; + + case '001b': + str += '\\e'; + break; + + case '0085': + str += '\\N'; + break; + + case '00a0': + str += '\\_'; + break; + + case '2028': + str += '\\L'; + break; + + case '2029': + str += '\\P'; + break; + + default: + if (code.substr(0, 2) === '00') str += '\\x' + code.substr(2);else str += json.substr(i, 6); + } + + i += 5; + start = i + 1; + } + break; + + case 'n': + if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) { + i += 1; + } else { + // folding will eat first newline + str += json.slice(start, i) + '\n\n'; + + while (json[i + 2] === '\\' && json[i + 3] === 'n' && json[i + 4] !== '"') { + str += '\n'; + i += 2; + } + + str += indent; // space after newline needs to be escaped to not be folded + + if (json[i + 2] === ' ') str += '\\'; + i += 1; + start = i + 1; + } + + break; + + default: + i += 1; + } + } + + str = start ? str + json.slice(start) : json; + return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx)); +} + +function singleQuotedString(value, ctx) { + if (ctx.implicitKey) { + if (/\n/.test(value)) return doubleQuotedString(value, ctx); + } else { + // single quoted string can't have leading or trailing whitespace around newline + if (/[ \t]\n|\n[ \t]/.test(value)) return doubleQuotedString(value, ctx); + } + + const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + const res = "'" + value.replace(/'/g, "''").replace(/\n+/g, `$&\n${indent}`) + "'"; + return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx)); +} + +function blockString({ + comment, + type, + value +}, ctx, onComment, onChompKeep) { + // 1. Block can't end in whitespace unless the last line is non-empty. + // 2. Strings consisting of only whitespace are best rendered explicitly. + if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) { + return doubleQuotedString(value, ctx); + } + + const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : ''); + const indentSize = indent ? '2' : '1'; // root is at -1 + + const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length); + let header = literal ? '|' : '>'; + if (!value) return header + '\n'; + let wsStart = ''; + let wsEnd = ''; + value = value.replace(/[\n\t ]*$/, ws => { + const n = ws.indexOf('\n'); + + if (n === -1) { + header += '-'; // strip + } else if (value === ws || n !== ws.length - 1) { + header += '+'; // keep + + if (onChompKeep) onChompKeep(); + } + + wsEnd = ws.replace(/\n$/, ''); + return ''; + }).replace(/^[\n ]*/, ws => { + if (ws.indexOf(' ') !== -1) header += indentSize; + const m = ws.match(/ +$/); + + if (m) { + wsStart = ws.slice(0, -m[0].length); + return m[0]; + } else { + wsStart = ws; + return ''; + } + }); + if (wsEnd) wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, `$&${indent}`); + if (wsStart) wsStart = wsStart.replace(/\n+/g, `$&${indent}`); + + if (comment) { + header += ' #' + comment.replace(/ ?[\r\n]+/g, ' '); + if (onComment) onComment(); + } + + if (!value) return `${header}${indentSize}\n${indent}${wsEnd}`; + + if (literal) { + value = value.replace(/\n+/g, `$&${indent}`); + return `${header}\n${indent}${wsStart}${value}${wsEnd}`; + } + + value = value.replace(/\n+/g, '\n$&').replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, '$1$2') // more-indented lines aren't folded + // ^ ind.line ^ empty ^ capture next empty lines only at end of indent + .replace(/\n+/g, `$&${indent}`); + const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold); + return `${header}\n${indent}${body}`; +} + +function plainString(item, ctx, onComment, onChompKeep) { + const { + comment, + type, + value + } = item; + const { + actualString, + implicitKey, + indent, + inFlow + } = ctx; + + if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) { + return doubleQuotedString(value, ctx); + } + + if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) { + // not allowed: + // - empty string, '-' or '?' + // - start with an indicator character (except [?:-]) or /[?-] / + // - '\n ', ': ' or ' \n' anywhere + // - '#' not preceded by a non-space char + // - end with ' ' or ':' + return implicitKey || inFlow || value.indexOf('\n') === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep); + } + + if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf('\n') !== -1) { + // Where allowed & type not set explicitly, prefer block style for multiline strings + return blockString(item, ctx, onComment, onChompKeep); + } + + if (indent === '' && containsDocumentMarker(value)) { + ctx.forceBlockIndent = true; + return blockString(item, ctx, onComment, onChompKeep); + } + + const str = value.replace(/\n+/g, `$&\n${indent}`); // Verify that output will be parsed as a string, as e.g. plain numbers and + // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'), + // and others in v1.1. + + if (actualString) { + const { + tags + } = ctx.doc.schema; + const resolved = resolveScalar(str, tags, tags.scalarFallback).value; + if (typeof resolved !== 'string') return doubleQuotedString(value, ctx); + } + + const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx)); + + if (comment && !inFlow && (body.indexOf('\n') !== -1 || comment.indexOf('\n') !== -1)) { + if (onComment) onComment(); + return addCommentBefore(body, indent, comment); + } + + return body; +} + +function stringifyString(item, ctx, onComment, onChompKeep) { + const { + defaultType + } = strOptions; + const { + implicitKey, + inFlow + } = ctx; + let { + type, + value + } = item; + + if (typeof value !== 'string') { + value = String(value); + item = Object.assign({}, item, { + value + }); + } + + const _stringify = _type => { + switch (_type) { + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + return blockString(item, ctx, onComment, onChompKeep); + + case PlainValue.Type.QUOTE_DOUBLE: + return doubleQuotedString(value, ctx); + + case PlainValue.Type.QUOTE_SINGLE: + return singleQuotedString(value, ctx); + + case PlainValue.Type.PLAIN: + return plainString(item, ctx, onComment, onChompKeep); + + default: + return null; + } + }; + + if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) { + // force double quotes on control characters + type = PlainValue.Type.QUOTE_DOUBLE; + } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) { + // should not happen; blocks are not valid inside flow containers + type = PlainValue.Type.QUOTE_DOUBLE; + } + + let res = _stringify(type); + + if (res === null) { + res = _stringify(defaultType); + if (res === null) throw new Error(`Unsupported default string type ${defaultType}`); + } + + return res; +} + +function stringifyNumber({ + format, + minFractionDigits, + tag, + value +}) { + if (typeof value === 'bigint') return String(value); + if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf'; + let n = JSON.stringify(value); + + if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\d/.test(n)) { + let i = n.indexOf('.'); + + if (i < 0) { + i = n.length; + n += '.'; + } + + let d = minFractionDigits - (n.length - i - 1); + + while (d-- > 0) n += '0'; + } + + return n; +} + +function checkFlowCollectionEnd(errors, cst) { + let char, name; + + switch (cst.type) { + case PlainValue.Type.FLOW_MAP: + char = '}'; + name = 'flow map'; + break; + + case PlainValue.Type.FLOW_SEQ: + char = ']'; + name = 'flow sequence'; + break; + + default: + errors.push(new PlainValue.YAMLSemanticError(cst, 'Not a flow collection!?')); + return; + } + + let lastItem; + + for (let i = cst.items.length - 1; i >= 0; --i) { + const item = cst.items[i]; + + if (!item || item.type !== PlainValue.Type.COMMENT) { + lastItem = item; + break; + } + } + + if (lastItem && lastItem.char !== char) { + const msg = `Expected ${name} to end with ${char}`; + let err; + + if (typeof lastItem.offset === 'number') { + err = new PlainValue.YAMLSemanticError(cst, msg); + err.offset = lastItem.offset + 1; + } else { + err = new PlainValue.YAMLSemanticError(lastItem, msg); + if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start; + } + + errors.push(err); + } +} +function checkFlowCommentSpace(errors, comment) { + const prev = comment.context.src[comment.range.start - 1]; + + if (prev !== '\n' && prev !== '\t' && prev !== ' ') { + const msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new PlainValue.YAMLSemanticError(comment, msg)); + } +} +function getLongKeyError(source, key) { + const sk = String(key); + const k = sk.substr(0, 8) + '...' + sk.substr(-8); + return new PlainValue.YAMLSemanticError(source, `The "${k}" key is too long`); +} +function resolveComments(collection, comments) { + for (const { + afterKey, + before, + comment + } of comments) { + let item = collection.items[before]; + + if (!item) { + if (comment !== undefined) { + if (collection.comment) collection.comment += '\n' + comment;else collection.comment = comment; + } + } else { + if (afterKey && item.value) item = item.value; + + if (comment === undefined) { + if (afterKey || !item.commentBefore) item.spaceBefore = true; + } else { + if (item.commentBefore) item.commentBefore += '\n' + comment;else item.commentBefore = comment; + } + } + } +} + +// on error, will return { str: string, errors: Error[] } +function resolveString(doc, node) { + const res = node.strValue; + if (!res) return ''; + if (typeof res === 'string') return res; + res.errors.forEach(error => { + if (!error.source) error.source = node; + doc.errors.push(error); + }); + return res.str; +} + +function resolveTagHandle(doc, node) { + const { + handle, + suffix + } = node.tag; + let prefix = doc.tagPrefixes.find(p => p.handle === handle); + + if (!prefix) { + const dtp = doc.getDefaults().tagPrefixes; + if (dtp) prefix = dtp.find(p => p.handle === handle); + if (!prefix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`); + } + + if (!suffix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`); + + if (handle === '!' && (doc.version || doc.options.version) === '1.0') { + if (suffix[0] === '^') { + doc.warnings.push(new PlainValue.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported')); + return suffix; + } + + if (/[:/]/.test(suffix)) { + // word/foo -> tag:word.yaml.org,2002:foo + const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i); + return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`; + } + } + + return prefix.prefix + decodeURIComponent(suffix); +} + +function resolveTagName(doc, node) { + const { + tag, + type + } = node; + let nonSpecific = false; + + if (tag) { + const { + handle, + suffix, + verbatim + } = tag; + + if (verbatim) { + if (verbatim !== '!' && verbatim !== '!!') return verbatim; + const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`; + doc.errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } else if (handle === '!' && !suffix) { + nonSpecific = true; + } else { + try { + return resolveTagHandle(doc, node); + } catch (error) { + doc.errors.push(error); + } + } + } + + switch (type) { + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + case PlainValue.Type.QUOTE_DOUBLE: + case PlainValue.Type.QUOTE_SINGLE: + return PlainValue.defaultTags.STR; + + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.MAP: + return PlainValue.defaultTags.MAP; + + case PlainValue.Type.FLOW_SEQ: + case PlainValue.Type.SEQ: + return PlainValue.defaultTags.SEQ; + + case PlainValue.Type.PLAIN: + return nonSpecific ? PlainValue.defaultTags.STR : null; + + default: + return null; + } +} + +function resolveByTagName(doc, node, tagName) { + const { + tags + } = doc.schema; + const matchWithTest = []; + + for (const tag of tags) { + if (tag.tag === tagName) { + if (tag.test) matchWithTest.push(tag);else { + const res = tag.resolve(doc, node); + return res instanceof Collection ? res : new Scalar(res); + } + } + } + + const str = resolveString(doc, node); + if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback); + return null; +} + +function getFallbackTagName({ + type +}) { + switch (type) { + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.MAP: + return PlainValue.defaultTags.MAP; + + case PlainValue.Type.FLOW_SEQ: + case PlainValue.Type.SEQ: + return PlainValue.defaultTags.SEQ; + + default: + return PlainValue.defaultTags.STR; + } +} + +function resolveTag(doc, node, tagName) { + try { + const res = resolveByTagName(doc, node, tagName); + + if (res) { + if (tagName && node.tag) res.tag = tagName; + return res; + } + } catch (error) { + /* istanbul ignore if */ + if (!error.source) error.source = node; + doc.errors.push(error); + return null; + } + + try { + const fallback = getFallbackTagName(node); + if (!fallback) throw new Error(`The tag ${tagName} is unavailable`); + const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`; + doc.warnings.push(new PlainValue.YAMLWarning(node, msg)); + const res = resolveByTagName(doc, node, fallback); + res.tag = tagName; + return res; + } catch (error) { + const refError = new PlainValue.YAMLReferenceError(node, error.message); + refError.stack = error.stack; + doc.errors.push(refError); + return null; + } +} + +const isCollectionItem = node => { + if (!node) return false; + const { + type + } = node; + return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM; +}; + +function resolveNodeProps(errors, node) { + const comments = { + before: [], + after: [] + }; + let hasAnchor = false; + let hasTag = false; + const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props; + + for (const { + start, + end + } of props) { + switch (node.context.src[start]) { + case PlainValue.Char.COMMENT: + { + if (!node.commentHasRequiredWhitespace(start)) { + const msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + const { + header, + valueRange + } = node; + const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before; + cc.push(node.context.src.slice(start + 1, end)); + break; + } + // Actual anchor & tag resolution is handled by schema, here we just complain + + case PlainValue.Char.ANCHOR: + if (hasAnchor) { + const msg = 'A node can have at most one anchor'; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + hasAnchor = true; + break; + + case PlainValue.Char.TAG: + if (hasTag) { + const msg = 'A node can have at most one tag'; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + hasTag = true; + break; + } + } + + return { + comments, + hasAnchor, + hasTag + }; +} + +function resolveNodeValue(doc, node) { + const { + anchors, + errors, + schema + } = doc; + + if (node.type === PlainValue.Type.ALIAS) { + const name = node.rawValue; + const src = anchors.getNode(name); + + if (!src) { + const msg = `Aliased anchor not found: ${name}`; + errors.push(new PlainValue.YAMLReferenceError(node, msg)); + return null; + } // Lazy resolution for circular references + + + const res = new Alias(src); + + anchors._cstAliases.push(res); + + return res; + } + + const tagName = resolveTagName(doc, node); + if (tagName) return resolveTag(doc, node, tagName); + + if (node.type !== PlainValue.Type.PLAIN) { + const msg = `Failed to resolve ${node.type} node here`; + errors.push(new PlainValue.YAMLSyntaxError(node, msg)); + return null; + } + + try { + const str = resolveString(doc, node); + return resolveScalar(str, schema.tags, schema.tags.scalarFallback); + } catch (error) { + if (!error.source) error.source = node; + errors.push(error); + return null; + } +} // sets node.resolved on success + + +function resolveNode(doc, node) { + if (!node) return null; + if (node.error) doc.errors.push(node.error); + const { + comments, + hasAnchor, + hasTag + } = resolveNodeProps(doc.errors, node); + + if (hasAnchor) { + const { + anchors + } = doc; + const name = node.anchor; + const prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor + // name have already been resolved, so it may safely be renamed. + + if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as + // anchors need to be available during resolution to allow for + // circular references. + + anchors.map[name] = node; + } + + if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) { + const msg = 'An alias node must not specify any properties'; + doc.errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + const res = resolveNodeValue(doc, node); + + if (res) { + res.range = [node.range.start, node.range.end]; + if (doc.options.keepCstNodes) res.cstNode = node; + if (doc.options.keepNodeTypes) res.type = node.type; + const cb = comments.before.join('\n'); + + if (cb) { + res.commentBefore = res.commentBefore ? `${res.commentBefore}\n${cb}` : cb; + } + + const ca = comments.after.join('\n'); + if (ca) res.comment = res.comment ? `${res.comment}\n${ca}` : ca; + } + + return node.resolved = res; +} + +function resolveMap(doc, cst) { + if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) { + const msg = `A ${cst.type} node cannot be resolved as a mapping`; + doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg)); + return null; + } + + const { + comments, + items + } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst); + const map = new YAMLMap(); + map.items = items; + resolveComments(map, comments); + let hasCollectionKey = false; + + for (let i = 0; i < items.length; ++i) { + const { + key: iKey + } = items[i]; + if (iKey instanceof Collection) hasCollectionKey = true; + + if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) { + items[i] = new Merge(items[i]); + const sources = items[i].value.items; + let error = null; + sources.some(node => { + if (node instanceof Alias) { + // During parsing, alias sources are CST nodes; to account for + // circular references their resolved values can't be used here. + const { + type + } = node.source; + if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP) return false; + return error = 'Merge nodes aliases can only point to maps'; + } + + return error = 'Merge nodes can only have Alias nodes as values'; + }); + if (error) doc.errors.push(new PlainValue.YAMLSemanticError(cst, error)); + } else { + for (let j = i + 1; j < items.length; ++j) { + const { + key: jKey + } = items[j]; + + if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) { + const msg = `Map keys must be unique; "${iKey}" is repeated`; + doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg)); + break; + } + } + } + } + + if (hasCollectionKey && !doc.options.mapAsMap) { + const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new PlainValue.YAMLWarning(cst, warn)); + } + + cst.resolved = map; + return map; +} + +const valueHasPairComment = ({ + context: { + lineStart, + node, + src + }, + props +}) => { + if (props.length === 0) return false; + const { + start + } = props[0]; + if (node && start > node.valueRange.start) return false; + if (src[start] !== PlainValue.Char.COMMENT) return false; + + for (let i = lineStart; i < start; ++i) if (src[i] === '\n') return false; + + return true; +}; + +function resolvePairComment(item, pair) { + if (!valueHasPairComment(item)) return; + const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true); + let found = false; + const cb = pair.value.commentBefore; + + if (cb && cb.startsWith(comment)) { + pair.value.commentBefore = cb.substr(comment.length + 1); + found = true; + } else { + const cc = pair.value.comment; + + if (!item.node && cc && cc.startsWith(comment)) { + pair.value.comment = cc.substr(comment.length + 1); + found = true; + } + } + + if (found) pair.comment = comment; +} + +function resolveBlockMapItems(doc, cst) { + const comments = []; + const items = []; + let key = undefined; + let keyStart = null; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + switch (item.type) { + case PlainValue.Type.BLANK_LINE: + comments.push({ + afterKey: !!key, + before: items.length + }); + break; + + case PlainValue.Type.COMMENT: + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + break; + + case PlainValue.Type.MAP_KEY: + if (key !== undefined) items.push(new Pair(key)); + if (item.error) doc.errors.push(item.error); + key = resolveNode(doc, item.node); + keyStart = null; + break; + + case PlainValue.Type.MAP_VALUE: + { + if (key === undefined) key = null; + if (item.error) doc.errors.push(item.error); + + if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) { + const msg = 'Nested mappings are not allowed in compact mappings'; + doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg)); + } + + let valueNode = item.node; + + if (!valueNode && item.props.length > 0) { + // Comments on an empty mapping value need to be preserved, so we + // need to construct a minimal empty node here to use instead of the + // missing `item.node`. -- eemeli/yaml#19 + valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []); + valueNode.context = { + parent: item, + src: item.context.src + }; + const pos = item.range.start + 1; + valueNode.range = { + start: pos, + end: pos + }; + valueNode.valueRange = { + start: pos, + end: pos + }; + + if (typeof item.range.origStart === 'number') { + const origPos = item.range.origStart + 1; + valueNode.range.origStart = valueNode.range.origEnd = origPos; + valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos; + } + } + + const pair = new Pair(key, resolveNode(doc, valueNode)); + resolvePairComment(item, pair); + items.push(pair); + + if (key && typeof keyStart === 'number') { + if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + } + + key = undefined; + keyStart = null; + } + break; + + default: + if (key !== undefined) items.push(new Pair(key)); + key = resolveNode(doc, item); + keyStart = item.range.start; + if (item.error) doc.errors.push(item.error); + + next: for (let j = i + 1;; ++j) { + const nextItem = cst.items[j]; + + switch (nextItem && nextItem.type) { + case PlainValue.Type.BLANK_LINE: + case PlainValue.Type.COMMENT: + continue next; + + case PlainValue.Type.MAP_VALUE: + break next; + + default: + { + const msg = 'Implicit map keys need to be followed by map values'; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + break next; + } + } + } + + if (item.valueRangeContainsNewline) { + const msg = 'Implicit map keys need to be on a single line'; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + + } + } + + if (key !== undefined) items.push(new Pair(key)); + return { + comments, + items + }; +} + +function resolveFlowMapItems(doc, cst) { + const comments = []; + const items = []; + let key = undefined; + let explicitKey = false; + let next = '{'; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + if (typeof item.char === 'string') { + const { + char, + offset + } = item; + + if (char === '?' && key === undefined && !explicitKey) { + explicitKey = true; + next = ':'; + continue; + } + + if (char === ':') { + if (key === undefined) key = null; + + if (next === ':') { + next = ','; + continue; + } + } else { + if (explicitKey) { + if (key === undefined && char !== ',') key = null; + explicitKey = false; + } + + if (key !== undefined) { + items.push(new Pair(key)); + key = undefined; + + if (char === ',') { + next = ':'; + continue; + } + } + } + + if (char === '}') { + if (i === cst.items.length - 1) continue; + } else if (char === next) { + next = ':'; + continue; + } + + const msg = `Flow map contains an unexpected ${char}`; + const err = new PlainValue.YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } else if (item.type === PlainValue.Type.BLANK_LINE) { + comments.push({ + afterKey: !!key, + before: items.length + }); + } else if (item.type === PlainValue.Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + } else if (key === undefined) { + if (next === ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Separator , missing in flow map')); + key = resolveNode(doc, item); + } else { + if (next !== ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Indicator : missing in flow map entry')); + items.push(new Pair(key, resolveNode(doc, item))); + key = undefined; + explicitKey = false; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments, + items + }; +} + +function resolveSeq(doc, cst) { + if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) { + const msg = `A ${cst.type} node cannot be resolved as a sequence`; + doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg)); + return null; + } + + const { + comments, + items + } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst); + const seq = new YAMLSeq(); + seq.items = items; + resolveComments(seq, comments); + + if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection)) { + const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new PlainValue.YAMLWarning(cst, warn)); + } + + cst.resolved = seq; + return seq; +} + +function resolveBlockSeqItems(doc, cst) { + const comments = []; + const items = []; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + switch (item.type) { + case PlainValue.Type.BLANK_LINE: + comments.push({ + before: items.length + }); + break; + + case PlainValue.Type.COMMENT: + comments.push({ + comment: item.comment, + before: items.length + }); + break; + + case PlainValue.Type.SEQ_ITEM: + if (item.error) doc.errors.push(item.error); + items.push(resolveNode(doc, item.node)); + + if (item.hasProps) { + const msg = 'Sequence items cannot have tags or anchors before the - indicator'; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + + break; + + default: + if (item.error) doc.errors.push(item.error); + doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`)); + } + } + + return { + comments, + items + }; +} + +function resolveFlowSeqItems(doc, cst) { + const comments = []; + const items = []; + let explicitKey = false; + let key = undefined; + let keyStart = null; + let next = '['; + let prevItem = null; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + if (typeof item.char === 'string') { + const { + char, + offset + } = item; + + if (char !== ':' && (explicitKey || key !== undefined)) { + if (explicitKey && key === undefined) key = next ? items.pop() : null; + items.push(new Pair(key)); + explicitKey = false; + key = undefined; + keyStart = null; + } + + if (char === next) { + next = null; + } else if (!next && char === '?') { + explicitKey = true; + } else if (next !== '[' && char === ':' && key === undefined) { + if (next === ',') { + key = items.pop(); + + if (key instanceof Pair) { + const msg = 'Chaining flow sequence pairs is invalid'; + const err = new PlainValue.YAMLSemanticError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + + if (!explicitKey && typeof keyStart === 'number') { + const keyEnd = item.range ? item.range.start : item.offset; + if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + const { + src + } = prevItem.context; + + for (let i = keyStart; i < keyEnd; ++i) if (src[i] === '\n') { + const msg = 'Implicit keys of flow sequence pairs need to be on a single line'; + doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg)); + break; + } + } + } else { + key = null; + } + + keyStart = null; + explicitKey = false; + next = null; + } else if (next === '[' || char !== ']' || i < cst.items.length - 1) { + const msg = `Flow sequence contains an unexpected ${char}`; + const err = new PlainValue.YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + } else if (item.type === PlainValue.Type.BLANK_LINE) { + comments.push({ + before: items.length + }); + } else if (item.type === PlainValue.Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + comment: item.comment, + before: items.length + }); + } else { + if (next) { + const msg = `Expected a ${next} in flow sequence`; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + + const value = resolveNode(doc, item); + + if (key === undefined) { + items.push(value); + prevItem = item; + } else { + items.push(new Pair(key, value)); + key = undefined; + } + + keyStart = item.range.start; + next = ','; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments, + items + }; +} + +exports.Alias = Alias; +exports.Collection = Collection; +exports.Merge = Merge; +exports.Node = Node; +exports.Pair = Pair; +exports.Scalar = Scalar; +exports.YAMLMap = YAMLMap; +exports.YAMLSeq = YAMLSeq; +exports.addComment = addComment; +exports.binaryOptions = binaryOptions; +exports.boolOptions = boolOptions; +exports.findPair = findPair; +exports.intOptions = intOptions; +exports.isEmptyPath = isEmptyPath; +exports.nullOptions = nullOptions; +exports.resolveMap = resolveMap; +exports.resolveNode = resolveNode; +exports.resolveSeq = resolveSeq; +exports.resolveString = resolveString; +exports.strOptions = strOptions; +exports.stringifyNumber = stringifyNumber; +exports.stringifyString = stringifyString; +exports.toJSON = toJSON; diff --git a/node_modules/yaml/dist/test-events.js b/node_modules/yaml/dist/test-events.js new file mode 100644 index 0000000..2b856e1 --- /dev/null +++ b/node_modules/yaml/dist/test-events.js @@ -0,0 +1,162 @@ +'use strict'; + +var parseCst = require('./parse-cst.js'); +var Document = require('./Document-9b4560a1.js'); +require('./PlainValue-ec8e588e.js'); +require('./resolveSeq-d03cb037.js'); +require('./Schema-88e323a7.js'); +require('./warnings-1000a372.js'); + +function testEvents(src, options) { + const opt = Object.assign({ + keepCstNodes: true, + keepNodeTypes: true, + version: '1.2' + }, options); + const docs = parseCst.parse(src).map(cstDoc => new Document.Document(opt).parse(cstDoc)); + const errDoc = docs.find(doc => doc.errors.length > 0); + const error = errDoc ? errDoc.errors[0].message : null; + const events = ['+STR']; + + try { + for (let i = 0; i < docs.length; ++i) { + const doc = docs[i]; + let root = doc.contents; + if (Array.isArray(root)) root = root[0]; + const [rootStart, rootEnd] = doc.range || [0, 0]; + let e = doc.errors[0] && doc.errors[0].source; + if (e && e.type === 'SEQ_ITEM') e = e.node; + if (e && (e.type === 'DOCUMENT' || e.range.start < rootStart)) throw new Error(); + let docStart = '+DOC'; + const pre = src.slice(0, rootStart); + const explicitDoc = /---\s*$/.test(pre); + if (explicitDoc) docStart += ' ---';else if (!doc.contents) continue; + events.push(docStart); + addEvents(events, doc, e, root); + if (doc.contents && doc.contents.length > 1) throw new Error(); + let docEnd = '-DOC'; + + if (rootEnd) { + const post = src.slice(rootEnd); + if (/^\.\.\./.test(post)) docEnd += ' ...'; + } + + events.push(docEnd); + } + } catch (e) { + return { + events, + error: error || e + }; + } + + events.push('-STR'); + return { + events, + error + }; +} + +function addEvents(events, doc, e, node) { + if (!node) { + events.push('=VAL :'); + return; + } + + if (e && node.cstNode === e) throw new Error(); + let props = ''; + let anchor = doc.anchors.getName(node); + + if (anchor) { + if (/\d$/.test(anchor)) { + const alt = anchor.replace(/\d$/, ''); + if (doc.anchors.getNode(alt)) anchor = alt; + } + + props = ` &${anchor}`; + } + + if (node.cstNode && node.cstNode.tag) { + const { + handle, + suffix + } = node.cstNode.tag; + props += handle === '!' && !suffix ? ' ' : ` <${node.tag}>`; + } + + let scalar = null; + + switch (node.type) { + case 'ALIAS': + { + let alias = doc.anchors.getName(node.source); + + if (/\d$/.test(alias)) { + const alt = alias.replace(/\d$/, ''); + if (doc.anchors.getNode(alt)) alias = alt; + } + + events.push(`=ALI${props} *${alias}`); + } + break; + + case 'BLOCK_FOLDED': + scalar = '>'; + break; + + case 'BLOCK_LITERAL': + scalar = '|'; + break; + + case 'PLAIN': + scalar = ':'; + break; + + case 'QUOTE_DOUBLE': + scalar = '"'; + break; + + case 'QUOTE_SINGLE': + scalar = "'"; + break; + + case 'PAIR': + events.push(`+MAP${props}`); + addEvents(events, doc, e, node.key); + addEvents(events, doc, e, node.value); + events.push('-MAP'); + break; + + case 'FLOW_SEQ': + case 'SEQ': + events.push(`+SEQ${props}`); + node.items.forEach(item => { + addEvents(events, doc, e, item); + }); + events.push('-SEQ'); + break; + + case 'FLOW_MAP': + case 'MAP': + events.push(`+MAP${props}`); + node.items.forEach(({ + key, + value + }) => { + addEvents(events, doc, e, key); + addEvents(events, doc, e, value); + }); + events.push('-MAP'); + break; + + default: + throw new Error(`Unexpected node type ${node.type}`); + } + + if (scalar) { + const value = node.cstNode.strValue.replace(/\\/g, '\\\\').replace(/\0/g, '\\0').replace(/\x07/g, '\\a').replace(/\x08/g, '\\b').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\v/g, '\\v').replace(/\f/g, '\\f').replace(/\r/g, '\\r').replace(/\x1b/g, '\\e'); + events.push(`=VAL${props} ${scalar}${value}`); + } +} + +exports.testEvents = testEvents; diff --git a/node_modules/yaml/dist/types.js b/node_modules/yaml/dist/types.js new file mode 100644 index 0000000..967c04e --- /dev/null +++ b/node_modules/yaml/dist/types.js @@ -0,0 +1,23 @@ +'use strict'; + +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var Schema = require('./Schema-88e323a7.js'); +require('./PlainValue-ec8e588e.js'); +require('./warnings-1000a372.js'); + + + +exports.Alias = resolveSeq.Alias; +exports.Collection = resolveSeq.Collection; +exports.Merge = resolveSeq.Merge; +exports.Node = resolveSeq.Node; +exports.Pair = resolveSeq.Pair; +exports.Scalar = resolveSeq.Scalar; +exports.YAMLMap = resolveSeq.YAMLMap; +exports.YAMLSeq = resolveSeq.YAMLSeq; +exports.binaryOptions = resolveSeq.binaryOptions; +exports.boolOptions = resolveSeq.boolOptions; +exports.intOptions = resolveSeq.intOptions; +exports.nullOptions = resolveSeq.nullOptions; +exports.strOptions = resolveSeq.strOptions; +exports.Schema = Schema.Schema; diff --git a/node_modules/yaml/dist/util.js b/node_modules/yaml/dist/util.js new file mode 100644 index 0000000..bc1e079 --- /dev/null +++ b/node_modules/yaml/dist/util.js @@ -0,0 +1,19 @@ +'use strict'; + +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var PlainValue = require('./PlainValue-ec8e588e.js'); + + + +exports.findPair = resolveSeq.findPair; +exports.parseMap = resolveSeq.resolveMap; +exports.parseSeq = resolveSeq.resolveSeq; +exports.stringifyNumber = resolveSeq.stringifyNumber; +exports.stringifyString = resolveSeq.stringifyString; +exports.toJSON = resolveSeq.toJSON; +exports.Type = PlainValue.Type; +exports.YAMLError = PlainValue.YAMLError; +exports.YAMLReferenceError = PlainValue.YAMLReferenceError; +exports.YAMLSemanticError = PlainValue.YAMLSemanticError; +exports.YAMLSyntaxError = PlainValue.YAMLSyntaxError; +exports.YAMLWarning = PlainValue.YAMLWarning; diff --git a/node_modules/yaml/dist/warnings-1000a372.js b/node_modules/yaml/dist/warnings-1000a372.js new file mode 100644 index 0000000..7776d9f --- /dev/null +++ b/node_modules/yaml/dist/warnings-1000a372.js @@ -0,0 +1,416 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); +var resolveSeq = require('./resolveSeq-d03cb037.js'); + +/* global atob, btoa, Buffer */ +const binary = { + identify: value => value instanceof Uint8Array, + // Buffer inherits from Uint8Array + default: false, + tag: 'tag:yaml.org,2002:binary', + + /** + * Returns a Buffer in node and an Uint8Array in browsers + * + * To use the resulting buffer as an image, you'll want to do something like: + * + * const blob = new Blob([buffer], { type: 'image/jpeg' }) + * document.querySelector('#photo').src = URL.createObjectURL(blob) + */ + resolve: (doc, node) => { + const src = resolveSeq.resolveString(doc, node); + + if (typeof Buffer === 'function') { + return Buffer.from(src, 'base64'); + } else if (typeof atob === 'function') { + // On IE 11, atob() can't handle newlines + const str = atob(src.replace(/[\n\r]/g, '')); + const buffer = new Uint8Array(str.length); + + for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i); + + return buffer; + } else { + const msg = 'This environment does not support reading binary tags; either Buffer or atob is required'; + doc.errors.push(new PlainValue.YAMLReferenceError(node, msg)); + return null; + } + }, + options: resolveSeq.binaryOptions, + stringify: ({ + comment, + type, + value + }, ctx, onComment, onChompKeep) => { + let src; + + if (typeof Buffer === 'function') { + src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64'); + } else if (typeof btoa === 'function') { + let s = ''; + + for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]); + + src = btoa(s); + } else { + throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required'); + } + + if (!type) type = resolveSeq.binaryOptions.defaultType; + + if (type === PlainValue.Type.QUOTE_DOUBLE) { + value = src; + } else { + const { + lineWidth + } = resolveSeq.binaryOptions; + const n = Math.ceil(src.length / lineWidth); + const lines = new Array(n); + + for (let i = 0, o = 0; i < n; ++i, o += lineWidth) { + lines[i] = src.substr(o, lineWidth); + } + + value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? '\n' : ' '); + } + + return resolveSeq.stringifyString({ + comment, + type, + value + }, ctx, onComment, onChompKeep); + } +}; + +function parsePairs(doc, cst) { + const seq = resolveSeq.resolveSeq(doc, cst); + + for (let i = 0; i < seq.items.length; ++i) { + let item = seq.items[i]; + if (item instanceof resolveSeq.Pair) continue;else if (item instanceof resolveSeq.YAMLMap) { + if (item.items.length > 1) { + const msg = 'Each pair must have its own sequence indicator'; + throw new PlainValue.YAMLSemanticError(cst, msg); + } + + const pair = item.items[0] || new resolveSeq.Pair(); + if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\n${pair.commentBefore}` : item.commentBefore; + if (item.comment) pair.comment = pair.comment ? `${item.comment}\n${pair.comment}` : item.comment; + item = pair; + } + seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item); + } + + return seq; +} +function createPairs(schema, iterable, ctx) { + const pairs = new resolveSeq.YAMLSeq(schema); + pairs.tag = 'tag:yaml.org,2002:pairs'; + + for (const it of iterable) { + let key, value; + + if (Array.isArray(it)) { + if (it.length === 2) { + key = it[0]; + value = it[1]; + } else throw new TypeError(`Expected [key, value] tuple: ${it}`); + } else if (it && it instanceof Object) { + const keys = Object.keys(it); + + if (keys.length === 1) { + key = keys[0]; + value = it[key]; + } else throw new TypeError(`Expected { key: value } tuple: ${it}`); + } else { + key = it; + } + + const pair = schema.createPair(key, value, ctx); + pairs.items.push(pair); + } + + return pairs; +} +const pairs = { + default: false, + tag: 'tag:yaml.org,2002:pairs', + resolve: parsePairs, + createNode: createPairs +}; + +class YAMLOMap extends resolveSeq.YAMLSeq { + constructor() { + super(); + + PlainValue._defineProperty(this, "add", resolveSeq.YAMLMap.prototype.add.bind(this)); + + PlainValue._defineProperty(this, "delete", resolveSeq.YAMLMap.prototype.delete.bind(this)); + + PlainValue._defineProperty(this, "get", resolveSeq.YAMLMap.prototype.get.bind(this)); + + PlainValue._defineProperty(this, "has", resolveSeq.YAMLMap.prototype.has.bind(this)); + + PlainValue._defineProperty(this, "set", resolveSeq.YAMLMap.prototype.set.bind(this)); + + this.tag = YAMLOMap.tag; + } + + toJSON(_, ctx) { + const map = new Map(); + if (ctx && ctx.onCreate) ctx.onCreate(map); + + for (const pair of this.items) { + let key, value; + + if (pair instanceof resolveSeq.Pair) { + key = resolveSeq.toJSON(pair.key, '', ctx); + value = resolveSeq.toJSON(pair.value, key, ctx); + } else { + key = resolveSeq.toJSON(pair, '', ctx); + } + + if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys'); + map.set(key, value); + } + + return map; + } + +} + +PlainValue._defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap'); + +function parseOMap(doc, cst) { + const pairs = parsePairs(doc, cst); + const seenKeys = []; + + for (const { + key + } of pairs.items) { + if (key instanceof resolveSeq.Scalar) { + if (seenKeys.includes(key.value)) { + const msg = 'Ordered maps must not include duplicate keys'; + throw new PlainValue.YAMLSemanticError(cst, msg); + } else { + seenKeys.push(key.value); + } + } + } + + return Object.assign(new YAMLOMap(), pairs); +} + +function createOMap(schema, iterable, ctx) { + const pairs = createPairs(schema, iterable, ctx); + const omap = new YAMLOMap(); + omap.items = pairs.items; + return omap; +} + +const omap = { + identify: value => value instanceof Map, + nodeClass: YAMLOMap, + default: false, + tag: 'tag:yaml.org,2002:omap', + resolve: parseOMap, + createNode: createOMap +}; + +class YAMLSet extends resolveSeq.YAMLMap { + constructor() { + super(); + this.tag = YAMLSet.tag; + } + + add(key) { + const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key); + const prev = resolveSeq.findPair(this.items, pair.key); + if (!prev) this.items.push(pair); + } + + get(key, keepPair) { + const pair = resolveSeq.findPair(this.items, key); + return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair; + } + + set(key, value) { + if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`); + const prev = resolveSeq.findPair(this.items, key); + + if (prev && !value) { + this.items.splice(this.items.indexOf(prev), 1); + } else if (!prev && value) { + this.items.push(new resolveSeq.Pair(key)); + } + } + + toJSON(_, ctx) { + return super.toJSON(_, ctx, Set); + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values'); + } + +} + +PlainValue._defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set'); + +function parseSet(doc, cst) { + const map = resolveSeq.resolveMap(doc, cst); + if (!map.hasAllNullValues()) throw new PlainValue.YAMLSemanticError(cst, 'Set items must all have null values'); + return Object.assign(new YAMLSet(), map); +} + +function createSet(schema, iterable, ctx) { + const set = new YAMLSet(); + + for (const value of iterable) set.items.push(schema.createPair(value, null, ctx)); + + return set; +} + +const set = { + identify: value => value instanceof Set, + nodeClass: YAMLSet, + default: false, + tag: 'tag:yaml.org,2002:set', + resolve: parseSet, + createNode: createSet +}; + +const parseSexagesimal = (sign, parts) => { + const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0); + return sign === '-' ? -n : n; +}; // hhhh:mm:ss.sss + + +const stringifySexagesimal = ({ + value +}) => { + if (isNaN(value) || !isFinite(value)) return resolveSeq.stringifyNumber(value); + let sign = ''; + + if (value < 0) { + sign = '-'; + value = Math.abs(value); + } + + const parts = [value % 60]; // seconds, including ms + + if (value < 60) { + parts.unshift(0); // at least one : is required + } else { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value % 60); // minutes + + if (value >= 60) { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value); // hours + } + } + + return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\d*$/, '') // % 60 may introduce error + ; +}; + +const intTime = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/, + resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')), + stringify: stringifySexagesimal +}; +const floatTime = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/, + resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')), + stringify: stringifySexagesimal +}; +const timestamp = { + identify: value => value instanceof Date, + default: true, + tag: 'tag:yaml.org,2002:timestamp', + // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part + // may be omitted altogether, resulting in a date format. In such a case, the time part is + // assumed to be 00:00:00Z (start of day, UTC). + test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd + '(?:(?:t|T|[ \\t]+)' + // t | T | whitespace + '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)? + '(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30 + ')?' + ')$'), + resolve: (str, year, month, day, hour, minute, second, millisec, tz) => { + if (millisec) millisec = (millisec + '00').substr(1, 3); + let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0); + + if (tz && tz !== 'Z') { + let d = parseSexagesimal(tz[0], tz.slice(1)); + if (Math.abs(d) < 30) d *= 60; + date -= 60000 * d; + } + + return new Date(date); + }, + stringify: ({ + value + }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, '') +}; + +/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */ +function shouldWarn(deprecation) { + const env = typeof process !== 'undefined' && process.env || {}; + + if (deprecation) { + if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS; + return !env.YAML_SILENCE_DEPRECATION_WARNINGS; + } + + if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS; + return !env.YAML_SILENCE_WARNINGS; +} + +function warn(warning, type) { + if (shouldWarn(false)) { + const emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to + // https://github.com/facebook/jest/issues/2549 + + if (emit) emit(warning, type);else { + // eslint-disable-next-line no-console + console.warn(type ? `${type}: ${warning}` : warning); + } + } +} +function warnFileDeprecation(filename) { + if (shouldWarn(true)) { + const path = filename.replace(/.*yaml[/\\]/i, '').replace(/\.js$/, '').replace(/\\/g, '/'); + warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, 'DeprecationWarning'); + } +} +const warned = {}; +function warnOptionDeprecation(name, alternative) { + if (!warned[name] && shouldWarn(true)) { + warned[name] = true; + let msg = `The option '${name}' will be removed in a future release`; + msg += alternative ? `, use '${alternative}' instead.` : '.'; + warn(msg, 'DeprecationWarning'); + } +} + +exports.binary = binary; +exports.floatTime = floatTime; +exports.intTime = intTime; +exports.omap = omap; +exports.pairs = pairs; +exports.set = set; +exports.timestamp = timestamp; +exports.warn = warn; +exports.warnFileDeprecation = warnFileDeprecation; +exports.warnOptionDeprecation = warnOptionDeprecation; diff --git a/node_modules/yaml/index.d.ts b/node_modules/yaml/index.d.ts new file mode 100644 index 0000000..53eb011 --- /dev/null +++ b/node_modules/yaml/index.d.ts @@ -0,0 +1,372 @@ +import { CST } from './parse-cst' +import { + AST, + Alias, + Collection, + Merge, + Node, + Scalar, + Schema, + YAMLMap, + YAMLSeq +} from './types' +import { Type, YAMLError, YAMLWarning } from './util' + +export { AST, CST } +export { default as parseCST } from './parse-cst' + +/** + * `yaml` defines document-specific options in three places: as an argument of + * parse, create and stringify calls, in the values of `YAML.defaultOptions`, + * and in the version-dependent `YAML.Document.defaults` object. Values set in + * `YAML.defaultOptions` override version-dependent defaults, and argument + * options override both. + */ +export const defaultOptions: Options + +export interface Options extends Schema.Options { + /** + * Default prefix for anchors. + * + * Default: `'a'`, resulting in anchors `a1`, `a2`, etc. + */ + anchorPrefix?: string + /** + * The number of spaces to use when indenting code. + * + * Default: `2` + */ + indent?: number + /** + * Whether block sequences should be indented. + * + * Default: `true` + */ + indentSeq?: boolean + /** + * Allow non-JSON JavaScript objects to remain in the `toJSON` output. + * Relevant with the YAML 1.1 `!!timestamp` and `!!binary` tags as well as BigInts. + * + * Default: `true` + */ + keepBlobsInJSON?: boolean + /** + * Include references in the AST to each node's corresponding CST node. + * + * Default: `false` + */ + keepCstNodes?: boolean + /** + * Store the original node type when parsing documents. + * + * Default: `true` + */ + keepNodeTypes?: boolean + /** + * When outputting JS, use Map rather than Object to represent mappings. + * + * Default: `false` + */ + mapAsMap?: boolean + /** + * Prevent exponential entity expansion attacks by limiting data aliasing count; + * set to `-1` to disable checks; `0` disallows all alias nodes. + * + * Default: `100` + */ + maxAliasCount?: number + /** + * Include line position & node type directly in errors; drop their verbose source and context. + * + * Default: `false` + */ + prettyErrors?: boolean + /** + * When stringifying, require keys to be scalars and to use implicit rather than explicit notation. + * + * Default: `false` + */ + simpleKeys?: boolean + /** + * The YAML version used by documents without a `%YAML` directive. + * + * Default: `"1.2"` + */ + version?: '1.0' | '1.1' | '1.2' +} + +/** + * Some customization options are availabe to control the parsing and + * stringification of scalars. Note that these values are used by all documents. + */ +export const scalarOptions: { + binary: scalarOptions.Binary + bool: scalarOptions.Bool + int: scalarOptions.Int + null: scalarOptions.Null + str: scalarOptions.Str +} +export namespace scalarOptions { + interface Binary { + /** + * The type of string literal used to stringify `!!binary` values. + * + * Default: `'BLOCK_LITERAL'` + */ + defaultType: Scalar.Type + /** + * Maximum line width for `!!binary`. + * + * Default: `76` + */ + lineWidth: number + } + + interface Bool { + /** + * String representation for `true`. With the core schema, use `'true' | 'True' | 'TRUE'`. + * + * Default: `'true'` + */ + trueStr: string + /** + * String representation for `false`. With the core schema, use `'false' | 'False' | 'FALSE'`. + * + * Default: `'false'` + */ + falseStr: string + } + + interface Int { + /** + * Whether integers should be parsed into BigInt values. + * + * Default: `false` + */ + asBigInt: boolean + } + + interface Null { + /** + * String representation for `null`. With the core schema, use `'null' | 'Null' | 'NULL' | '~' | ''`. + * + * Default: `'null'` + */ + nullStr: string + } + + interface Str { + /** + * The default type of string literal used to stringify values + * + * Default: `'PLAIN'` + */ + defaultType: Scalar.Type + doubleQuoted: { + /** + * Whether to restrict double-quoted strings to use JSON-compatible syntax. + * + * Default: `false` + */ + jsonEncoding: boolean + /** + * Minimum length to use multiple lines to represent the value. + * + * Default: `40` + */ + minMultiLineLength: number + } + fold: { + /** + * Maximum line width (set to `0` to disable folding). + * + * Default: `80` + */ + lineWidth: number + /** + * Minimum width for highly-indented content. + * + * Default: `20` + */ + minContentWidth: number + } + } +} + +export class Document extends Collection { + cstNode?: CST.Document + constructor(options?: Options) + tag: never + directivesEndMarker?: boolean + type: Type.DOCUMENT + /** + * Anchors associated with the document's nodes; + * also provides alias & merge node creators. + */ + anchors: Document.Anchors + /** The document contents. */ + contents: any + /** Errors encountered during parsing. */ + errors: YAMLError[] + /** + * The schema used with the document. Use `setSchema()` to change or + * initialise. + */ + schema?: Schema + /** + * Array of prefixes; each will have a string `handle` that + * starts and ends with `!` and a string `prefix` that the handle will be replaced by. + */ + tagPrefixes: Document.TagPrefix[] + /** + * The parsed version of the source document; + * if true-ish, stringified output will include a `%YAML` directive. + */ + version?: string + /** Warnings encountered during parsing. */ + warnings: YAMLWarning[] + /** + * List the tags used in the document that are not in the default + * `tag:yaml.org,2002:` namespace. + */ + listNonDefaultTags(): string[] + /** Parse a CST into this document */ + parse(cst: CST.Document): this + /** + * When a document is created with `new YAML.Document()`, the schema object is + * not set as it may be influenced by parsed directives; call this with no + * arguments to set it manually, or with arguments to change the schema used + * by the document. + **/ + setSchema( + id?: Options['version'] | Schema.Name, + customTags?: (Schema.TagId | Schema.Tag)[] + ): void + /** Set `handle` as a shorthand string for the `prefix` tag namespace. */ + setTagPrefix(handle: string, prefix: string): void + /** + * A plain JavaScript representation of the document `contents`. + * + * @param arg Used by `JSON.stringify` to indicate the array index or property + * name. If its value is a `string` and the document `contents` has a scalar + * value, the `keepBlobsInJSON` option has no effect. + * @param onAnchor If defined, called with the resolved `value` and reference + * `count` for each anchor in the document. + * */ + toJSON(arg?: string, onAnchor?: (value: any, count: number) => void): any + /** A YAML representation of the document. */ + toString(): string +} + +export namespace Document { + interface Parsed extends Document { + contents: Scalar | YAMLMap | YAMLSeq | null + /** The schema used with the document. */ + schema: Schema + } + + interface Anchors { + /** + * Create a new `Alias` node, adding the required anchor for `node`. + * If `name` is empty, a new anchor name will be generated. + */ + createAlias(node: Node, name?: string): Alias + /** + * Create a new `Merge` node with the given source nodes. + * Non-`Alias` sources will be automatically wrapped. + */ + createMergePair(...nodes: Node[]): Merge + /** The anchor name associated with `node`, if set. */ + getName(node: Node): undefined | string + /** List of all defined anchor names. */ + getNames(): string[] + /** The node associated with the anchor `name`, if set. */ + getNode(name: string): undefined | Node + /** + * Find an available anchor name with the given `prefix` and a + * numerical suffix. + */ + newName(prefix: string): string + /** + * Associate an anchor with `node`. If `name` is empty, a new name will be generated. + * To remove an anchor, use `setAnchor(null, name)`. + */ + setAnchor(node: Node | null, name?: string): void | string + } + + interface TagPrefix { + handle: string + prefix: string + } +} + +/** + * Recursively turns objects into collections. Generic objects as well as `Map` + * and its descendants become mappings, while arrays and other iterable objects + * result in sequences. + * + * The primary purpose of this function is to enable attaching comments or other + * metadata to a value, or to otherwise exert more fine-grained control over the + * stringified output. To that end, you'll need to assign its return value to + * the `contents` of a Document (or somewhere within said contents), as the + * document's schema is required for YAML string output. + * + * @param wrapScalars If undefined or `true`, also wraps plain values in + * `Scalar` objects; if `false` and `value` is not an object, it will be + * returned directly. + * @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that + * this requires the corresponding tag to be available based on the default + * options. To use a specific document's schema, use `doc.schema.createNode`. + */ +export function createNode( + value: any, + wrapScalars?: true, + tag?: string +): YAMLMap | YAMLSeq | Scalar + +/** + * YAML.createNode recursively turns objects into Map and arrays to Seq collections. + * Its primary use is to enable attaching comments or other metadata to a value, + * or to otherwise exert more fine-grained control over the stringified output. + * + * Doesn't wrap plain values in Scalar objects. + */ +export function createNode( + value: any, + wrapScalars: false, + tag?: string +): YAMLMap | YAMLSeq | string | number | boolean | null + +/** + * Parse an input string into a single YAML.Document. + */ +export function parseDocument(str: string, options?: Options): Document.Parsed + +/** + * Parse the input as a stream of YAML documents. + * + * Documents should be separated from each other by `...` or `---` marker lines. + */ +export function parseAllDocuments( + str: string, + options?: Options +): Document.Parsed[] + +/** + * Parse an input string into JavaScript. + * + * Only supports input consisting of a single YAML document; for multi-document + * support you should use `YAML.parseAllDocuments`. May throw on error, and may + * log warnings using `console.warn`. + * + * @param str A string with YAML formatting. + * @returns The value will match the type of the root value of the parsed YAML + * document, so Maps become objects, Sequences arrays, and scalars result in + * nulls, booleans, numbers and strings. + */ +export function parse(str: string, options?: Options): any + +/** + * @returns Will always include \n as the last character, as is expected of YAML documents. + */ +export function stringify(value: any, options?: Options): string diff --git a/node_modules/yaml/index.js b/node_modules/yaml/index.js new file mode 100644 index 0000000..b501ac4 --- /dev/null +++ b/node_modules/yaml/index.js @@ -0,0 +1 @@ +module.exports = require('./dist').YAML diff --git a/node_modules/yaml/map.js b/node_modules/yaml/map.js new file mode 100644 index 0000000..78f2ebc --- /dev/null +++ b/node_modules/yaml/map.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLMap +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/package.json b/node_modules/yaml/package.json new file mode 100644 index 0000000..d91b0dd --- /dev/null +++ b/node_modules/yaml/package.json @@ -0,0 +1,106 @@ +{ + "name": "yaml", + "version": "1.10.2", + "license": "ISC", + "author": "Eemeli Aro ", + "repository": "github:eemeli/yaml", + "description": "JavaScript parser and stringifier for YAML", + "keywords": [ + "YAML", + "parser", + "stringifier" + ], + "homepage": "https://eemeli.org/yaml/v1/", + "files": [ + "browser/", + "dist/", + "types/", + "*.d.ts", + "*.js", + "*.mjs", + "!*config.js" + ], + "type": "commonjs", + "main": "./index.js", + "browser": { + "./index.js": "./browser/index.js", + "./map.js": "./browser/map.js", + "./pair.js": "./browser/pair.js", + "./parse-cst.js": "./browser/parse-cst.js", + "./scalar.js": "./browser/scalar.js", + "./schema.js": "./browser/schema.js", + "./seq.js": "./browser/seq.js", + "./types.js": "./browser/types.js", + "./types.mjs": "./browser/types.js", + "./types/binary.js": "./browser/types/binary.js", + "./types/omap.js": "./browser/types/omap.js", + "./types/pairs.js": "./browser/types/pairs.js", + "./types/set.js": "./browser/types/set.js", + "./types/timestamp.js": "./browser/types/timestamp.js", + "./util.js": "./browser/util.js", + "./util.mjs": "./browser/util.js" + }, + "exports": { + ".": "./index.js", + "./parse-cst": "./parse-cst.js", + "./types": [ + { + "import": "./types.mjs" + }, + "./types.js" + ], + "./util": [ + { + "import": "./util.mjs" + }, + "./util.js" + ], + "./": "./" + }, + "scripts": { + "build": "npm run build:node && npm run build:browser", + "build:browser": "rollup -c rollup.browser-config.js", + "build:node": "rollup -c rollup.node-config.js", + "clean": "git clean -fdxe node_modules", + "lint": "eslint src/", + "prettier": "prettier --write .", + "start": "cross-env TRACE_LEVEL=log npm run build:node && node -i -e 'YAML=require(\".\")'", + "test": "jest", + "test:browsers": "cd playground && npm test", + "test:dist": "npm run build:node && jest", + "test:types": "tsc --lib ES2017 --noEmit tests/typings.ts", + "docs:install": "cd docs-slate && bundle install", + "docs:deploy": "cd docs-slate && ./deploy.sh", + "docs": "cd docs-slate && bundle exec middleman server", + "preversion": "npm test && npm run build", + "prepublishOnly": "npm run clean && npm test && npm run build" + }, + "browserslist": "> 0.5%, not dead", + "prettier": { + "arrowParens": "avoid", + "semi": false, + "singleQuote": true, + "trailingComma": "none" + }, + "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@rollup/plugin-babel": "^5.2.3", + "babel-eslint": "^10.1.0", + "babel-jest": "^26.6.3", + "babel-plugin-trace": "^1.1.0", + "common-tags": "^1.8.0", + "cross-env": "^7.0.3", + "eslint": "^7.19.0", + "eslint-config-prettier": "^7.2.0", + "fast-check": "^2.12.0", + "jest": "^26.6.3", + "prettier": "^2.2.1", + "rollup": "^2.38.2", + "typescript": "^4.1.3" + }, + "engines": { + "node": ">= 6" + } +} diff --git a/node_modules/yaml/pair.js b/node_modules/yaml/pair.js new file mode 100644 index 0000000..b2880a2 --- /dev/null +++ b/node_modules/yaml/pair.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Pair +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/parse-cst.d.ts b/node_modules/yaml/parse-cst.d.ts new file mode 100644 index 0000000..9fd2ebf --- /dev/null +++ b/node_modules/yaml/parse-cst.d.ts @@ -0,0 +1,191 @@ +import { Type, YAMLSyntaxError } from './util' + +export default function parseCST(str: string): ParsedCST + +export interface ParsedCST extends Array { + setOrigRanges(): boolean +} + +export namespace CST { + interface Range { + start: number + end: number + origStart?: number + origEnd?: number + isEmpty(): boolean + } + + interface ParseContext { + /** Node starts at beginning of line */ + atLineStart: boolean + /** true if currently in a collection context */ + inCollection: boolean + /** true if currently in a flow context */ + inFlow: boolean + /** Current level of indentation */ + indent: number + /** Start of the current line */ + lineStart: number + /** The parent of the node */ + parent: Node + /** Source of the YAML document */ + src: string + } + + interface Node { + context: ParseContext | null + /** if not null, indicates a parser failure */ + error: YAMLSyntaxError | null + /** span of context.src parsed into this node */ + range: Range | null + valueRange: Range | null + /** anchors, tags and comments */ + props: Range[] + /** specific node type */ + type: Type + /** if non-null, overrides source value */ + value: string | null + + readonly anchor: string | null + readonly comment: string | null + readonly hasComment: boolean + readonly hasProps: boolean + readonly jsonLike: boolean + readonly rangeAsLinePos: null | { + start: { line: number; col: number } + end?: { line: number; col: number } + } + readonly rawValue: string | null + readonly tag: + | null + | { verbatim: string } + | { handle: string; suffix: string } + readonly valueRangeContainsNewline: boolean + } + + interface Alias extends Node { + type: Type.ALIAS + /** contain the anchor without the * prefix */ + readonly rawValue: string + } + + type Scalar = BlockValue | PlainValue | QuoteValue + + interface BlockValue extends Node { + type: Type.BLOCK_FOLDED | Type.BLOCK_LITERAL + chomping: 'CLIP' | 'KEEP' | 'STRIP' + blockIndent: number | null + header: Range + readonly strValue: string | null + } + + interface BlockFolded extends BlockValue { + type: Type.BLOCK_FOLDED + } + + interface BlockLiteral extends BlockValue { + type: Type.BLOCK_LITERAL + } + + interface PlainValue extends Node { + type: Type.PLAIN + readonly strValue: string | null + } + + interface QuoteValue extends Node { + type: Type.QUOTE_DOUBLE | Type.QUOTE_SINGLE + readonly strValue: + | null + | string + | { str: string; errors: YAMLSyntaxError[] } + } + + interface QuoteDouble extends QuoteValue { + type: Type.QUOTE_DOUBLE + } + + interface QuoteSingle extends QuoteValue { + type: Type.QUOTE_SINGLE + } + + interface Comment extends Node { + type: Type.COMMENT + readonly anchor: null + readonly comment: string + readonly rawValue: null + readonly tag: null + } + + interface BlankLine extends Node { + type: Type.BLANK_LINE + } + + interface MapItem extends Node { + type: Type.MAP_KEY | Type.MAP_VALUE + node: ContentNode | null + } + + interface MapKey extends MapItem { + type: Type.MAP_KEY + } + + interface MapValue extends MapItem { + type: Type.MAP_VALUE + } + + interface Map extends Node { + type: Type.MAP + /** implicit keys are not wrapped */ + items: Array + } + + interface SeqItem extends Node { + type: Type.SEQ_ITEM + node: ContentNode | null + } + + interface Seq extends Node { + type: Type.SEQ + items: Array + } + + interface FlowChar { + char: '{' | '}' | '[' | ']' | ',' | '?' | ':' + offset: number + origOffset?: number + } + + interface FlowCollection extends Node { + type: Type.FLOW_MAP | Type.FLOW_SEQ + items: Array< + FlowChar | BlankLine | Comment | Alias | Scalar | FlowCollection + > + } + + interface FlowMap extends FlowCollection { + type: Type.FLOW_MAP + } + + interface FlowSeq extends FlowCollection { + type: Type.FLOW_SEQ + } + + type ContentNode = Alias | Scalar | Map | Seq | FlowCollection + + interface Directive extends Node { + type: Type.DIRECTIVE + name: string + readonly anchor: null + readonly parameters: string[] + readonly tag: null + } + + interface Document extends Node { + type: Type.DOCUMENT + directives: Array + contents: Array + readonly anchor: null + readonly comment: null + readonly tag: null + } +} diff --git a/node_modules/yaml/parse-cst.js b/node_modules/yaml/parse-cst.js new file mode 100644 index 0000000..8065756 --- /dev/null +++ b/node_modules/yaml/parse-cst.js @@ -0,0 +1 @@ +module.exports = require('./dist/parse-cst').parse diff --git a/node_modules/yaml/scalar.js b/node_modules/yaml/scalar.js new file mode 100644 index 0000000..deee1b0 --- /dev/null +++ b/node_modules/yaml/scalar.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Scalar +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/schema.js b/node_modules/yaml/schema.js new file mode 100644 index 0000000..4139c4b --- /dev/null +++ b/node_modules/yaml/schema.js @@ -0,0 +1,9 @@ +const types = require('./dist/types') +const util = require('./dist/util') + +module.exports = types.Schema +module.exports.nullOptions = types.nullOptions +module.exports.strOptions = types.strOptions +module.exports.stringify = util.stringifyString + +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/seq.js b/node_modules/yaml/seq.js new file mode 100644 index 0000000..66147df --- /dev/null +++ b/node_modules/yaml/seq.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLSeq +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types.d.ts b/node_modules/yaml/types.d.ts new file mode 100644 index 0000000..411e74e --- /dev/null +++ b/node_modules/yaml/types.d.ts @@ -0,0 +1,407 @@ +import { Document, scalarOptions } from './index' +import { CST } from './parse-cst' +import { Type } from './util' + +export const binaryOptions: scalarOptions.Binary +export const boolOptions: scalarOptions.Bool +export const intOptions: scalarOptions.Int +export const nullOptions: scalarOptions.Null +export const strOptions: scalarOptions.Str + +export class Schema { + /** Default: `'tag:yaml.org,2002:'` */ + static defaultPrefix: string + static defaultTags: { + /** Default: `'tag:yaml.org,2002:map'` */ + MAP: string + /** Default: `'tag:yaml.org,2002:seq'` */ + SEQ: string + /** Default: `'tag:yaml.org,2002:str'` */ + STR: string + } + constructor(options: Schema.Options) + /** + * Convert any value into a `Node` using this schema, recursively turning + * objects into collections. + * + * @param wrapScalars If `true`, also wraps plain values in `Scalar` objects; + * if undefined or `false` and `value` is not an object, it will be returned + * directly. + * @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that + * this requires the corresponding tag to be available in this schema. + */ + createNode( + value: any, + wrapScalars?: boolean, + tag?: string, + ctx?: Schema.CreateNodeContext + ): Node + /** + * Convert a key and a value into a `Pair` using this schema, recursively + * wrapping all values as `Scalar` or `Collection` nodes. + * + * @param ctx To not wrap scalars, use a context `{ wrapScalars: false }` + */ + createPair(key: any, value: any, ctx?: Schema.CreateNodeContext): Pair + merge: boolean + name: Schema.Name + sortMapEntries: ((a: Pair, b: Pair) => number) | null + tags: Schema.Tag[] +} + +export namespace Schema { + type Name = 'core' | 'failsafe' | 'json' | 'yaml-1.1' + + interface Options { + /** + * Array of additional tags to include in the schema, or a function that may + * modify the schema's base tag array. + */ + customTags?: (TagId | Tag)[] | ((tags: Tag[]) => Tag[]) + /** + * Enable support for `<<` merge keys. + * + * Default: `false` for YAML 1.2, `true` for earlier versions + */ + merge?: boolean + /** + * The base schema to use. + * + * Default: `"core"` for YAML 1.2, `"yaml-1.1"` for earlier versions + */ + schema?: Name + /** + * When stringifying, sort map entries. If `true`, sort by comparing key values with `<`. + * + * Default: `false` + */ + sortMapEntries?: boolean | ((a: Pair, b: Pair) => number) + /** + * @deprecated Use `customTags` instead. + */ + tags?: Options['customTags'] + } + + interface CreateNodeContext { + wrapScalars?: boolean + [key: string]: any + } + + interface StringifyContext { + forceBlockIndent?: boolean + implicitKey?: boolean + indent?: string + indentAtStart?: number + inFlow?: boolean + [key: string]: any + } + + type TagId = + | 'binary' + | 'bool' + | 'float' + | 'floatExp' + | 'floatNaN' + | 'floatTime' + | 'int' + | 'intHex' + | 'intOct' + | 'intTime' + | 'null' + | 'omap' + | 'pairs' + | 'set' + | 'timestamp' + + type Tag = CustomTag | DefaultTag + + interface BaseTag { + /** + * An optional factory function, used e.g. by collections when wrapping JS objects as AST nodes. + */ + createNode?: ( + schema: Schema, + value: any, + ctx: Schema.CreateNodeContext + ) => YAMLMap | YAMLSeq | Scalar + /** + * If a tag has multiple forms that should be parsed and/or stringified differently, use `format` to identify them. + */ + format?: string + /** + * Used by `YAML.createNode` to detect your data type, e.g. using `typeof` or + * `instanceof`. + */ + identify(value: any): boolean + /** + * The `Node` child class that implements this tag. Required for collections and tags that have overlapping JS representations. + */ + nodeClass?: new () => any + /** + * Used by some tags to configure their stringification, where applicable. + */ + options?: object + /** + * Optional function stringifying the AST node in the current context. If your + * data includes a suitable `.toString()` method, you can probably leave this + * undefined and use the default stringifier. + * + * @param item The node being stringified. + * @param ctx Contains the stringifying context variables. + * @param onComment Callback to signal that the stringifier includes the + * item's comment in its output. + * @param onChompKeep Callback to signal that the output uses a block scalar + * type with the `+` chomping indicator. + */ + stringify?: ( + item: Node, + ctx: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ) => string + /** + * The identifier for your data type, with which its stringified form will be + * prefixed. Should either be a !-prefixed local `!tag`, or a fully qualified + * `tag:domain,date:foo`. + */ + tag: string + } + + interface CustomTag extends BaseTag { + /** + * A JavaScript class that should be matched to this tag, e.g. `Date` for `!!timestamp`. + * @deprecated Use `Tag.identify` instead + */ + class?: new () => any + /** + * Turns a CST node into an AST node. If returning a non-`Node` value, the + * output will be wrapped as a `Scalar`. + */ + resolve(doc: Document, cstNode: CST.Node): Node | any + } + + interface DefaultTag extends BaseTag { + /** + * If `true`, together with `test` allows for values to be stringified without + * an explicit tag. For most cases, it's unlikely that you'll actually want to + * use this, even if you first think you do. + */ + default: true + /** + * Alternative form used by default tags; called with `test` match results. + */ + resolve(...match: string[]): Node | any + /** + * Together with `default` allows for values to be stringified without an + * explicit tag and detected using a regular expression. For most cases, it's + * unlikely that you'll actually want to use these, even if you first think + * you do. + */ + test: RegExp + } +} + +export class Node { + /** A comment on or immediately after this */ + comment?: string | null + /** A comment before this */ + commentBefore?: string | null + /** Only available when `keepCstNodes` is set to `true` */ + cstNode?: CST.Node + /** + * The [start, end] range of characters of the source parsed + * into this node (undefined for pairs or if not parsed) + */ + range?: [number, number] | null + /** A blank line before this node and its commentBefore */ + spaceBefore?: boolean + /** A fully qualified tag, if required */ + tag?: string + /** A plain JS representation of this node */ + toJSON(arg?: any): any + /** The type of this node */ + type?: Type | Pair.Type +} + +export class Scalar extends Node { + constructor(value: any) + type?: Scalar.Type + /** + * By default (undefined), numbers use decimal notation. + * The YAML 1.2 core schema only supports 'HEX' and 'OCT'. + */ + format?: 'BIN' | 'HEX' | 'OCT' | 'TIME' + value: any + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): any + toString(): string +} +export namespace Scalar { + type Type = + | Type.BLOCK_FOLDED + | Type.BLOCK_LITERAL + | Type.PLAIN + | Type.QUOTE_DOUBLE + | Type.QUOTE_SINGLE +} + +export class Alias extends Node { + type: Type.ALIAS + source: Node + cstNode?: CST.Alias + toString(ctx: Schema.StringifyContext): string +} + +export class Pair extends Node { + constructor(key: any, value?: any) + type: Pair.Type.PAIR | Pair.Type.MERGE_PAIR + /** Always Node or null when parsed, but can be set to anything. */ + key: any + /** Always Node or null when parsed, but can be set to anything. */ + value: any + cstNode?: never // no corresponding cstNode + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): object | Map + toString( + ctx?: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ): string +} +export namespace Pair { + enum Type { + PAIR = 'PAIR', + MERGE_PAIR = 'MERGE_PAIR' + } +} + +export class Merge extends Pair { + type: Pair.Type.MERGE_PAIR + /** Always Scalar('<<'), defined by the type specification */ + key: AST.PlainValue + /** Always YAMLSeq, stringified as *A if length = 1 */ + value: YAMLSeq + toString(ctx?: Schema.StringifyContext, onComment?: () => void): string +} + +export class Collection extends Node { + type?: Type.MAP | Type.FLOW_MAP | Type.SEQ | Type.FLOW_SEQ | Type.DOCUMENT + items: any[] + schema?: Schema + + /** + * Adds a value to the collection. For `!!map` and `!!omap` the value must + * be a Pair instance or a `{ key, value }` object, which may not have a key + * that already exists in the map. + */ + add(value: any): void + addIn(path: Iterable, value: any): void + /** + * Removes a value from the collection. + * @returns `true` if the item was found and removed. + */ + delete(key: any): boolean + deleteIn(path: Iterable): boolean + /** + * Returns item at `key`, or `undefined` if not found. By default unwraps + * scalar values from their surrounding node; to disable set `keepScalar` to + * `true` (collections are always returned intact). + */ + get(key: any, keepScalar?: boolean): any + getIn(path: Iterable, keepScalar?: boolean): any + /** + * Checks if the collection includes a value with the key `key`. + */ + has(key: any): boolean + hasIn(path: Iterable): boolean + /** + * Sets a value in this collection. For `!!set`, `value` needs to be a + * boolean to add/remove the item from the set. + */ + set(key: any, value: any): void + setIn(path: Iterable, value: any): void +} + +export class YAMLMap extends Collection { + type?: Type.FLOW_MAP | Type.MAP + items: Array + hasAllNullValues(): boolean + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): object | Map + toString( + ctx?: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ): string +} + +export class YAMLSeq extends Collection { + type?: Type.FLOW_SEQ | Type.SEQ + delete(key: number | string | Scalar): boolean + get(key: number | string | Scalar, keepScalar?: boolean): any + has(key: number | string | Scalar): boolean + set(key: number | string | Scalar, value: any): void + hasAllNullValues(): boolean + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): any[] + toString( + ctx?: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ): string +} + +export namespace AST { + interface NodeToJsonContext { + anchors?: any[] + doc: Document + keep?: boolean + mapAsMap?: boolean + maxAliasCount?: number + onCreate?: (node: Node) => void + [key: string]: any + } + + interface BlockFolded extends Scalar { + type: Type.BLOCK_FOLDED + cstNode?: CST.BlockFolded + } + + interface BlockLiteral extends Scalar { + type: Type.BLOCK_LITERAL + cstNode?: CST.BlockLiteral + } + + interface PlainValue extends Scalar { + type: Type.PLAIN + cstNode?: CST.PlainValue + } + + interface QuoteDouble extends Scalar { + type: Type.QUOTE_DOUBLE + cstNode?: CST.QuoteDouble + } + + interface QuoteSingle extends Scalar { + type: Type.QUOTE_SINGLE + cstNode?: CST.QuoteSingle + } + + interface FlowMap extends YAMLMap { + type: Type.FLOW_MAP + cstNode?: CST.FlowMap + } + + interface BlockMap extends YAMLMap { + type: Type.MAP + cstNode?: CST.Map + } + + interface FlowSeq extends YAMLSeq { + type: Type.FLOW_SEQ + items: Array + cstNode?: CST.FlowSeq + } + + interface BlockSeq extends YAMLSeq { + type: Type.SEQ + items: Array + cstNode?: CST.Seq + } +} diff --git a/node_modules/yaml/types.js b/node_modules/yaml/types.js new file mode 100644 index 0000000..8874749 --- /dev/null +++ b/node_modules/yaml/types.js @@ -0,0 +1,17 @@ +const types = require('./dist/types') + +exports.binaryOptions = types.binaryOptions +exports.boolOptions = types.boolOptions +exports.intOptions = types.intOptions +exports.nullOptions = types.nullOptions +exports.strOptions = types.strOptions + +exports.Schema = types.Schema +exports.Alias = types.Alias +exports.Collection = types.Collection +exports.Merge = types.Merge +exports.Node = types.Node +exports.Pair = types.Pair +exports.Scalar = types.Scalar +exports.YAMLMap = types.YAMLMap +exports.YAMLSeq = types.YAMLSeq diff --git a/node_modules/yaml/types.mjs b/node_modules/yaml/types.mjs new file mode 100644 index 0000000..7132288 --- /dev/null +++ b/node_modules/yaml/types.mjs @@ -0,0 +1,17 @@ +import types from './dist/types.js' + +export const binaryOptions = types.binaryOptions +export const boolOptions = types.boolOptions +export const intOptions = types.intOptions +export const nullOptions = types.nullOptions +export const strOptions = types.strOptions + +export const Schema = types.Schema +export const Alias = types.Alias +export const Collection = types.Collection +export const Merge = types.Merge +export const Node = types.Node +export const Pair = types.Pair +export const Scalar = types.Scalar +export const YAMLMap = types.YAMLMap +export const YAMLSeq = types.YAMLSeq diff --git a/node_modules/yaml/types/binary.js b/node_modules/yaml/types/binary.js new file mode 100644 index 0000000..271b9de --- /dev/null +++ b/node_modules/yaml/types/binary.js @@ -0,0 +1,8 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.binary = legacy.binary +exports.default = [exports.binary] + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/omap.js b/node_modules/yaml/types/omap.js new file mode 100644 index 0000000..37b638b --- /dev/null +++ b/node_modules/yaml/types/omap.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.omap +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/pairs.js b/node_modules/yaml/types/pairs.js new file mode 100644 index 0000000..f1df201 --- /dev/null +++ b/node_modules/yaml/types/pairs.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.pairs +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/set.js b/node_modules/yaml/types/set.js new file mode 100644 index 0000000..e7dc9d4 --- /dev/null +++ b/node_modules/yaml/types/set.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.set +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/timestamp.js b/node_modules/yaml/types/timestamp.js new file mode 100644 index 0000000..39c5b6d --- /dev/null +++ b/node_modules/yaml/types/timestamp.js @@ -0,0 +1,10 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.default = [legacy.intTime, legacy.floatTime, legacy.timestamp] +exports.floatTime = legacy.floatTime +exports.intTime = legacy.intTime +exports.timestamp = legacy.timestamp + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/util.d.ts b/node_modules/yaml/util.d.ts new file mode 100644 index 0000000..b135541 --- /dev/null +++ b/node_modules/yaml/util.d.ts @@ -0,0 +1,86 @@ +import { Document } from './index' +import { CST } from './parse-cst' +import { AST, Pair, Scalar, Schema } from './types' + +export function findPair(items: any[], key: Scalar | any): Pair | undefined + +export function parseMap(doc: Document, cst: CST.Map): AST.BlockMap +export function parseMap(doc: Document, cst: CST.FlowMap): AST.FlowMap +export function parseSeq(doc: Document, cst: CST.Seq): AST.BlockSeq +export function parseSeq(doc: Document, cst: CST.FlowSeq): AST.FlowSeq + +export function stringifyNumber(item: Scalar): string +export function stringifyString( + item: Scalar, + ctx: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void +): string + +export function toJSON( + value: any, + arg?: any, + ctx?: Schema.CreateNodeContext +): any + +export enum Type { + ALIAS = 'ALIAS', + BLANK_LINE = 'BLANK_LINE', + BLOCK_FOLDED = 'BLOCK_FOLDED', + BLOCK_LITERAL = 'BLOCK_LITERAL', + COMMENT = 'COMMENT', + DIRECTIVE = 'DIRECTIVE', + DOCUMENT = 'DOCUMENT', + FLOW_MAP = 'FLOW_MAP', + FLOW_SEQ = 'FLOW_SEQ', + MAP = 'MAP', + MAP_KEY = 'MAP_KEY', + MAP_VALUE = 'MAP_VALUE', + PLAIN = 'PLAIN', + QUOTE_DOUBLE = 'QUOTE_DOUBLE', + QUOTE_SINGLE = 'QUOTE_SINGLE', + SEQ = 'SEQ', + SEQ_ITEM = 'SEQ_ITEM' +} + +interface LinePos { + line: number + col: number +} + +export class YAMLError extends Error { + name: + | 'YAMLReferenceError' + | 'YAMLSemanticError' + | 'YAMLSyntaxError' + | 'YAMLWarning' + message: string + source?: CST.Node + + nodeType?: Type + range?: CST.Range + linePos?: { start: LinePos; end: LinePos } + + /** + * Drops `source` and adds `nodeType`, `range` and `linePos`, as well as + * adding details to `message`. Run automatically for document errors if + * the `prettyErrors` option is set. + */ + makePretty(): void +} + +export class YAMLReferenceError extends YAMLError { + name: 'YAMLReferenceError' +} + +export class YAMLSemanticError extends YAMLError { + name: 'YAMLSemanticError' +} + +export class YAMLSyntaxError extends YAMLError { + name: 'YAMLSyntaxError' +} + +export class YAMLWarning extends YAMLError { + name: 'YAMLWarning' +} diff --git a/node_modules/yaml/util.js b/node_modules/yaml/util.js new file mode 100644 index 0000000..06dd2c9 --- /dev/null +++ b/node_modules/yaml/util.js @@ -0,0 +1,16 @@ +const util = require('./dist/util') + +exports.findPair = util.findPair +exports.toJSON = util.toJSON +exports.parseMap = util.parseMap +exports.parseSeq = util.parseSeq + +exports.stringifyNumber = util.stringifyNumber +exports.stringifyString = util.stringifyString +exports.Type = util.Type + +exports.YAMLError = util.YAMLError +exports.YAMLReferenceError = util.YAMLReferenceError +exports.YAMLSemanticError = util.YAMLSemanticError +exports.YAMLSyntaxError = util.YAMLSyntaxError +exports.YAMLWarning = util.YAMLWarning diff --git a/node_modules/yaml/util.mjs b/node_modules/yaml/util.mjs new file mode 100644 index 0000000..89e654a --- /dev/null +++ b/node_modules/yaml/util.mjs @@ -0,0 +1,18 @@ +import util from './dist/util.js' + +export const findPair = util.findPair +export const toJSON = util.toJSON + +export const parseMap = util.parseMap +export const parseSeq = util.parseSeq + +export const stringifyNumber = util.stringifyNumber +export const stringifyString = util.stringifyString + +export const Type = util.Type + +export const YAMLError = util.YAMLError +export const YAMLReferenceError = util.YAMLReferenceError +export const YAMLSemanticError = util.YAMLSemanticError +export const YAMLSyntaxError = util.YAMLSyntaxError +export const YAMLWarning = util.YAMLWarning diff --git a/node_modules/yargs-parser/CHANGELOG.md b/node_modules/yargs-parser/CHANGELOG.md new file mode 100644 index 0000000..584eb86 --- /dev/null +++ b/node_modules/yargs-parser/CHANGELOG.md @@ -0,0 +1,308 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [21.1.1](https://github.com/yargs/yargs-parser/compare/yargs-parser-v21.1.0...yargs-parser-v21.1.1) (2022-08-04) + + +### Bug Fixes + +* **typescript:** ignore .cts files during publish ([#454](https://github.com/yargs/yargs-parser/issues/454)) ([d69f9c3](https://github.com/yargs/yargs-parser/commit/d69f9c3a91c3ad2f9494d0a94e29a8b76c41b81b)), closes [#452](https://github.com/yargs/yargs-parser/issues/452) + +## [21.1.0](https://github.com/yargs/yargs-parser/compare/yargs-parser-v21.0.1...yargs-parser-v21.1.0) (2022-08-03) + + +### Features + +* allow the browser build to be imported ([#443](https://github.com/yargs/yargs-parser/issues/443)) ([a89259f](https://github.com/yargs/yargs-parser/commit/a89259ff41d6f5312b3ce8a30bef343a993f395a)) + + +### Bug Fixes + +* **halt-at-non-option:** prevent known args from being parsed when "unknown-options-as-args" is enabled ([#438](https://github.com/yargs/yargs-parser/issues/438)) ([c474bc1](https://github.com/yargs/yargs-parser/commit/c474bc10c3aa0ae864b95e5722730114ef15f573)) +* node version check now uses process.versions.node ([#450](https://github.com/yargs/yargs-parser/issues/450)) ([d07bcdb](https://github.com/yargs/yargs-parser/commit/d07bcdbe43075f7201fbe8a08e491217247fe1f1)) +* parse options ending with 3+ hyphens ([#434](https://github.com/yargs/yargs-parser/issues/434)) ([4f1060b](https://github.com/yargs/yargs-parser/commit/4f1060b50759fadbac3315c5117b0c3d65b0a7d8)) + +### [21.0.1](https://github.com/yargs/yargs-parser/compare/yargs-parser-v21.0.0...yargs-parser-v21.0.1) (2022-02-27) + + +### Bug Fixes + +* return deno env object ([#432](https://github.com/yargs/yargs-parser/issues/432)) ([b00eb87](https://github.com/yargs/yargs-parser/commit/b00eb87b4860a890dd2dab0d6058241bbfd2b3ec)) + +## [21.0.0](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.9...yargs-parser-v21.0.0) (2021-11-15) + + +### ⚠ BREAKING CHANGES + +* drops support for 10 (#421) + +### Bug Fixes + +* esm json import ([#416](https://www.github.com/yargs/yargs-parser/issues/416)) ([90f970a](https://www.github.com/yargs/yargs-parser/commit/90f970a6482dd4f5b5eb18d38596dd6f02d73edf)) +* parser should preserve inner quotes ([#407](https://www.github.com/yargs/yargs-parser/issues/407)) ([ae11f49](https://www.github.com/yargs/yargs-parser/commit/ae11f496a8318ea8885aa25015d429b33713c314)) + + +### Code Refactoring + +* drops support for 10 ([#421](https://www.github.com/yargs/yargs-parser/issues/421)) ([3aaf878](https://www.github.com/yargs/yargs-parser/commit/3aaf8784f5c7f2aec6108c1c6a55537fa7e3b5c1)) + +### [20.2.9](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.8...yargs-parser-v20.2.9) (2021-06-20) + + +### Bug Fixes + +* **build:** fixed automated release pipeline ([1fe9135](https://www.github.com/yargs/yargs-parser/commit/1fe9135884790a083615419b2861683e2597dac3)) + +### [20.2.8](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.7...yargs-parser-v20.2.8) (2021-06-20) + + +### Bug Fixes + +* **locale:** Turkish camelize and decamelize issues with toLocaleLowerCase/toLocaleUpperCase ([2617303](https://www.github.com/yargs/yargs-parser/commit/261730383e02448562f737b94bbd1f164aed5143)) +* **perf:** address slow parse when using unknown-options-as-args ([#394](https://www.github.com/yargs/yargs-parser/issues/394)) ([441f059](https://www.github.com/yargs/yargs-parser/commit/441f059d585d446551068ad213db79ac91daf83a)) +* **string-utils:** detect [0,1] ranged values as numbers ([#388](https://www.github.com/yargs/yargs-parser/issues/388)) ([efcc32c](https://www.github.com/yargs/yargs-parser/commit/efcc32c2d6b09aba31abfa2db9bd947befe5586b)) + +### [20.2.7](https://www.github.com/yargs/yargs-parser/compare/v20.2.6...v20.2.7) (2021-03-10) + + +### Bug Fixes + +* **deno:** force release for Deno ([6687c97](https://www.github.com/yargs/yargs-parser/commit/6687c972d0f3ca7865a97908dde3080b05f8b026)) + +### [20.2.6](https://www.github.com/yargs/yargs-parser/compare/v20.2.5...v20.2.6) (2021-02-22) + + +### Bug Fixes + +* **populate--:** -- should always be array ([#354](https://www.github.com/yargs/yargs-parser/issues/354)) ([585ae8f](https://www.github.com/yargs/yargs-parser/commit/585ae8ffad74cc02974f92d788e750137fd65146)) + +### [20.2.5](https://www.github.com/yargs/yargs-parser/compare/v20.2.4...v20.2.5) (2021-02-13) + + +### Bug Fixes + +* do not lowercase camel cased string ([#348](https://www.github.com/yargs/yargs-parser/issues/348)) ([5f4da1f](https://www.github.com/yargs/yargs-parser/commit/5f4da1f17d9d50542d2aaa206c9806ce3e320335)) + +### [20.2.4](https://www.github.com/yargs/yargs-parser/compare/v20.2.3...v20.2.4) (2020-11-09) + + +### Bug Fixes + +* **deno:** address import issues in Deno ([#339](https://www.github.com/yargs/yargs-parser/issues/339)) ([3b54e5e](https://www.github.com/yargs/yargs-parser/commit/3b54e5eef6e9a7b7c6eec7c12bab3ba3b8ba8306)) + +### [20.2.3](https://www.github.com/yargs/yargs-parser/compare/v20.2.2...v20.2.3) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#336](https://www.github.com/yargs/yargs-parser/issues/336)) ([3ae7242](https://www.github.com/yargs/yargs-parser/commit/3ae7242040ff876d28dabded60ac226e00150c88)) + +### [20.2.2](https://www.github.com/yargs/yargs-parser/compare/v20.2.1...v20.2.2) (2020-10-14) + + +### Bug Fixes + +* **exports:** node 13.0-13.6 require a string fallback ([#333](https://www.github.com/yargs/yargs-parser/issues/333)) ([291aeda](https://www.github.com/yargs/yargs-parser/commit/291aeda06b685b7a015d83bdf2558e180b37388d)) + +### [20.2.1](https://www.github.com/yargs/yargs-parser/compare/v20.2.0...v20.2.1) (2020-10-01) + + +### Bug Fixes + +* **deno:** update types for deno ^1.4.0 ([#330](https://www.github.com/yargs/yargs-parser/issues/330)) ([0ab92e5](https://www.github.com/yargs/yargs-parser/commit/0ab92e50b090f11196334c048c9c92cecaddaf56)) + +## [20.2.0](https://www.github.com/yargs/yargs-parser/compare/v20.1.0...v20.2.0) (2020-09-21) + + +### Features + +* **string-utils:** export looksLikeNumber helper ([#324](https://www.github.com/yargs/yargs-parser/issues/324)) ([c8580a2](https://www.github.com/yargs/yargs-parser/commit/c8580a2327b55f6342acecb6e72b62963d506750)) + + +### Bug Fixes + +* **unknown-options-as-args:** convert positionals that look like numbers ([#326](https://www.github.com/yargs/yargs-parser/issues/326)) ([f85ebb4](https://www.github.com/yargs/yargs-parser/commit/f85ebb4face9d4b0f56147659404cbe0002f3dad)) + +## [20.1.0](https://www.github.com/yargs/yargs-parser/compare/v20.0.0...v20.1.0) (2020-09-20) + + +### Features + +* adds parse-positional-numbers configuration ([#321](https://www.github.com/yargs/yargs-parser/issues/321)) ([9cec00a](https://www.github.com/yargs/yargs-parser/commit/9cec00a622251292ffb7dce6f78f5353afaa0d4c)) + + +### Bug Fixes + +* **build:** update release-please; make labels kick off builds ([#323](https://www.github.com/yargs/yargs-parser/issues/323)) ([09f448b](https://www.github.com/yargs/yargs-parser/commit/09f448b4cd66e25d2872544718df46dab8af062a)) + +## [20.0.0](https://www.github.com/yargs/yargs-parser/compare/v19.0.4...v20.0.0) (2020-09-09) + + +### ⚠ BREAKING CHANGES + +* do not ship type definitions (#318) + +### Bug Fixes + +* only strip camel case if hyphenated ([#316](https://www.github.com/yargs/yargs-parser/issues/316)) ([95a9e78](https://www.github.com/yargs/yargs-parser/commit/95a9e785127b9bbf2d1db1f1f808ca1fb100e82a)), closes [#315](https://www.github.com/yargs/yargs-parser/issues/315) + + +### Code Refactoring + +* do not ship type definitions ([#318](https://www.github.com/yargs/yargs-parser/issues/318)) ([8fbd56f](https://www.github.com/yargs/yargs-parser/commit/8fbd56f1d0b6c44c30fca62708812151ca0ce330)) + +### [19.0.4](https://www.github.com/yargs/yargs-parser/compare/v19.0.3...v19.0.4) (2020-08-27) + + +### Bug Fixes + +* **build:** fixing publication ([#310](https://www.github.com/yargs/yargs-parser/issues/310)) ([5d3c6c2](https://www.github.com/yargs/yargs-parser/commit/5d3c6c29a9126248ba601920d9cf87c78e161ff5)) + +### [19.0.3](https://www.github.com/yargs/yargs-parser/compare/v19.0.2...v19.0.3) (2020-08-27) + + +### Bug Fixes + +* **build:** switch to action for publish ([#308](https://www.github.com/yargs/yargs-parser/issues/308)) ([5c2f305](https://www.github.com/yargs/yargs-parser/commit/5c2f30585342bcd8aaf926407c863099d256d174)) + +### [19.0.2](https://www.github.com/yargs/yargs-parser/compare/v19.0.1...v19.0.2) (2020-08-27) + + +### Bug Fixes + +* **types:** envPrefix should be optional ([#305](https://www.github.com/yargs/yargs-parser/issues/305)) ([ae3f180](https://www.github.com/yargs/yargs-parser/commit/ae3f180e14df2de2fd962145f4518f9aa0e76523)) + +### [19.0.1](https://www.github.com/yargs/yargs-parser/compare/v19.0.0...v19.0.1) (2020-08-09) + + +### Bug Fixes + +* **build:** push tag created for deno ([2186a14](https://www.github.com/yargs/yargs-parser/commit/2186a14989749887d56189867602e39e6679f8b0)) + +## [19.0.0](https://www.github.com/yargs/yargs-parser/compare/v18.1.3...v19.0.0) (2020-08-09) + + +### ⚠ BREAKING CHANGES + +* adds support for ESM and Deno (#295) +* **ts:** projects using `@types/yargs-parser` may see variations in type definitions. +* drops Node 6. begin following Node.js LTS schedule (#278) + +### Features + +* adds support for ESM and Deno ([#295](https://www.github.com/yargs/yargs-parser/issues/295)) ([195bc4a](https://www.github.com/yargs/yargs-parser/commit/195bc4a7f20c2a8f8e33fbb6ba96ef6e9a0120a1)) +* expose camelCase and decamelize helpers ([#296](https://www.github.com/yargs/yargs-parser/issues/296)) ([39154ce](https://www.github.com/yargs/yargs-parser/commit/39154ceb5bdcf76b5f59a9219b34cedb79b67f26)) +* **deps:** update to latest camelcase/decamelize ([#281](https://www.github.com/yargs/yargs-parser/issues/281)) ([8931ab0](https://www.github.com/yargs/yargs-parser/commit/8931ab08f686cc55286f33a95a83537da2be5516)) + + +### Bug Fixes + +* boolean numeric short option ([#294](https://www.github.com/yargs/yargs-parser/issues/294)) ([f600082](https://www.github.com/yargs/yargs-parser/commit/f600082c959e092076caf420bbbc9d7a231e2418)) +* raise permission error for Deno if config load fails ([#298](https://www.github.com/yargs/yargs-parser/issues/298)) ([1174e2b](https://www.github.com/yargs/yargs-parser/commit/1174e2b3f0c845a1cd64e14ffc3703e730567a84)) +* **deps:** update dependency decamelize to v3 ([#274](https://www.github.com/yargs/yargs-parser/issues/274)) ([4d98698](https://www.github.com/yargs/yargs-parser/commit/4d98698bc6767e84ec54a0842908191739be73b7)) +* **types:** switch back to using Partial types ([#293](https://www.github.com/yargs/yargs-parser/issues/293)) ([bdc80ba](https://www.github.com/yargs/yargs-parser/commit/bdc80ba59fa13bc3025ce0a85e8bad9f9da24ea7)) + + +### Build System + +* drops Node 6. begin following Node.js LTS schedule ([#278](https://www.github.com/yargs/yargs-parser/issues/278)) ([9014ed7](https://www.github.com/yargs/yargs-parser/commit/9014ed722a32768b96b829e65a31705db5c1458a)) + + +### Code Refactoring + +* **ts:** move index.js to TypeScript ([#292](https://www.github.com/yargs/yargs-parser/issues/292)) ([f78d2b9](https://www.github.com/yargs/yargs-parser/commit/f78d2b97567ac4828624406e420b4047c710b789)) + +### [18.1.3](https://www.github.com/yargs/yargs-parser/compare/v18.1.2...v18.1.3) (2020-04-16) + + +### Bug Fixes + +* **setArg:** options using camel-case and dot-notation populated twice ([#268](https://www.github.com/yargs/yargs-parser/issues/268)) ([f7e15b9](https://www.github.com/yargs/yargs-parser/commit/f7e15b9800900b9856acac1a830a5f35847be73e)) + +### [18.1.2](https://www.github.com/yargs/yargs-parser/compare/v18.1.1...v18.1.2) (2020-03-26) + + +### Bug Fixes + +* **array, nargs:** support -o=--value and --option=--value format ([#262](https://www.github.com/yargs/yargs-parser/issues/262)) ([41d3f81](https://www.github.com/yargs/yargs-parser/commit/41d3f8139e116706b28de9b0de3433feb08d2f13)) + +### [18.1.1](https://www.github.com/yargs/yargs-parser/compare/v18.1.0...v18.1.1) (2020-03-16) + + +### Bug Fixes + +* \_\_proto\_\_ will now be replaced with \_\_\_proto\_\_\_ in parse ([#258](https://www.github.com/yargs/yargs-parser/issues/258)), patching a potential +prototype pollution vulnerability. This was reported by the Snyk Security Research Team.([63810ca](https://www.github.com/yargs/yargs-parser/commit/63810ca1ae1a24b08293a4d971e70e058c7a41e2)) + +## [18.1.0](https://www.github.com/yargs/yargs-parser/compare/v18.0.0...v18.1.0) (2020-03-07) + + +### Features + +* introduce single-digit boolean aliases ([#255](https://www.github.com/yargs/yargs-parser/issues/255)) ([9c60265](https://www.github.com/yargs/yargs-parser/commit/9c60265fd7a03cb98e6df3e32c8c5e7508d9f56f)) + +## [18.0.0](https://www.github.com/yargs/yargs-parser/compare/v17.1.0...v18.0.0) (2020-03-02) + + +### ⚠ BREAKING CHANGES + +* the narg count is now enforced when parsing arrays. + +### Features + +* NaN can now be provided as a value for nargs, indicating "at least" one value is expected for array ([#251](https://www.github.com/yargs/yargs-parser/issues/251)) ([9db4be8](https://www.github.com/yargs/yargs-parser/commit/9db4be81417a2c7097128db34d86fe70ef4af70c)) + +## [17.1.0](https://www.github.com/yargs/yargs-parser/compare/v17.0.1...v17.1.0) (2020-03-01) + + +### Features + +* introduce greedy-arrays config, for specifying whether arrays consume multiple positionals ([#249](https://www.github.com/yargs/yargs-parser/issues/249)) ([60e880a](https://www.github.com/yargs/yargs-parser/commit/60e880a837046314d89fa4725f923837fd33a9eb)) + +### [17.0.1](https://www.github.com/yargs/yargs-parser/compare/v17.0.0...v17.0.1) (2020-02-29) + + +### Bug Fixes + +* normalized keys were not enumerable ([#247](https://www.github.com/yargs/yargs-parser/issues/247)) ([57119f9](https://www.github.com/yargs/yargs-parser/commit/57119f9f17cf27499bd95e61c2f72d18314f11ba)) + +## [17.0.0](https://www.github.com/yargs/yargs-parser/compare/v16.1.0...v17.0.0) (2020-02-10) + + +### ⚠ BREAKING CHANGES + +* this reverts parsing behavior of booleans to that of yargs@14 +* objects used during parsing are now created with a null +prototype. There may be some scenarios where this change in behavior +leaks externally. + +### Features + +* boolean arguments will not be collected into an implicit array ([#236](https://www.github.com/yargs/yargs-parser/issues/236)) ([34c4e19](https://www.github.com/yargs/yargs-parser/commit/34c4e19bae4e7af63e3cb6fa654a97ed476e5eb5)) +* introduce nargs-eats-options config option ([#246](https://www.github.com/yargs/yargs-parser/issues/246)) ([d50822a](https://www.github.com/yargs/yargs-parser/commit/d50822ac10e1b05f2e9643671ca131ac251b6732)) + + +### Bug Fixes + +* address bugs with "uknown-options-as-args" ([bc023e3](https://www.github.com/yargs/yargs-parser/commit/bc023e3b13e20a118353f9507d1c999bf388a346)) +* array should take precedence over nargs, but enforce nargs ([#243](https://www.github.com/yargs/yargs-parser/issues/243)) ([4cbc188](https://www.github.com/yargs/yargs-parser/commit/4cbc188b7abb2249529a19c090338debdad2fe6c)) +* support keys that collide with object prototypes ([#234](https://www.github.com/yargs/yargs-parser/issues/234)) ([1587b6d](https://www.github.com/yargs/yargs-parser/commit/1587b6d91db853a9109f1be6b209077993fee4de)) +* unknown options terminated with digits now handled by unknown-options-as-args ([#238](https://www.github.com/yargs/yargs-parser/issues/238)) ([d36cdfa](https://www.github.com/yargs/yargs-parser/commit/d36cdfa854254d7c7e0fe1d583818332ac46c2a5)) + +## [16.1.0](https://www.github.com/yargs/yargs-parser/compare/v16.0.0...v16.1.0) (2019-11-01) + + +### ⚠ BREAKING CHANGES + +* populate error if incompatible narg/count or array/count options are used (#191) + +### Features + +* options that have had their default value used are now tracked ([#211](https://www.github.com/yargs/yargs-parser/issues/211)) ([a525234](https://www.github.com/yargs/yargs-parser/commit/a525234558c847deedd73f8792e0a3b77b26e2c0)) +* populate error if incompatible narg/count or array/count options are used ([#191](https://www.github.com/yargs/yargs-parser/issues/191)) ([84a401f](https://www.github.com/yargs/yargs-parser/commit/84a401f0fa3095e0a19661670d1570d0c3b9d3c9)) + + +### Reverts + +* revert 16.0.0 CHANGELOG entry ([920320a](https://www.github.com/yargs/yargs-parser/commit/920320ad9861bbfd58eda39221ae211540fc1daf)) diff --git a/node_modules/yargs-parser/LICENSE.txt b/node_modules/yargs-parser/LICENSE.txt new file mode 100644 index 0000000..836440b --- /dev/null +++ b/node_modules/yargs-parser/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/yargs-parser/README.md b/node_modules/yargs-parser/README.md new file mode 100644 index 0000000..2614840 --- /dev/null +++ b/node_modules/yargs-parser/README.md @@ -0,0 +1,518 @@ +# yargs-parser + +![ci](https://github.com/yargs/yargs-parser/workflows/ci/badge.svg) +[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser) +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) +![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/yargs-parser) + +The mighty option parser used by [yargs](https://github.com/yargs/yargs). + +visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions. + + + +## Example + +```sh +npm i yargs-parser --save +``` + +```js +const argv = require('yargs-parser')(process.argv.slice(2)) +console.log(argv) +``` + +```console +$ node example.js --foo=33 --bar hello +{ _: [], foo: 33, bar: 'hello' } +``` + +_or parse a string!_ + +```js +const argv = require('yargs-parser')('--foo=99 --bar=33') +console.log(argv) +``` + +```console +{ _: [], foo: 99, bar: 33 } +``` + +Convert an array of mixed types before passing to `yargs-parser`: + +```js +const parse = require('yargs-parser') +parse(['-f', 11, '--zoom', 55].join(' ')) // <-- array to string +parse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings +``` + +## Deno Example + +As of `v19` `yargs-parser` supports [Deno](https://github.com/denoland/deno): + +```typescript +import parser from "https://deno.land/x/yargs_parser/deno.ts"; + +const argv = parser('--foo=99 --bar=9987930', { + string: ['bar'] +}) +console.log(argv) +``` + +## ESM Example + +As of `v19` `yargs-parser` supports ESM (_both in Node.js and in the browser_): + +**Node.js:** + +```js +import parser from 'yargs-parser' + +const argv = parser('--foo=99 --bar=9987930', { + string: ['bar'] +}) +console.log(argv) +``` + +**Browsers:** + +```html + + + + +``` + +## API + +### parser(args, opts={}) + +Parses command line arguments returning a simple mapping of keys and values. + +**expects:** + +* `args`: a string or array of strings representing the options to parse. +* `opts`: provide a set of hints indicating how `args` should be parsed: + * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`. + * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.
+ Indicate that keys should be parsed as an array and coerced to booleans / numbers:
+ `{array: [{ key: 'foo', boolean: true }, {key: 'bar', number: true}]}`. + * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`. + * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided + (or throws an error). For arrays the function is called only once for the entire array:
+ `{coerce: {foo: function (arg) {return modifiedArg}}}`. + * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed). + * `opts.configObjects`: configuration objects to parse, their properties will be set as arguments:
+ `{configObjects: [{'x': 5, 'y': 33}, {'z': 44}]}`. + * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)). + * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`. + * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`. + * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed. + * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`. + * `opts.normalize`: `path.normalize()` will be applied to values set to this key. + * `opts.number`: keys should be treated as numbers. + * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`). + +**returns:** + +* `obj`: an object representing the parsed value of `args` + * `key/value`: key value pairs for each argument and their aliases. + * `_`: an array representing the positional arguments. + * [optional] `--`: an array with arguments after the end-of-options flag `--`. + +### require('yargs-parser').detailed(args, opts={}) + +Parses a command line string, returning detailed information required by the +yargs engine. + +**expects:** + +* `args`: a string or array of strings representing options to parse. +* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`. + +**returns:** + +* `argv`: an object representing the parsed value of `args` + * `key/value`: key value pairs for each argument and their aliases. + * `_`: an array representing the positional arguments. + * [optional] `--`: an array with arguments after the end-of-options flag `--`. +* `error`: populated with an error object if an exception occurred during parsing. +* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`. +* `newAliases`: any new aliases added via camel-case expansion: + * `boolean`: `{ fooBar: true }` +* `defaulted`: any new argument created by `opts.default`, no aliases included. + * `boolean`: `{ foo: true }` +* `configuration`: given by default settings and `opts.configuration`. + + + +### Configuration + +The yargs-parser applies several automated transformations on the keys provided +in `args`. These features can be turned on and off using the `configuration` field +of `opts`. + +```js +var parsed = parser(['--no-dice'], { + configuration: { + 'boolean-negation': false + } +}) +``` + +### short option groups + +* default: `true`. +* key: `short-option-groups`. + +Should a group of short-options be treated as boolean flags? + +```console +$ node example.js -abc +{ _: [], a: true, b: true, c: true } +``` + +_if disabled:_ + +```console +$ node example.js -abc +{ _: [], abc: true } +``` + +### camel-case expansion + +* default: `true`. +* key: `camel-case-expansion`. + +Should hyphenated arguments be expanded into camel-case aliases? + +```console +$ node example.js --foo-bar +{ _: [], 'foo-bar': true, fooBar: true } +``` + +_if disabled:_ + +```console +$ node example.js --foo-bar +{ _: [], 'foo-bar': true } +``` + +### dot-notation + +* default: `true` +* key: `dot-notation` + +Should keys that contain `.` be treated as objects? + +```console +$ node example.js --foo.bar +{ _: [], foo: { bar: true } } +``` + +_if disabled:_ + +```console +$ node example.js --foo.bar +{ _: [], "foo.bar": true } +``` + +### parse numbers + +* default: `true` +* key: `parse-numbers` + +Should keys that look like numbers be treated as such? + +```console +$ node example.js --foo=99.3 +{ _: [], foo: 99.3 } +``` + +_if disabled:_ + +```console +$ node example.js --foo=99.3 +{ _: [], foo: "99.3" } +``` + +### parse positional numbers + +* default: `true` +* key: `parse-positional-numbers` + +Should positional keys that look like numbers be treated as such. + +```console +$ node example.js 99.3 +{ _: [99.3] } +``` + +_if disabled:_ + +```console +$ node example.js 99.3 +{ _: ['99.3'] } +``` + +### boolean negation + +* default: `true` +* key: `boolean-negation` + +Should variables prefixed with `--no` be treated as negations? + +```console +$ node example.js --no-foo +{ _: [], foo: false } +``` + +_if disabled:_ + +```console +$ node example.js --no-foo +{ _: [], "no-foo": true } +``` + +### combine arrays + +* default: `false` +* key: `combine-arrays` + +Should arrays be combined when provided by both command line arguments and +a configuration file. + +### duplicate arguments array + +* default: `true` +* key: `duplicate-arguments-array` + +Should arguments be coerced into an array when duplicated: + +```console +$ node example.js -x 1 -x 2 +{ _: [], x: [1, 2] } +``` + +_if disabled:_ + +```console +$ node example.js -x 1 -x 2 +{ _: [], x: 2 } +``` + +### flatten duplicate arrays + +* default: `true` +* key: `flatten-duplicate-arrays` + +Should array arguments be coerced into a single array when duplicated: + +```console +$ node example.js -x 1 2 -x 3 4 +{ _: [], x: [1, 2, 3, 4] } +``` + +_if disabled:_ + +```console +$ node example.js -x 1 2 -x 3 4 +{ _: [], x: [[1, 2], [3, 4]] } +``` + +### greedy arrays + +* default: `true` +* key: `greedy-arrays` + +Should arrays consume more than one positional argument following their flag. + +```console +$ node example --arr 1 2 +{ _: [], arr: [1, 2] } +``` + +_if disabled:_ + +```console +$ node example --arr 1 2 +{ _: [2], arr: [1] } +``` + +**Note: in `v18.0.0` we are considering defaulting greedy arrays to `false`.** + +### nargs eats options + +* default: `false` +* key: `nargs-eats-options` + +Should nargs consume dash options as well as positional arguments. + +### negation prefix + +* default: `no-` +* key: `negation-prefix` + +The prefix to use for negated boolean variables. + +```console +$ node example.js --no-foo +{ _: [], foo: false } +``` + +_if set to `quux`:_ + +```console +$ node example.js --quuxfoo +{ _: [], foo: false } +``` + +### populate -- + +* default: `false`. +* key: `populate--` + +Should unparsed flags be stored in `--` or `_`. + +_If disabled:_ + +```console +$ node example.js a -b -- x y +{ _: [ 'a', 'x', 'y' ], b: true } +``` + +_If enabled:_ + +```console +$ node example.js a -b -- x y +{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true } +``` + +### set placeholder key + +* default: `false`. +* key: `set-placeholder-key`. + +Should a placeholder be added for keys not set via the corresponding CLI argument? + +_If disabled:_ + +```console +$ node example.js -a 1 -c 2 +{ _: [], a: 1, c: 2 } +``` + +_If enabled:_ + +```console +$ node example.js -a 1 -c 2 +{ _: [], a: 1, b: undefined, c: 2 } +``` + +### halt at non-option + +* default: `false`. +* key: `halt-at-non-option`. + +Should parsing stop at the first positional argument? This is similar to how e.g. `ssh` parses its command line. + +_If disabled:_ + +```console +$ node example.js -a run b -x y +{ _: [ 'b' ], a: 'run', x: 'y' } +``` + +_If enabled:_ + +```console +$ node example.js -a run b -x y +{ _: [ 'b', '-x', 'y' ], a: 'run' } +``` + +### strip aliased + +* default: `false` +* key: `strip-aliased` + +Should aliases be removed before returning results? + +_If disabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], 'test-field': 1, testField: 1, 'test-alias': 1, testAlias: 1 } +``` + +_If enabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], 'test-field': 1, testField: 1 } +``` + +### strip dashed + +* default: `false` +* key: `strip-dashed` + +Should dashed keys be removed before returning results? This option has no effect if +`camel-case-expansion` is disabled. + +_If disabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], 'test-field': 1, testField: 1 } +``` + +_If enabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], testField: 1 } +``` + +### unknown options as args + +* default: `false` +* key: `unknown-options-as-args` + +Should unknown options be treated like regular arguments? An unknown option is one that is not +configured in `opts`. + +_If disabled_ + +```console +$ node example.js --unknown-option --known-option 2 --string-option --unknown-option2 +{ _: [], unknownOption: true, knownOption: 2, stringOption: '', unknownOption2: true } +``` + +_If enabled_ + +```console +$ node example.js --unknown-option --known-option 2 --string-option --unknown-option2 +{ _: ['--unknown-option'], knownOption: 2, stringOption: '--unknown-option2' } +``` + +## Supported Node.js Versions + +Libraries in this ecosystem make a best effort to track +[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +## Special Thanks + +The yargs project evolves from optimist and minimist. It owes its +existence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \o/ + +## License + +ISC diff --git a/node_modules/yargs-parser/browser.js b/node_modules/yargs-parser/browser.js new file mode 100644 index 0000000..241202c --- /dev/null +++ b/node_modules/yargs-parser/browser.js @@ -0,0 +1,29 @@ +// Main entrypoint for ESM web browser environments. Avoids using Node.js +// specific libraries, such as "path". +// +// TODO: figure out reasonable web equivalents for "resolve", "normalize", etc. +import { camelCase, decamelize, looksLikeNumber } from './build/lib/string-utils.js' +import { YargsParser } from './build/lib/yargs-parser.js' +const parser = new YargsParser({ + cwd: () => { return '' }, + format: (str, arg) => { return str.replace('%s', arg) }, + normalize: (str) => { return str }, + resolve: (str) => { return str }, + require: () => { + throw Error('loading config from files not currently supported in browser') + }, + env: () => {} +}) + +const yargsParser = function Parser (args, opts) { + const result = parser.parse(args.slice(), opts) + return result.argv +} +yargsParser.detailed = function (args, opts) { + return parser.parse(args.slice(), opts) +} +yargsParser.camelCase = camelCase +yargsParser.decamelize = decamelize +yargsParser.looksLikeNumber = looksLikeNumber + +export default yargsParser diff --git a/node_modules/yargs-parser/build/index.cjs b/node_modules/yargs-parser/build/index.cjs new file mode 100644 index 0000000..cf6f50f --- /dev/null +++ b/node_modules/yargs-parser/build/index.cjs @@ -0,0 +1,1050 @@ +'use strict'; + +var util = require('util'); +var path = require('path'); +var fs = require('fs'); + +function camelCase(str) { + const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase(); + if (!isCamelCase) { + str = str.toLowerCase(); + } + if (str.indexOf('-') === -1 && str.indexOf('_') === -1) { + return str; + } + else { + let camelcase = ''; + let nextChrUpper = false; + const leadingHyphens = str.match(/^-+/); + for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) { + let chr = str.charAt(i); + if (nextChrUpper) { + nextChrUpper = false; + chr = chr.toUpperCase(); + } + if (i !== 0 && (chr === '-' || chr === '_')) { + nextChrUpper = true; + } + else if (chr !== '-' && chr !== '_') { + camelcase += chr; + } + } + return camelcase; + } +} +function decamelize(str, joinString) { + const lowercase = str.toLowerCase(); + joinString = joinString || '-'; + let notCamelcase = ''; + for (let i = 0; i < str.length; i++) { + const chrLower = lowercase.charAt(i); + const chrString = str.charAt(i); + if (chrLower !== chrString && i > 0) { + notCamelcase += `${joinString}${lowercase.charAt(i)}`; + } + else { + notCamelcase += chrString; + } + } + return notCamelcase; +} +function looksLikeNumber(x) { + if (x === null || x === undefined) + return false; + if (typeof x === 'number') + return true; + if (/^0x[0-9a-f]+$/i.test(x)) + return true; + if (/^0[^.]/.test(x)) + return false; + return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} + +function tokenizeArgString(argString) { + if (Array.isArray(argString)) { + return argString.map(e => typeof e !== 'string' ? e + '' : e); + } + argString = argString.trim(); + let i = 0; + let prevC = null; + let c = null; + let opening = null; + const args = []; + for (let ii = 0; ii < argString.length; ii++) { + prevC = c; + c = argString.charAt(ii); + if (c === ' ' && !opening) { + if (!(prevC === ' ')) { + i++; + } + continue; + } + if (c === opening) { + opening = null; + } + else if ((c === "'" || c === '"') && !opening) { + opening = c; + } + if (!args[i]) + args[i] = ''; + args[i] += c; + } + return args; +} + +var DefaultValuesForTypeKey; +(function (DefaultValuesForTypeKey) { + DefaultValuesForTypeKey["BOOLEAN"] = "boolean"; + DefaultValuesForTypeKey["STRING"] = "string"; + DefaultValuesForTypeKey["NUMBER"] = "number"; + DefaultValuesForTypeKey["ARRAY"] = "array"; +})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {})); + +let mixin; +class YargsParser { + constructor(_mixin) { + mixin = _mixin; + } + parse(argsInput, options) { + const opts = Object.assign({ + alias: undefined, + array: undefined, + boolean: undefined, + config: undefined, + configObjects: undefined, + configuration: undefined, + coerce: undefined, + count: undefined, + default: undefined, + envPrefix: undefined, + narg: undefined, + normalize: undefined, + string: undefined, + number: undefined, + __: undefined, + key: undefined + }, options); + const args = tokenizeArgString(argsInput); + const inputIsString = typeof argsInput === 'string'; + const aliases = combineAliases(Object.assign(Object.create(null), opts.alias)); + const configuration = Object.assign({ + 'boolean-negation': true, + 'camel-case-expansion': true, + 'combine-arrays': false, + 'dot-notation': true, + 'duplicate-arguments-array': true, + 'flatten-duplicate-arrays': true, + 'greedy-arrays': true, + 'halt-at-non-option': false, + 'nargs-eats-options': false, + 'negation-prefix': 'no-', + 'parse-numbers': true, + 'parse-positional-numbers': true, + 'populate--': false, + 'set-placeholder-key': false, + 'short-option-groups': true, + 'strip-aliased': false, + 'strip-dashed': false, + 'unknown-options-as-args': false + }, opts.configuration); + const defaults = Object.assign(Object.create(null), opts.default); + const configObjects = opts.configObjects || []; + const envPrefix = opts.envPrefix; + const notFlagsOption = configuration['populate--']; + const notFlagsArgv = notFlagsOption ? '--' : '_'; + const newAliases = Object.create(null); + const defaulted = Object.create(null); + const __ = opts.__ || mixin.format; + const flags = { + aliases: Object.create(null), + arrays: Object.create(null), + bools: Object.create(null), + strings: Object.create(null), + numbers: Object.create(null), + counts: Object.create(null), + normalize: Object.create(null), + configs: Object.create(null), + nargs: Object.create(null), + coercions: Object.create(null), + keys: [] + }; + const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/; + const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)'); + [].concat(opts.array || []).filter(Boolean).forEach(function (opt) { + const key = typeof opt === 'object' ? opt.key : opt; + const assignment = Object.keys(opt).map(function (key) { + const arrayFlagKeys = { + boolean: 'bools', + string: 'strings', + number: 'numbers' + }; + return arrayFlagKeys[key]; + }).filter(Boolean).pop(); + if (assignment) { + flags[assignment][key] = true; + } + flags.arrays[key] = true; + flags.keys.push(key); + }); + [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + flags.keys.push(key); + }); + [].concat(opts.string || []).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + flags.keys.push(key); + }); + [].concat(opts.number || []).filter(Boolean).forEach(function (key) { + flags.numbers[key] = true; + flags.keys.push(key); + }); + [].concat(opts.count || []).filter(Boolean).forEach(function (key) { + flags.counts[key] = true; + flags.keys.push(key); + }); + [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) { + flags.normalize[key] = true; + flags.keys.push(key); + }); + if (typeof opts.narg === 'object') { + Object.entries(opts.narg).forEach(([key, value]) => { + if (typeof value === 'number') { + flags.nargs[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.coerce === 'object') { + Object.entries(opts.coerce).forEach(([key, value]) => { + if (typeof value === 'function') { + flags.coercions[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.config !== 'undefined') { + if (Array.isArray(opts.config) || typeof opts.config === 'string') { + [].concat(opts.config).filter(Boolean).forEach(function (key) { + flags.configs[key] = true; + }); + } + else if (typeof opts.config === 'object') { + Object.entries(opts.config).forEach(([key, value]) => { + if (typeof value === 'boolean' || typeof value === 'function') { + flags.configs[key] = value; + } + }); + } + } + extendAliases(opts.key, aliases, opts.default, flags.arrays); + Object.keys(defaults).forEach(function (key) { + (flags.aliases[key] || []).forEach(function (alias) { + defaults[alias] = defaults[key]; + }); + }); + let error = null; + checkConfiguration(); + let notFlags = []; + const argv = Object.assign(Object.create(null), { _: [] }); + const argvReturn = {}; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + const truncatedArg = arg.replace(/^-{3,}/, '---'); + let broken; + let key; + let letters; + let m; + let next; + let value; + if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) { + pushPositional(arg); + } + else if (truncatedArg.match(/^---+(=|$)/)) { + pushPositional(arg); + continue; + } + else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) { + m = arg.match(/^--?([^=]+)=([\s\S]*)$/); + if (m !== null && Array.isArray(m) && m.length >= 3) { + if (checkAllAliases(m[1], flags.arrays)) { + i = eatArray(i, m[1], args, m[2]); + } + else if (checkAllAliases(m[1], flags.nargs) !== false) { + i = eatNargs(i, m[1], args, m[2]); + } + else { + setArg(m[1], m[2], true); + } + } + } + else if (arg.match(negatedBoolean) && configuration['boolean-negation']) { + m = arg.match(negatedBoolean); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false); + } + } + else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) { + m = arg.match(/^--?(.+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (checkAllAliases(key, flags.arrays)) { + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!next.match(/^-/) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + } + else if (arg.match(/^-.\..+=/)) { + m = arg.match(/^-([^=]+)=([\s\S]*)$/); + if (m !== null && Array.isArray(m) && m.length >= 3) { + setArg(m[1], m[2]); + } + } + else if (arg.match(/^-.\..+/) && !arg.match(negative)) { + next = args[i + 1]; + m = arg.match(/^-(.\..+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (next !== undefined && !next.match(/^-/) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { + letters = arg.slice(1, -1).split(''); + broken = false; + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (letters[j + 1] && letters[j + 1] === '=') { + value = arg.slice(j + 3); + key = letters[j]; + if (checkAllAliases(key, flags.arrays)) { + i = eatArray(i, key, args, value); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + i = eatNargs(i, key, args, value); + } + else { + setArg(key, value); + } + broken = true; + break; + } + if (next === '-') { + setArg(letters[j], next); + continue; + } + if (/[A-Za-z]/.test(letters[j]) && + /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) && + checkAllAliases(next, flags.bools) === false) { + setArg(letters[j], next); + broken = true; + break; + } + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], next); + broken = true; + break; + } + else { + setArg(letters[j], defaultValue(letters[j])); + } + } + key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (checkAllAliases(key, flags.arrays)) { + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!/^(-|--)[^-]/.test(next) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + } + else if (arg.match(/^-[0-9]$/) && + arg.match(negative) && + checkAllAliases(arg.slice(1), flags.bools)) { + key = arg.slice(1); + setArg(key, defaultValue(key)); + } + else if (arg === '--') { + notFlags = args.slice(i + 1); + break; + } + else if (configuration['halt-at-non-option']) { + notFlags = args.slice(i); + break; + } + else { + pushPositional(arg); + } + } + applyEnvVars(argv, true); + applyEnvVars(argv, false); + setConfig(argv); + setConfigObjects(); + applyDefaultsAndAliases(argv, flags.aliases, defaults, true); + applyCoercions(argv); + if (configuration['set-placeholder-key']) + setPlaceholderKeys(argv); + Object.keys(flags.counts).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) + setArg(key, 0); + }); + if (notFlagsOption && notFlags.length) + argv[notFlagsArgv] = []; + notFlags.forEach(function (key) { + argv[notFlagsArgv].push(key); + }); + if (configuration['camel-case-expansion'] && configuration['strip-dashed']) { + Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => { + delete argv[key]; + }); + } + if (configuration['strip-aliased']) { + [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => { + if (configuration['camel-case-expansion'] && alias.includes('-')) { + delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')]; + } + delete argv[alias]; + }); + } + function pushPositional(arg) { + const maybeCoercedNumber = maybeCoerceNumber('_', arg); + if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') { + argv._.push(maybeCoercedNumber); + } + } + function eatNargs(i, key, args, argAfterEqualSign) { + let ii; + let toEat = checkAllAliases(key, flags.nargs); + toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat; + if (toEat === 0) { + if (!isUndefined(argAfterEqualSign)) { + error = Error(__('Argument unexpected for: %s', key)); + } + setArg(key, defaultValue(key)); + return i; + } + let available = isUndefined(argAfterEqualSign) ? 0 : 1; + if (configuration['nargs-eats-options']) { + if (args.length - (i + 1) + available < toEat) { + error = Error(__('Not enough arguments following: %s', key)); + } + available = toEat; + } + else { + for (ii = i + 1; ii < args.length; ii++) { + if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) + available++; + else + break; + } + if (available < toEat) + error = Error(__('Not enough arguments following: %s', key)); + } + let consumed = Math.min(available, toEat); + if (!isUndefined(argAfterEqualSign) && consumed > 0) { + setArg(key, argAfterEqualSign); + consumed--; + } + for (ii = i + 1; ii < (consumed + i + 1); ii++) { + setArg(key, args[ii]); + } + return (i + consumed); + } + function eatArray(i, key, args, argAfterEqualSign) { + let argsToSet = []; + let next = argAfterEqualSign || args[i + 1]; + const nargsCount = checkAllAliases(key, flags.nargs); + if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) { + argsToSet.push(true); + } + else if (isUndefined(next) || + (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) { + if (defaults[key] !== undefined) { + const defVal = defaults[key]; + argsToSet = Array.isArray(defVal) ? defVal : [defVal]; + } + } + else { + if (!isUndefined(argAfterEqualSign)) { + argsToSet.push(processValue(key, argAfterEqualSign, true)); + } + for (let ii = i + 1; ii < args.length; ii++) { + if ((!configuration['greedy-arrays'] && argsToSet.length > 0) || + (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount)) + break; + next = args[ii]; + if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) + break; + i = ii; + argsToSet.push(processValue(key, next, inputIsString)); + } + } + if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) || + (isNaN(nargsCount) && argsToSet.length === 0))) { + error = Error(__('Not enough arguments following: %s', key)); + } + setArg(key, argsToSet); + return i; + } + function setArg(key, val, shouldStripQuotes = inputIsString) { + if (/-/.test(key) && configuration['camel-case-expansion']) { + const alias = key.split('.').map(function (prop) { + return camelCase(prop); + }).join('.'); + addNewAlias(key, alias); + } + const value = processValue(key, val, shouldStripQuotes); + const splitKey = key.split('.'); + setKey(argv, splitKey, value); + if (flags.aliases[key]) { + flags.aliases[key].forEach(function (x) { + const keyProperties = x.split('.'); + setKey(argv, keyProperties, value); + }); + } + if (splitKey.length > 1 && configuration['dot-notation']) { + (flags.aliases[splitKey[0]] || []).forEach(function (x) { + let keyProperties = x.split('.'); + const a = [].concat(splitKey); + a.shift(); + keyProperties = keyProperties.concat(a); + if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) { + setKey(argv, keyProperties, value); + } + }); + } + if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) { + const keys = [key].concat(flags.aliases[key] || []); + keys.forEach(function (key) { + Object.defineProperty(argvReturn, key, { + enumerable: true, + get() { + return val; + }, + set(value) { + val = typeof value === 'string' ? mixin.normalize(value) : value; + } + }); + }); + } + } + function addNewAlias(key, alias) { + if (!(flags.aliases[key] && flags.aliases[key].length)) { + flags.aliases[key] = [alias]; + newAliases[alias] = true; + } + if (!(flags.aliases[alias] && flags.aliases[alias].length)) { + addNewAlias(alias, key); + } + } + function processValue(key, val, shouldStripQuotes) { + if (shouldStripQuotes) { + val = stripQuotes(val); + } + if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { + if (typeof val === 'string') + val = val === 'true'; + } + let value = Array.isArray(val) + ? val.map(function (v) { return maybeCoerceNumber(key, v); }) + : maybeCoerceNumber(key, val); + if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { + value = increment(); + } + if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { + if (Array.isArray(val)) + value = val.map((val) => { return mixin.normalize(val); }); + else + value = mixin.normalize(val); + } + return value; + } + function maybeCoerceNumber(key, value) { + if (!configuration['parse-positional-numbers'] && key === '_') + return value; + if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) { + const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`)))); + if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) { + value = Number(value); + } + } + return value; + } + function setConfig(argv) { + const configLookup = Object.create(null); + applyDefaultsAndAliases(configLookup, flags.aliases, defaults); + Object.keys(flags.configs).forEach(function (configKey) { + const configPath = argv[configKey] || configLookup[configKey]; + if (configPath) { + try { + let config = null; + const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath); + const resolveConfig = flags.configs[configKey]; + if (typeof resolveConfig === 'function') { + try { + config = resolveConfig(resolvedConfigPath); + } + catch (e) { + config = e; + } + if (config instanceof Error) { + error = config; + return; + } + } + else { + config = mixin.require(resolvedConfigPath); + } + setConfigObject(config); + } + catch (ex) { + if (ex.name === 'PermissionDenied') + error = ex; + else if (argv[configKey]) + error = Error(__('Invalid JSON config file: %s', configPath)); + } + } + }); + } + function setConfigObject(config, prev) { + Object.keys(config).forEach(function (key) { + const value = config[key]; + const fullKey = prev ? prev + '.' + key : key; + if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) { + setConfigObject(value, fullKey); + } + else { + if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) { + setArg(fullKey, value); + } + } + }); + } + function setConfigObjects() { + if (typeof configObjects !== 'undefined') { + configObjects.forEach(function (configObject) { + setConfigObject(configObject); + }); + } + } + function applyEnvVars(argv, configOnly) { + if (typeof envPrefix === 'undefined') + return; + const prefix = typeof envPrefix === 'string' ? envPrefix : ''; + const env = mixin.env(); + Object.keys(env).forEach(function (envVar) { + if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) { + const keys = envVar.split('__').map(function (key, i) { + if (i === 0) { + key = key.substring(prefix.length); + } + return camelCase(key); + }); + if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) { + setArg(keys.join('.'), env[envVar]); + } + } + }); + } + function applyCoercions(argv) { + let coerce; + const applied = new Set(); + Object.keys(argv).forEach(function (key) { + if (!applied.has(key)) { + coerce = checkAllAliases(key, flags.coercions); + if (typeof coerce === 'function') { + try { + const value = maybeCoerceNumber(key, coerce(argv[key])); + ([].concat(flags.aliases[key] || [], key)).forEach(ali => { + applied.add(ali); + argv[ali] = value; + }); + } + catch (err) { + error = err; + } + } + } + }); + } + function setPlaceholderKeys(argv) { + flags.keys.forEach((key) => { + if (~key.indexOf('.')) + return; + if (typeof argv[key] === 'undefined') + argv[key] = undefined; + }); + return argv; + } + function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) { + Object.keys(defaults).forEach(function (key) { + if (!hasKey(obj, key.split('.'))) { + setKey(obj, key.split('.'), defaults[key]); + if (canLog) + defaulted[key] = true; + (aliases[key] || []).forEach(function (x) { + if (hasKey(obj, x.split('.'))) + return; + setKey(obj, x.split('.'), defaults[key]); + }); + } + }); + } + function hasKey(obj, keys) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + o = (o[key] || {}); + }); + const key = keys[keys.length - 1]; + if (typeof o !== 'object') + return false; + else + return key in o; + } + function setKey(obj, keys, value) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + key = sanitizeKey(key); + if (typeof o === 'object' && o[key] === undefined) { + o[key] = {}; + } + if (typeof o[key] !== 'object' || Array.isArray(o[key])) { + if (Array.isArray(o[key])) { + o[key].push({}); + } + else { + o[key] = [o[key], {}]; + } + o = o[key][o[key].length - 1]; + } + else { + o = o[key]; + } + }); + const key = sanitizeKey(keys[keys.length - 1]); + const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays); + const isValueArray = Array.isArray(value); + let duplicate = configuration['duplicate-arguments-array']; + if (!duplicate && checkAllAliases(key, flags.nargs)) { + duplicate = true; + if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) { + o[key] = undefined; + } + } + if (value === increment()) { + o[key] = increment(o[key]); + } + else if (Array.isArray(o[key])) { + if (duplicate && isTypeArray && isValueArray) { + o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]); + } + else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { + o[key] = value; + } + else { + o[key] = o[key].concat([value]); + } + } + else if (o[key] === undefined && isTypeArray) { + o[key] = isValueArray ? value : [value]; + } + else if (duplicate && !(o[key] === undefined || + checkAllAliases(key, flags.counts) || + checkAllAliases(key, flags.bools))) { + o[key] = [o[key], value]; + } + else { + o[key] = value; + } + } + function extendAliases(...args) { + args.forEach(function (obj) { + Object.keys(obj || {}).forEach(function (key) { + if (flags.aliases[key]) + return; + flags.aliases[key] = [].concat(aliases[key] || []); + flags.aliases[key].concat(key).forEach(function (x) { + if (/-/.test(x) && configuration['camel-case-expansion']) { + const c = camelCase(x); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + flags.aliases[key].concat(key).forEach(function (x) { + if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) { + const c = decamelize(x, '-'); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + flags.aliases[key].forEach(function (x) { + flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + }); + } + function checkAllAliases(key, flag) { + const toCheck = [].concat(flags.aliases[key] || [], key); + const keys = Object.keys(flag); + const setAlias = toCheck.find(key => keys.includes(key)); + return setAlias ? flag[setAlias] : false; + } + function hasAnyFlag(key) { + const flagsKeys = Object.keys(flags); + const toCheck = [].concat(flagsKeys.map(k => flags[k])); + return toCheck.some(function (flag) { + return Array.isArray(flag) ? flag.includes(key) : flag[key]; + }); + } + function hasFlagsMatching(arg, ...patterns) { + const toCheck = [].concat(...patterns); + return toCheck.some(function (pattern) { + const match = arg.match(pattern); + return match && hasAnyFlag(match[1]); + }); + } + function hasAllShortFlags(arg) { + if (arg.match(negative) || !arg.match(/^-[^-]+/)) { + return false; + } + let hasAllFlags = true; + let next; + const letters = arg.slice(1).split(''); + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (!hasAnyFlag(letters[j])) { + hasAllFlags = false; + break; + } + if ((letters[j + 1] && letters[j + 1] === '=') || + next === '-' || + (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) || + (letters[j + 1] && letters[j + 1].match(/\W/))) { + break; + } + } + return hasAllFlags; + } + function isUnknownOptionAsArg(arg) { + return configuration['unknown-options-as-args'] && isUnknownOption(arg); + } + function isUnknownOption(arg) { + arg = arg.replace(/^-{3,}/, '--'); + if (arg.match(negative)) { + return false; + } + if (hasAllShortFlags(arg)) { + return false; + } + const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/; + const normalFlag = /^-+([^=]+?)$/; + const flagEndingInHyphen = /^-+([^=]+?)-$/; + const flagEndingInDigits = /^-+([^=]+?\d+)$/; + const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/; + return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters); + } + function defaultValue(key) { + if (!checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts) && + `${key}` in defaults) { + return defaults[key]; + } + else { + return defaultForType(guessType(key)); + } + } + function defaultForType(type) { + const def = { + [DefaultValuesForTypeKey.BOOLEAN]: true, + [DefaultValuesForTypeKey.STRING]: '', + [DefaultValuesForTypeKey.NUMBER]: undefined, + [DefaultValuesForTypeKey.ARRAY]: [] + }; + return def[type]; + } + function guessType(key) { + let type = DefaultValuesForTypeKey.BOOLEAN; + if (checkAllAliases(key, flags.strings)) + type = DefaultValuesForTypeKey.STRING; + else if (checkAllAliases(key, flags.numbers)) + type = DefaultValuesForTypeKey.NUMBER; + else if (checkAllAliases(key, flags.bools)) + type = DefaultValuesForTypeKey.BOOLEAN; + else if (checkAllAliases(key, flags.arrays)) + type = DefaultValuesForTypeKey.ARRAY; + return type; + } + function isUndefined(num) { + return num === undefined; + } + function checkConfiguration() { + Object.keys(flags.counts).find(key => { + if (checkAllAliases(key, flags.arrays)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key)); + return true; + } + else if (checkAllAliases(key, flags.nargs)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key)); + return true; + } + return false; + }); + } + return { + aliases: Object.assign({}, flags.aliases), + argv: Object.assign(argvReturn, argv), + configuration: configuration, + defaulted: Object.assign({}, defaulted), + error: error, + newAliases: Object.assign({}, newAliases) + }; + } +} +function combineAliases(aliases) { + const aliasArrays = []; + const combined = Object.create(null); + let change = true; + Object.keys(aliases).forEach(function (key) { + aliasArrays.push([].concat(aliases[key], key)); + }); + while (change) { + change = false; + for (let i = 0; i < aliasArrays.length; i++) { + for (let ii = i + 1; ii < aliasArrays.length; ii++) { + const intersect = aliasArrays[i].filter(function (v) { + return aliasArrays[ii].indexOf(v) !== -1; + }); + if (intersect.length) { + aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]); + aliasArrays.splice(ii, 1); + change = true; + break; + } + } + } + } + aliasArrays.forEach(function (aliasArray) { + aliasArray = aliasArray.filter(function (v, i, self) { + return self.indexOf(v) === i; + }); + const lastAlias = aliasArray.pop(); + if (lastAlias !== undefined && typeof lastAlias === 'string') { + combined[lastAlias] = aliasArray; + } + }); + return combined; +} +function increment(orig) { + return orig !== undefined ? orig + 1 : 1; +} +function sanitizeKey(key) { + if (key === '__proto__') + return '___proto___'; + return key; +} +function stripQuotes(val) { + return (typeof val === 'string' && + (val[0] === "'" || val[0] === '"') && + val[val.length - 1] === val[0]) + ? val.substring(1, val.length - 1) + : val; +} + +var _a, _b, _c; +const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION) + ? Number(process.env.YARGS_MIN_NODE_VERSION) + : 12; +const nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1); +if (nodeVersion) { + const major = Number(nodeVersion.match(/^([^.]+)/)[1]); + if (major < minNodeVersion) { + throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`); + } +} +const env = process ? process.env : {}; +const parser = new YargsParser({ + cwd: process.cwd, + env: () => { + return env; + }, + format: util.format, + normalize: path.normalize, + resolve: path.resolve, + require: (path) => { + if (typeof require !== 'undefined') { + return require(path); + } + else if (path.match(/\.json$/)) { + return JSON.parse(fs.readFileSync(path, 'utf8')); + } + else { + throw Error('only .json config files are supported in ESM'); + } + } +}); +const yargsParser = function Parser(args, opts) { + const result = parser.parse(args.slice(), opts); + return result.argv; +}; +yargsParser.detailed = function (args, opts) { + return parser.parse(args.slice(), opts); +}; +yargsParser.camelCase = camelCase; +yargsParser.decamelize = decamelize; +yargsParser.looksLikeNumber = looksLikeNumber; + +module.exports = yargsParser; diff --git a/node_modules/yargs-parser/build/lib/index.js b/node_modules/yargs-parser/build/lib/index.js new file mode 100644 index 0000000..43ef485 --- /dev/null +++ b/node_modules/yargs-parser/build/lib/index.js @@ -0,0 +1,62 @@ +/** + * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js + * CJS and ESM environments. + * + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +var _a, _b, _c; +import { format } from 'util'; +import { normalize, resolve } from 'path'; +import { camelCase, decamelize, looksLikeNumber } from './string-utils.js'; +import { YargsParser } from './yargs-parser.js'; +import { readFileSync } from 'fs'; +// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our +// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only. +const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION) + ? Number(process.env.YARGS_MIN_NODE_VERSION) + : 12; +const nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1); +if (nodeVersion) { + const major = Number(nodeVersion.match(/^([^.]+)/)[1]); + if (major < minNodeVersion) { + throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`); + } +} +// Creates a yargs-parser instance using Node.js standard libraries: +const env = process ? process.env : {}; +const parser = new YargsParser({ + cwd: process.cwd, + env: () => { + return env; + }, + format, + normalize, + resolve, + // TODO: figure out a way to combine ESM and CJS coverage, such that + // we can exercise all the lines below: + require: (path) => { + if (typeof require !== 'undefined') { + return require(path); + } + else if (path.match(/\.json$/)) { + // Addresses: https://github.com/yargs/yargs/issues/2040 + return JSON.parse(readFileSync(path, 'utf8')); + } + else { + throw Error('only .json config files are supported in ESM'); + } + } +}); +const yargsParser = function Parser(args, opts) { + const result = parser.parse(args.slice(), opts); + return result.argv; +}; +yargsParser.detailed = function (args, opts) { + return parser.parse(args.slice(), opts); +}; +yargsParser.camelCase = camelCase; +yargsParser.decamelize = decamelize; +yargsParser.looksLikeNumber = looksLikeNumber; +export default yargsParser; diff --git a/node_modules/yargs-parser/build/lib/string-utils.js b/node_modules/yargs-parser/build/lib/string-utils.js new file mode 100644 index 0000000..4e8bd99 --- /dev/null +++ b/node_modules/yargs-parser/build/lib/string-utils.js @@ -0,0 +1,65 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +export function camelCase(str) { + // Handle the case where an argument is provided as camel case, e.g., fooBar. + // by ensuring that the string isn't already mixed case: + const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase(); + if (!isCamelCase) { + str = str.toLowerCase(); + } + if (str.indexOf('-') === -1 && str.indexOf('_') === -1) { + return str; + } + else { + let camelcase = ''; + let nextChrUpper = false; + const leadingHyphens = str.match(/^-+/); + for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) { + let chr = str.charAt(i); + if (nextChrUpper) { + nextChrUpper = false; + chr = chr.toUpperCase(); + } + if (i !== 0 && (chr === '-' || chr === '_')) { + nextChrUpper = true; + } + else if (chr !== '-' && chr !== '_') { + camelcase += chr; + } + } + return camelcase; + } +} +export function decamelize(str, joinString) { + const lowercase = str.toLowerCase(); + joinString = joinString || '-'; + let notCamelcase = ''; + for (let i = 0; i < str.length; i++) { + const chrLower = lowercase.charAt(i); + const chrString = str.charAt(i); + if (chrLower !== chrString && i > 0) { + notCamelcase += `${joinString}${lowercase.charAt(i)}`; + } + else { + notCamelcase += chrString; + } + } + return notCamelcase; +} +export function looksLikeNumber(x) { + if (x === null || x === undefined) + return false; + // if loaded from config, may already be a number. + if (typeof x === 'number') + return true; + // hexadecimal. + if (/^0x[0-9a-f]+$/i.test(x)) + return true; + // don't treat 0123 as a number; as it drops the leading '0'. + if (/^0[^.]/.test(x)) + return false; + return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} diff --git a/node_modules/yargs-parser/build/lib/tokenize-arg-string.js b/node_modules/yargs-parser/build/lib/tokenize-arg-string.js new file mode 100644 index 0000000..5e732ef --- /dev/null +++ b/node_modules/yargs-parser/build/lib/tokenize-arg-string.js @@ -0,0 +1,40 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +// take an un-split argv string and tokenize it. +export function tokenizeArgString(argString) { + if (Array.isArray(argString)) { + return argString.map(e => typeof e !== 'string' ? e + '' : e); + } + argString = argString.trim(); + let i = 0; + let prevC = null; + let c = null; + let opening = null; + const args = []; + for (let ii = 0; ii < argString.length; ii++) { + prevC = c; + c = argString.charAt(ii); + // split on spaces unless we're in quotes. + if (c === ' ' && !opening) { + if (!(prevC === ' ')) { + i++; + } + continue; + } + // don't split the string if we're in matching + // opening or closing single and double quotes. + if (c === opening) { + opening = null; + } + else if ((c === "'" || c === '"') && !opening) { + opening = c; + } + if (!args[i]) + args[i] = ''; + args[i] += c; + } + return args; +} diff --git a/node_modules/yargs-parser/build/lib/yargs-parser-types.js b/node_modules/yargs-parser/build/lib/yargs-parser-types.js new file mode 100644 index 0000000..63b7c31 --- /dev/null +++ b/node_modules/yargs-parser/build/lib/yargs-parser-types.js @@ -0,0 +1,12 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +export var DefaultValuesForTypeKey; +(function (DefaultValuesForTypeKey) { + DefaultValuesForTypeKey["BOOLEAN"] = "boolean"; + DefaultValuesForTypeKey["STRING"] = "string"; + DefaultValuesForTypeKey["NUMBER"] = "number"; + DefaultValuesForTypeKey["ARRAY"] = "array"; +})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {})); diff --git a/node_modules/yargs-parser/build/lib/yargs-parser.js b/node_modules/yargs-parser/build/lib/yargs-parser.js new file mode 100644 index 0000000..415d4bc --- /dev/null +++ b/node_modules/yargs-parser/build/lib/yargs-parser.js @@ -0,0 +1,1045 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +import { tokenizeArgString } from './tokenize-arg-string.js'; +import { DefaultValuesForTypeKey } from './yargs-parser-types.js'; +import { camelCase, decamelize, looksLikeNumber } from './string-utils.js'; +let mixin; +export class YargsParser { + constructor(_mixin) { + mixin = _mixin; + } + parse(argsInput, options) { + const opts = Object.assign({ + alias: undefined, + array: undefined, + boolean: undefined, + config: undefined, + configObjects: undefined, + configuration: undefined, + coerce: undefined, + count: undefined, + default: undefined, + envPrefix: undefined, + narg: undefined, + normalize: undefined, + string: undefined, + number: undefined, + __: undefined, + key: undefined + }, options); + // allow a string argument to be passed in rather + // than an argv array. + const args = tokenizeArgString(argsInput); + // tokenizeArgString adds extra quotes to args if argsInput is a string + // only strip those extra quotes in processValue if argsInput is a string + const inputIsString = typeof argsInput === 'string'; + // aliases might have transitive relationships, normalize this. + const aliases = combineAliases(Object.assign(Object.create(null), opts.alias)); + const configuration = Object.assign({ + 'boolean-negation': true, + 'camel-case-expansion': true, + 'combine-arrays': false, + 'dot-notation': true, + 'duplicate-arguments-array': true, + 'flatten-duplicate-arrays': true, + 'greedy-arrays': true, + 'halt-at-non-option': false, + 'nargs-eats-options': false, + 'negation-prefix': 'no-', + 'parse-numbers': true, + 'parse-positional-numbers': true, + 'populate--': false, + 'set-placeholder-key': false, + 'short-option-groups': true, + 'strip-aliased': false, + 'strip-dashed': false, + 'unknown-options-as-args': false + }, opts.configuration); + const defaults = Object.assign(Object.create(null), opts.default); + const configObjects = opts.configObjects || []; + const envPrefix = opts.envPrefix; + const notFlagsOption = configuration['populate--']; + const notFlagsArgv = notFlagsOption ? '--' : '_'; + const newAliases = Object.create(null); + const defaulted = Object.create(null); + // allow a i18n handler to be passed in, default to a fake one (util.format). + const __ = opts.__ || mixin.format; + const flags = { + aliases: Object.create(null), + arrays: Object.create(null), + bools: Object.create(null), + strings: Object.create(null), + numbers: Object.create(null), + counts: Object.create(null), + normalize: Object.create(null), + configs: Object.create(null), + nargs: Object.create(null), + coercions: Object.create(null), + keys: [] + }; + const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/; + const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)'); + [].concat(opts.array || []).filter(Boolean).forEach(function (opt) { + const key = typeof opt === 'object' ? opt.key : opt; + // assign to flags[bools|strings|numbers] + const assignment = Object.keys(opt).map(function (key) { + const arrayFlagKeys = { + boolean: 'bools', + string: 'strings', + number: 'numbers' + }; + return arrayFlagKeys[key]; + }).filter(Boolean).pop(); + // assign key to be coerced + if (assignment) { + flags[assignment][key] = true; + } + flags.arrays[key] = true; + flags.keys.push(key); + }); + [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + flags.keys.push(key); + }); + [].concat(opts.string || []).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + flags.keys.push(key); + }); + [].concat(opts.number || []).filter(Boolean).forEach(function (key) { + flags.numbers[key] = true; + flags.keys.push(key); + }); + [].concat(opts.count || []).filter(Boolean).forEach(function (key) { + flags.counts[key] = true; + flags.keys.push(key); + }); + [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) { + flags.normalize[key] = true; + flags.keys.push(key); + }); + if (typeof opts.narg === 'object') { + Object.entries(opts.narg).forEach(([key, value]) => { + if (typeof value === 'number') { + flags.nargs[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.coerce === 'object') { + Object.entries(opts.coerce).forEach(([key, value]) => { + if (typeof value === 'function') { + flags.coercions[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.config !== 'undefined') { + if (Array.isArray(opts.config) || typeof opts.config === 'string') { + ; + [].concat(opts.config).filter(Boolean).forEach(function (key) { + flags.configs[key] = true; + }); + } + else if (typeof opts.config === 'object') { + Object.entries(opts.config).forEach(([key, value]) => { + if (typeof value === 'boolean' || typeof value === 'function') { + flags.configs[key] = value; + } + }); + } + } + // create a lookup table that takes into account all + // combinations of aliases: {f: ['foo'], foo: ['f']} + extendAliases(opts.key, aliases, opts.default, flags.arrays); + // apply default values to all aliases. + Object.keys(defaults).forEach(function (key) { + (flags.aliases[key] || []).forEach(function (alias) { + defaults[alias] = defaults[key]; + }); + }); + let error = null; + checkConfiguration(); + let notFlags = []; + const argv = Object.assign(Object.create(null), { _: [] }); + // TODO(bcoe): for the first pass at removing object prototype we didn't + // remove all prototypes from objects returned by this API, we might want + // to gradually move towards doing so. + const argvReturn = {}; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + const truncatedArg = arg.replace(/^-{3,}/, '---'); + let broken; + let key; + let letters; + let m; + let next; + let value; + // any unknown option (except for end-of-options, "--") + if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) { + pushPositional(arg); + // ---, ---=, ----, etc, + } + else if (truncatedArg.match(/^---+(=|$)/)) { + // options without key name are invalid. + pushPositional(arg); + continue; + // -- separated by = + } + else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + m = arg.match(/^--?([^=]+)=([\s\S]*)$/); + // arrays format = '--f=a b c' + if (m !== null && Array.isArray(m) && m.length >= 3) { + if (checkAllAliases(m[1], flags.arrays)) { + i = eatArray(i, m[1], args, m[2]); + } + else if (checkAllAliases(m[1], flags.nargs) !== false) { + // nargs format = '--f=monkey washing cat' + i = eatNargs(i, m[1], args, m[2]); + } + else { + setArg(m[1], m[2], true); + } + } + } + else if (arg.match(negatedBoolean) && configuration['boolean-negation']) { + m = arg.match(negatedBoolean); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false); + } + // -- separated by space. + } + else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) { + m = arg.match(/^--?(.+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (checkAllAliases(key, flags.arrays)) { + // array format = '--foo a b c' + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + // nargs format = '--foo a b c' + // should be truthy even if: flags.nargs[key] === 0 + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!next.match(/^-/) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + // dot-notation flag separated by '='. + } + else if (arg.match(/^-.\..+=/)) { + m = arg.match(/^-([^=]+)=([\s\S]*)$/); + if (m !== null && Array.isArray(m) && m.length >= 3) { + setArg(m[1], m[2]); + } + // dot-notation flag separated by space. + } + else if (arg.match(/^-.\..+/) && !arg.match(negative)) { + next = args[i + 1]; + m = arg.match(/^-(.\..+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (next !== undefined && !next.match(/^-/) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { + letters = arg.slice(1, -1).split(''); + broken = false; + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (letters[j + 1] && letters[j + 1] === '=') { + value = arg.slice(j + 3); + key = letters[j]; + if (checkAllAliases(key, flags.arrays)) { + // array format = '-f=a b c' + i = eatArray(i, key, args, value); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + // nargs format = '-f=monkey washing cat' + i = eatNargs(i, key, args, value); + } + else { + setArg(key, value); + } + broken = true; + break; + } + if (next === '-') { + setArg(letters[j], next); + continue; + } + // current letter is an alphabetic character and next value is a number + if (/[A-Za-z]/.test(letters[j]) && + /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) && + checkAllAliases(next, flags.bools) === false) { + setArg(letters[j], next); + broken = true; + break; + } + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], next); + broken = true; + break; + } + else { + setArg(letters[j], defaultValue(letters[j])); + } + } + key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (checkAllAliases(key, flags.arrays)) { + // array format = '-f a b c' + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + // nargs format = '-f a b c' + // should be truthy even if: flags.nargs[key] === 0 + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!/^(-|--)[^-]/.test(next) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + } + else if (arg.match(/^-[0-9]$/) && + arg.match(negative) && + checkAllAliases(arg.slice(1), flags.bools)) { + // single-digit boolean alias, e.g: xargs -0 + key = arg.slice(1); + setArg(key, defaultValue(key)); + } + else if (arg === '--') { + notFlags = args.slice(i + 1); + break; + } + else if (configuration['halt-at-non-option']) { + notFlags = args.slice(i); + break; + } + else { + pushPositional(arg); + } + } + // order of precedence: + // 1. command line arg + // 2. value from env var + // 3. value from config file + // 4. value from config objects + // 5. configured default value + applyEnvVars(argv, true); // special case: check env vars that point to config file + applyEnvVars(argv, false); + setConfig(argv); + setConfigObjects(); + applyDefaultsAndAliases(argv, flags.aliases, defaults, true); + applyCoercions(argv); + if (configuration['set-placeholder-key']) + setPlaceholderKeys(argv); + // for any counts either not in args or without an explicit default, set to 0 + Object.keys(flags.counts).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) + setArg(key, 0); + }); + // '--' defaults to undefined. + if (notFlagsOption && notFlags.length) + argv[notFlagsArgv] = []; + notFlags.forEach(function (key) { + argv[notFlagsArgv].push(key); + }); + if (configuration['camel-case-expansion'] && configuration['strip-dashed']) { + Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => { + delete argv[key]; + }); + } + if (configuration['strip-aliased']) { + ; + [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => { + if (configuration['camel-case-expansion'] && alias.includes('-')) { + delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')]; + } + delete argv[alias]; + }); + } + // Push argument into positional array, applying numeric coercion: + function pushPositional(arg) { + const maybeCoercedNumber = maybeCoerceNumber('_', arg); + if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') { + argv._.push(maybeCoercedNumber); + } + } + // how many arguments should we consume, based + // on the nargs option? + function eatNargs(i, key, args, argAfterEqualSign) { + let ii; + let toEat = checkAllAliases(key, flags.nargs); + // NaN has a special meaning for the array type, indicating that one or + // more values are expected. + toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat; + if (toEat === 0) { + if (!isUndefined(argAfterEqualSign)) { + error = Error(__('Argument unexpected for: %s', key)); + } + setArg(key, defaultValue(key)); + return i; + } + let available = isUndefined(argAfterEqualSign) ? 0 : 1; + if (configuration['nargs-eats-options']) { + // classic behavior, yargs eats positional and dash arguments. + if (args.length - (i + 1) + available < toEat) { + error = Error(__('Not enough arguments following: %s', key)); + } + available = toEat; + } + else { + // nargs will not consume flag arguments, e.g., -abc, --foo, + // and terminates when one is observed. + for (ii = i + 1; ii < args.length; ii++) { + if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) + available++; + else + break; + } + if (available < toEat) + error = Error(__('Not enough arguments following: %s', key)); + } + let consumed = Math.min(available, toEat); + if (!isUndefined(argAfterEqualSign) && consumed > 0) { + setArg(key, argAfterEqualSign); + consumed--; + } + for (ii = i + 1; ii < (consumed + i + 1); ii++) { + setArg(key, args[ii]); + } + return (i + consumed); + } + // if an option is an array, eat all non-hyphenated arguments + // following it... YUM! + // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"] + function eatArray(i, key, args, argAfterEqualSign) { + let argsToSet = []; + let next = argAfterEqualSign || args[i + 1]; + // If both array and nargs are configured, enforce the nargs count: + const nargsCount = checkAllAliases(key, flags.nargs); + if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) { + argsToSet.push(true); + } + else if (isUndefined(next) || + (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) { + // for keys without value ==> argsToSet remains an empty [] + // set user default value, if available + if (defaults[key] !== undefined) { + const defVal = defaults[key]; + argsToSet = Array.isArray(defVal) ? defVal : [defVal]; + } + } + else { + // value in --option=value is eaten as is + if (!isUndefined(argAfterEqualSign)) { + argsToSet.push(processValue(key, argAfterEqualSign, true)); + } + for (let ii = i + 1; ii < args.length; ii++) { + if ((!configuration['greedy-arrays'] && argsToSet.length > 0) || + (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount)) + break; + next = args[ii]; + if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) + break; + i = ii; + argsToSet.push(processValue(key, next, inputIsString)); + } + } + // If both array and nargs are configured, create an error if less than + // nargs positionals were found. NaN has special meaning, indicating + // that at least one value is required (more are okay). + if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) || + (isNaN(nargsCount) && argsToSet.length === 0))) { + error = Error(__('Not enough arguments following: %s', key)); + } + setArg(key, argsToSet); + return i; + } + function setArg(key, val, shouldStripQuotes = inputIsString) { + if (/-/.test(key) && configuration['camel-case-expansion']) { + const alias = key.split('.').map(function (prop) { + return camelCase(prop); + }).join('.'); + addNewAlias(key, alias); + } + const value = processValue(key, val, shouldStripQuotes); + const splitKey = key.split('.'); + setKey(argv, splitKey, value); + // handle populating aliases of the full key + if (flags.aliases[key]) { + flags.aliases[key].forEach(function (x) { + const keyProperties = x.split('.'); + setKey(argv, keyProperties, value); + }); + } + // handle populating aliases of the first element of the dot-notation key + if (splitKey.length > 1 && configuration['dot-notation']) { + ; + (flags.aliases[splitKey[0]] || []).forEach(function (x) { + let keyProperties = x.split('.'); + // expand alias with nested objects in key + const a = [].concat(splitKey); + a.shift(); // nuke the old key. + keyProperties = keyProperties.concat(a); + // populate alias only if is not already an alias of the full key + // (already populated above) + if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) { + setKey(argv, keyProperties, value); + } + }); + } + // Set normalize getter and setter when key is in 'normalize' but isn't an array + if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) { + const keys = [key].concat(flags.aliases[key] || []); + keys.forEach(function (key) { + Object.defineProperty(argvReturn, key, { + enumerable: true, + get() { + return val; + }, + set(value) { + val = typeof value === 'string' ? mixin.normalize(value) : value; + } + }); + }); + } + } + function addNewAlias(key, alias) { + if (!(flags.aliases[key] && flags.aliases[key].length)) { + flags.aliases[key] = [alias]; + newAliases[alias] = true; + } + if (!(flags.aliases[alias] && flags.aliases[alias].length)) { + addNewAlias(alias, key); + } + } + function processValue(key, val, shouldStripQuotes) { + // strings may be quoted, clean this up as we assign values. + if (shouldStripQuotes) { + val = stripQuotes(val); + } + // handle parsing boolean arguments --foo=true --bar false. + if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { + if (typeof val === 'string') + val = val === 'true'; + } + let value = Array.isArray(val) + ? val.map(function (v) { return maybeCoerceNumber(key, v); }) + : maybeCoerceNumber(key, val); + // increment a count given as arg (either no value or value parsed as boolean) + if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { + value = increment(); + } + // Set normalized value when key is in 'normalize' and in 'arrays' + if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { + if (Array.isArray(val)) + value = val.map((val) => { return mixin.normalize(val); }); + else + value = mixin.normalize(val); + } + return value; + } + function maybeCoerceNumber(key, value) { + if (!configuration['parse-positional-numbers'] && key === '_') + return value; + if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) { + const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`)))); + if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) { + value = Number(value); + } + } + return value; + } + // set args from config.json file, this should be + // applied last so that defaults can be applied. + function setConfig(argv) { + const configLookup = Object.create(null); + // expand defaults/aliases, in-case any happen to reference + // the config.json file. + applyDefaultsAndAliases(configLookup, flags.aliases, defaults); + Object.keys(flags.configs).forEach(function (configKey) { + const configPath = argv[configKey] || configLookup[configKey]; + if (configPath) { + try { + let config = null; + const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath); + const resolveConfig = flags.configs[configKey]; + if (typeof resolveConfig === 'function') { + try { + config = resolveConfig(resolvedConfigPath); + } + catch (e) { + config = e; + } + if (config instanceof Error) { + error = config; + return; + } + } + else { + config = mixin.require(resolvedConfigPath); + } + setConfigObject(config); + } + catch (ex) { + // Deno will receive a PermissionDenied error if an attempt is + // made to load config without the --allow-read flag: + if (ex.name === 'PermissionDenied') + error = ex; + else if (argv[configKey]) + error = Error(__('Invalid JSON config file: %s', configPath)); + } + } + }); + } + // set args from config object. + // it recursively checks nested objects. + function setConfigObject(config, prev) { + Object.keys(config).forEach(function (key) { + const value = config[key]; + const fullKey = prev ? prev + '.' + key : key; + // if the value is an inner object and we have dot-notation + // enabled, treat inner objects in config the same as + // heavily nested dot notations (foo.bar.apple). + if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) { + // if the value is an object but not an array, check nested object + setConfigObject(value, fullKey); + } + else { + // setting arguments via CLI takes precedence over + // values within the config file. + if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) { + setArg(fullKey, value); + } + } + }); + } + // set all config objects passed in opts + function setConfigObjects() { + if (typeof configObjects !== 'undefined') { + configObjects.forEach(function (configObject) { + setConfigObject(configObject); + }); + } + } + function applyEnvVars(argv, configOnly) { + if (typeof envPrefix === 'undefined') + return; + const prefix = typeof envPrefix === 'string' ? envPrefix : ''; + const env = mixin.env(); + Object.keys(env).forEach(function (envVar) { + if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) { + // get array of nested keys and convert them to camel case + const keys = envVar.split('__').map(function (key, i) { + if (i === 0) { + key = key.substring(prefix.length); + } + return camelCase(key); + }); + if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) { + setArg(keys.join('.'), env[envVar]); + } + } + }); + } + function applyCoercions(argv) { + let coerce; + const applied = new Set(); + Object.keys(argv).forEach(function (key) { + if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases + coerce = checkAllAliases(key, flags.coercions); + if (typeof coerce === 'function') { + try { + const value = maybeCoerceNumber(key, coerce(argv[key])); + ([].concat(flags.aliases[key] || [], key)).forEach(ali => { + applied.add(ali); + argv[ali] = value; + }); + } + catch (err) { + error = err; + } + } + } + }); + } + function setPlaceholderKeys(argv) { + flags.keys.forEach((key) => { + // don't set placeholder keys for dot notation options 'foo.bar'. + if (~key.indexOf('.')) + return; + if (typeof argv[key] === 'undefined') + argv[key] = undefined; + }); + return argv; + } + function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) { + Object.keys(defaults).forEach(function (key) { + if (!hasKey(obj, key.split('.'))) { + setKey(obj, key.split('.'), defaults[key]); + if (canLog) + defaulted[key] = true; + (aliases[key] || []).forEach(function (x) { + if (hasKey(obj, x.split('.'))) + return; + setKey(obj, x.split('.'), defaults[key]); + }); + } + }); + } + function hasKey(obj, keys) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + o = (o[key] || {}); + }); + const key = keys[keys.length - 1]; + if (typeof o !== 'object') + return false; + else + return key in o; + } + function setKey(obj, keys, value) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + // TODO(bcoe): in the next major version of yargs, switch to + // Object.create(null) for dot notation: + key = sanitizeKey(key); + if (typeof o === 'object' && o[key] === undefined) { + o[key] = {}; + } + if (typeof o[key] !== 'object' || Array.isArray(o[key])) { + // ensure that o[key] is an array, and that the last item is an empty object. + if (Array.isArray(o[key])) { + o[key].push({}); + } + else { + o[key] = [o[key], {}]; + } + // we want to update the empty object at the end of the o[key] array, so set o to that object + o = o[key][o[key].length - 1]; + } + else { + o = o[key]; + } + }); + // TODO(bcoe): in the next major version of yargs, switch to + // Object.create(null) for dot notation: + const key = sanitizeKey(keys[keys.length - 1]); + const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays); + const isValueArray = Array.isArray(value); + let duplicate = configuration['duplicate-arguments-array']; + // nargs has higher priority than duplicate + if (!duplicate && checkAllAliases(key, flags.nargs)) { + duplicate = true; + if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) { + o[key] = undefined; + } + } + if (value === increment()) { + o[key] = increment(o[key]); + } + else if (Array.isArray(o[key])) { + if (duplicate && isTypeArray && isValueArray) { + o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]); + } + else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { + o[key] = value; + } + else { + o[key] = o[key].concat([value]); + } + } + else if (o[key] === undefined && isTypeArray) { + o[key] = isValueArray ? value : [value]; + } + else if (duplicate && !(o[key] === undefined || + checkAllAliases(key, flags.counts) || + checkAllAliases(key, flags.bools))) { + o[key] = [o[key], value]; + } + else { + o[key] = value; + } + } + // extend the aliases list with inferred aliases. + function extendAliases(...args) { + args.forEach(function (obj) { + Object.keys(obj || {}).forEach(function (key) { + // short-circuit if we've already added a key + // to the aliases array, for example it might + // exist in both 'opts.default' and 'opts.key'. + if (flags.aliases[key]) + return; + flags.aliases[key] = [].concat(aliases[key] || []); + // For "--option-name", also set argv.optionName + flags.aliases[key].concat(key).forEach(function (x) { + if (/-/.test(x) && configuration['camel-case-expansion']) { + const c = camelCase(x); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + // For "--optionName", also set argv['option-name'] + flags.aliases[key].concat(key).forEach(function (x) { + if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) { + const c = decamelize(x, '-'); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + flags.aliases[key].forEach(function (x) { + flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + }); + } + function checkAllAliases(key, flag) { + const toCheck = [].concat(flags.aliases[key] || [], key); + const keys = Object.keys(flag); + const setAlias = toCheck.find(key => keys.includes(key)); + return setAlias ? flag[setAlias] : false; + } + function hasAnyFlag(key) { + const flagsKeys = Object.keys(flags); + const toCheck = [].concat(flagsKeys.map(k => flags[k])); + return toCheck.some(function (flag) { + return Array.isArray(flag) ? flag.includes(key) : flag[key]; + }); + } + function hasFlagsMatching(arg, ...patterns) { + const toCheck = [].concat(...patterns); + return toCheck.some(function (pattern) { + const match = arg.match(pattern); + return match && hasAnyFlag(match[1]); + }); + } + // based on a simplified version of the short flag group parsing logic + function hasAllShortFlags(arg) { + // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group + if (arg.match(negative) || !arg.match(/^-[^-]+/)) { + return false; + } + let hasAllFlags = true; + let next; + const letters = arg.slice(1).split(''); + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (!hasAnyFlag(letters[j])) { + hasAllFlags = false; + break; + } + if ((letters[j + 1] && letters[j + 1] === '=') || + next === '-' || + (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) || + (letters[j + 1] && letters[j + 1].match(/\W/))) { + break; + } + } + return hasAllFlags; + } + function isUnknownOptionAsArg(arg) { + return configuration['unknown-options-as-args'] && isUnknownOption(arg); + } + function isUnknownOption(arg) { + arg = arg.replace(/^-{3,}/, '--'); + // ignore negative numbers + if (arg.match(negative)) { + return false; + } + // if this is a short option group and all of them are configured, it isn't unknown + if (hasAllShortFlags(arg)) { + return false; + } + // e.g. '--count=2' + const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/; + // e.g. '-a' or '--arg' + const normalFlag = /^-+([^=]+?)$/; + // e.g. '-a-' + const flagEndingInHyphen = /^-+([^=]+?)-$/; + // e.g. '-abc123' + const flagEndingInDigits = /^-+([^=]+?\d+)$/; + // e.g. '-a/usr/local' + const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/; + // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method + return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters); + } + // make a best effort to pick a default value + // for an option based on name and type. + function defaultValue(key) { + if (!checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts) && + `${key}` in defaults) { + return defaults[key]; + } + else { + return defaultForType(guessType(key)); + } + } + // return a default value, given the type of a flag., + function defaultForType(type) { + const def = { + [DefaultValuesForTypeKey.BOOLEAN]: true, + [DefaultValuesForTypeKey.STRING]: '', + [DefaultValuesForTypeKey.NUMBER]: undefined, + [DefaultValuesForTypeKey.ARRAY]: [] + }; + return def[type]; + } + // given a flag, enforce a default type. + function guessType(key) { + let type = DefaultValuesForTypeKey.BOOLEAN; + if (checkAllAliases(key, flags.strings)) + type = DefaultValuesForTypeKey.STRING; + else if (checkAllAliases(key, flags.numbers)) + type = DefaultValuesForTypeKey.NUMBER; + else if (checkAllAliases(key, flags.bools)) + type = DefaultValuesForTypeKey.BOOLEAN; + else if (checkAllAliases(key, flags.arrays)) + type = DefaultValuesForTypeKey.ARRAY; + return type; + } + function isUndefined(num) { + return num === undefined; + } + // check user configuration settings for inconsistencies + function checkConfiguration() { + // count keys should not be set as array/narg + Object.keys(flags.counts).find(key => { + if (checkAllAliases(key, flags.arrays)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key)); + return true; + } + else if (checkAllAliases(key, flags.nargs)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key)); + return true; + } + return false; + }); + } + return { + aliases: Object.assign({}, flags.aliases), + argv: Object.assign(argvReturn, argv), + configuration: configuration, + defaulted: Object.assign({}, defaulted), + error: error, + newAliases: Object.assign({}, newAliases) + }; + } +} +// if any aliases reference each other, we should +// merge them together. +function combineAliases(aliases) { + const aliasArrays = []; + const combined = Object.create(null); + let change = true; + // turn alias lookup hash {key: ['alias1', 'alias2']} into + // a simple array ['key', 'alias1', 'alias2'] + Object.keys(aliases).forEach(function (key) { + aliasArrays.push([].concat(aliases[key], key)); + }); + // combine arrays until zero changes are + // made in an iteration. + while (change) { + change = false; + for (let i = 0; i < aliasArrays.length; i++) { + for (let ii = i + 1; ii < aliasArrays.length; ii++) { + const intersect = aliasArrays[i].filter(function (v) { + return aliasArrays[ii].indexOf(v) !== -1; + }); + if (intersect.length) { + aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]); + aliasArrays.splice(ii, 1); + change = true; + break; + } + } + } + } + // map arrays back to the hash-lookup (de-dupe while + // we're at it). + aliasArrays.forEach(function (aliasArray) { + aliasArray = aliasArray.filter(function (v, i, self) { + return self.indexOf(v) === i; + }); + const lastAlias = aliasArray.pop(); + if (lastAlias !== undefined && typeof lastAlias === 'string') { + combined[lastAlias] = aliasArray; + } + }); + return combined; +} +// this function should only be called when a count is given as an arg +// it is NOT called to set a default value +// thus we can start the count at 1 instead of 0 +function increment(orig) { + return orig !== undefined ? orig + 1 : 1; +} +// TODO(bcoe): in the next major version of yargs, switch to +// Object.create(null) for dot notation: +function sanitizeKey(key) { + if (key === '__proto__') + return '___proto___'; + return key; +} +function stripQuotes(val) { + return (typeof val === 'string' && + (val[0] === "'" || val[0] === '"') && + val[val.length - 1] === val[0]) + ? val.substring(1, val.length - 1) + : val; +} diff --git a/node_modules/yargs-parser/package.json b/node_modules/yargs-parser/package.json new file mode 100644 index 0000000..decd0c3 --- /dev/null +++ b/node_modules/yargs-parser/package.json @@ -0,0 +1,92 @@ +{ + "name": "yargs-parser", + "version": "21.1.1", + "description": "the mighty option parser used by yargs", + "main": "build/index.cjs", + "exports": { + ".": [ + { + "import": "./build/lib/index.js", + "require": "./build/index.cjs" + }, + "./build/index.cjs" + ], + "./browser": [ + "./browser.js" + ] + }, + "type": "module", + "module": "./build/lib/index.js", + "scripts": { + "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", + "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", + "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "test": "c8 --reporter=text --reporter=html mocha test/*.cjs", + "test:esm": "c8 --reporter=text --reporter=html mocha test/*.mjs", + "test:browser": "start-server-and-test 'serve ./ -p 8080' http://127.0.0.1:8080/package.json 'node ./test/browser/yargs-test.cjs'", + "pretest:typescript": "npm run pretest", + "test:typescript": "c8 mocha ./build/test/typescript/*.js", + "coverage": "c8 report --check-coverage", + "precompile": "rimraf build", + "compile": "tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c", + "prepare": "npm run compile" + }, + "repository": { + "type": "git", + "url": "https://github.com/yargs/yargs-parser.git" + }, + "keywords": [ + "argument", + "parser", + "yargs", + "command", + "cli", + "parsing", + "option", + "args", + "argument" + ], + "author": "Ben Coe ", + "license": "ISC", + "devDependencies": { + "@types/chai": "^4.2.11", + "@types/mocha": "^9.0.0", + "@types/node": "^16.11.4", + "@typescript-eslint/eslint-plugin": "^3.10.1", + "@typescript-eslint/parser": "^3.10.1", + "c8": "^7.3.0", + "chai": "^4.2.0", + "cross-env": "^7.0.2", + "eslint": "^7.0.0", + "eslint-plugin-import": "^2.20.1", + "eslint-plugin-node": "^11.0.0", + "gts": "^3.0.0", + "mocha": "^10.0.0", + "puppeteer": "^16.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.22.1", + "rollup-plugin-cleanup": "^3.1.1", + "rollup-plugin-ts": "^3.0.2", + "serve": "^14.0.0", + "standardx": "^7.0.0", + "start-server-and-test": "^1.11.2", + "ts-transform-default-export": "^1.0.2", + "typescript": "^4.0.0" + }, + "files": [ + "browser.js", + "build", + "!*.d.ts", + "!*.d.cts" + ], + "engines": { + "node": ">=12" + }, + "standardx": { + "ignore": [ + "build" + ] + } +} diff --git a/node_modules/yargs/LICENSE b/node_modules/yargs/LICENSE new file mode 100644 index 0000000..b0145ca --- /dev/null +++ b/node_modules/yargs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/yargs/README.md b/node_modules/yargs/README.md new file mode 100644 index 0000000..51f5b22 --- /dev/null +++ b/node_modules/yargs/README.md @@ -0,0 +1,204 @@ +

+ +

+

Yargs

+

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

+ +
+ +![ci](https://github.com/yargs/yargs/workflows/ci/badge.svg) +[![NPM version][npm-image]][npm-url] +[![js-standard-style][standard-image]][standard-url] +[![Coverage][coverage-image]][coverage-url] +[![Conventional Commits][conventional-commits-image]][conventional-commits-url] +[![Slack][slack-image]][slack-url] + +## Description +Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. + +It gives you: + +* commands and (grouped) options (`my-program.js serve --port=5000`). +* a dynamically generated help menu based on your arguments: + +``` +mocha [spec..] + +Run tests with Mocha + +Commands + mocha inspect [spec..] Run tests with Mocha [default] + mocha init create a client-side Mocha setup at + +Rules & Behavior + --allow-uncaught Allow uncaught errors to propagate [boolean] + --async-only, -A Require all tests to use a callback (async) or + return a Promise [boolean] +``` + +* bash-completion shortcuts for commands and options. +* and [tons more](/docs/api.md). + +## Installation + +Stable version: +```bash +npm i yargs +``` + +Bleeding edge version with the most recent features: +```bash +npm i yargs@next +``` + +## Usage + +### Simple Example + +```javascript +#!/usr/bin/env node +const yargs = require('yargs/yargs') +const { hideBin } = require('yargs/helpers') +const argv = yargs(hideBin(process.argv)).argv + +if (argv.ships > 3 && argv.distance < 53.5) { + console.log('Plunder more riffiwobbles!') +} else { + console.log('Retreat from the xupptumblers!') +} +``` + +```bash +$ ./plunder.js --ships=4 --distance=22 +Plunder more riffiwobbles! + +$ ./plunder.js --ships 12 --distance 98.7 +Retreat from the xupptumblers! +``` + +> Note: `hideBin` is a shorthand for [`process.argv.slice(2)`](https://nodejs.org/en/knowledge/command-line/how-to-parse-command-line-arguments/). It has the benefit that it takes into account variations in some environments, e.g., [Electron](https://github.com/electron/electron/issues/4690). + +### Complex Example + +```javascript +#!/usr/bin/env node +const yargs = require('yargs/yargs') +const { hideBin } = require('yargs/helpers') + +yargs(hideBin(process.argv)) + .command('serve [port]', 'start the server', (yargs) => { + return yargs + .positional('port', { + describe: 'port to bind on', + default: 5000 + }) + }, (argv) => { + if (argv.verbose) console.info(`start server on :${argv.port}`) + serve(argv.port) + }) + .option('verbose', { + alias: 'v', + type: 'boolean', + description: 'Run with verbose logging' + }) + .parse() +``` + +Run the example above with `--help` to see the help for the application. + +## Supported Platforms + +### TypeScript + +yargs has type definitions at [@types/yargs][type-definitions]. + +``` +npm i @types/yargs --save-dev +``` + +See usage examples in [docs](/docs/typescript.md). + +### Deno + +As of `v16`, `yargs` supports [Deno](https://github.com/denoland/deno): + +```typescript +import yargs from 'https://deno.land/x/yargs/deno.ts' +import { Arguments } from 'https://deno.land/x/yargs/deno-types.ts' + +yargs(Deno.args) + .command('download ', 'download a list of files', (yargs: any) => { + return yargs.positional('files', { + describe: 'a list of files to do something with' + }) + }, (argv: Arguments) => { + console.info(argv) + }) + .strictCommands() + .demandCommand(1) + .parse() +``` + +### ESM + +As of `v16`,`yargs` supports ESM imports: + +```js +import yargs from 'yargs' +import { hideBin } from 'yargs/helpers' + +yargs(hideBin(process.argv)) + .command('curl ', 'fetch the contents of the URL', () => {}, (argv) => { + console.info(argv) + }) + .demandCommand(1) + .parse() +``` + +### Usage in Browser + +See examples of using yargs in the browser in [docs](/docs/browser.md). + +## Community + +Having problems? want to contribute? join our [community slack](http://devtoolscommunity.herokuapp.com). + +## Documentation + +### Table of Contents + +* [Yargs' API](/docs/api.md) +* [Examples](/docs/examples.md) +* [Parsing Tricks](/docs/tricks.md) + * [Stop the Parser](/docs/tricks.md#stop) + * [Negating Boolean Arguments](/docs/tricks.md#negate) + * [Numbers](/docs/tricks.md#numbers) + * [Arrays](/docs/tricks.md#arrays) + * [Objects](/docs/tricks.md#objects) + * [Quotes](/docs/tricks.md#quotes) +* [Advanced Topics](/docs/advanced.md) + * [Composing Your App Using Commands](/docs/advanced.md#commands) + * [Building Configurable CLI Apps](/docs/advanced.md#configuration) + * [Customizing Yargs' Parser](/docs/advanced.md#customizing) + * [Bundling yargs](/docs/bundling.md) +* [Contributing](/contributing.md) + +## Supported Node.js Versions + +Libraries in this ecosystem make a best effort to track +[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +[npm-url]: https://www.npmjs.com/package/yargs +[npm-image]: https://img.shields.io/npm/v/yargs.svg +[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg +[standard-url]: http://standardjs.com/ +[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg +[conventional-commits-url]: https://conventionalcommits.org/ +[slack-image]: http://devtoolscommunity.herokuapp.com/badge.svg +[slack-url]: http://devtoolscommunity.herokuapp.com +[type-definitions]: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs +[coverage-image]: https://img.shields.io/nycrc/yargs/yargs +[coverage-url]: https://github.com/yargs/yargs/blob/main/.nycrc diff --git a/node_modules/yargs/browser.d.ts b/node_modules/yargs/browser.d.ts new file mode 100644 index 0000000..21f3fc6 --- /dev/null +++ b/node_modules/yargs/browser.d.ts @@ -0,0 +1,5 @@ +import {YargsFactory} from './build/lib/yargs-factory'; + +declare const Yargs: ReturnType; + +export default Yargs; diff --git a/node_modules/yargs/browser.mjs b/node_modules/yargs/browser.mjs new file mode 100644 index 0000000..2d0d6e9 --- /dev/null +++ b/node_modules/yargs/browser.mjs @@ -0,0 +1,7 @@ +// Bootstrap yargs for browser: +import browserPlatformShim from './lib/platform-shims/browser.mjs'; +import {YargsFactory} from './build/lib/yargs-factory.js'; + +const Yargs = YargsFactory(browserPlatformShim); + +export default Yargs; diff --git a/node_modules/yargs/build/index.cjs b/node_modules/yargs/build/index.cjs new file mode 100644 index 0000000..e9cf013 --- /dev/null +++ b/node_modules/yargs/build/index.cjs @@ -0,0 +1 @@ +"use strict";var t=require("assert");class e extends Error{constructor(t){super(t||"yargs error"),this.name="YError",Error.captureStackTrace&&Error.captureStackTrace(this,e)}}let s,i=[];function n(t,o,a,h){s=h;let l={};if(Object.prototype.hasOwnProperty.call(t,"extends")){if("string"!=typeof t.extends)return l;const r=/\.json|\..*rc$/.test(t.extends);let h=null;if(r)h=function(t,e){return s.path.resolve(t,e)}(o,t.extends);else try{h=require.resolve(t.extends)}catch(e){return t}!function(t){if(i.indexOf(t)>-1)throw new e(`Circular extended configurations: '${t}'.`)}(h),i.push(h),l=r?JSON.parse(s.readFileSync(h,"utf8")):require(t.extends),delete t.extends,l=n(l,s.path.dirname(h),a,s)}return i=[],a?r(l,t):Object.assign({},l,t)}function r(t,e){const s={};function i(t){return t&&"object"==typeof t&&!Array.isArray(t)}Object.assign(s,t);for(const n of Object.keys(e))i(e[n])&&i(s[n])?s[n]=r(t[n],e[n]):s[n]=e[n];return s}function o(t){const e=t.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),s=/\.*[\][<>]/g,i=e.shift();if(!i)throw new Error(`No command found in: ${t}`);const n={cmd:i.replace(s,""),demanded:[],optional:[]};return e.forEach(((t,i)=>{let r=!1;t=t.replace(/\s/g,""),/\.+[\]>]/.test(t)&&i===e.length-1&&(r=!0),/^\[/.test(t)?n.optional.push({cmd:t.replace(s,"").split("|"),variadic:r}):n.demanded.push({cmd:t.replace(s,"").split("|"),variadic:r})})),n}const a=["first","second","third","fourth","fifth","sixth"];function h(t,s,i){try{let n=0;const[r,a,h]="object"==typeof t?[{demanded:[],optional:[]},t,s]:[o(`cmd ${t}`),s,i],f=[].slice.call(a);for(;f.length&&void 0===f[f.length-1];)f.pop();const d=h||f.length;if(du)throw new e(`Too many arguments provided. Expected max ${u} but received ${d}.`);r.demanded.forEach((t=>{const e=l(f.shift());0===t.cmd.filter((t=>t===e||"*"===t)).length&&c(e,t.cmd,n),n+=1})),r.optional.forEach((t=>{if(0===f.length)return;const e=l(f.shift());0===t.cmd.filter((t=>t===e||"*"===t)).length&&c(e,t.cmd,n),n+=1}))}catch(t){console.warn(t.stack)}}function l(t){return Array.isArray(t)?"array":null===t?"null":typeof t}function c(t,s,i){throw new e(`Invalid ${a[i]||"manyith"} argument. Expected ${s.join(" or ")} but received ${t}.`)}function f(t){return!!t&&!!t.then&&"function"==typeof t.then}function d(t,e,s,i){s.assert.notStrictEqual(t,e,i)}function u(t,e){e.assert.strictEqual(typeof t,"string")}function p(t){return Object.keys(t)}function g(t={},e=(()=>!0)){const s={};return p(t).forEach((i=>{e(i,t[i])&&(s[i]=t[i])})),s}function m(){return process.versions.electron&&!process.defaultApp?0:1}function y(){return process.argv[m()]}var b=Object.freeze({__proto__:null,hideBin:function(t){return t.slice(m()+1)},getProcessArgvBin:y});function v(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)}function O(t,e,s,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(t,s):n?n.value=s:e.set(t,s),s}class w{constructor(t){this.globalMiddleware=[],this.frozens=[],this.yargs=t}addMiddleware(t,e,s=!0,i=!1){if(h(" [boolean] [boolean] [boolean]",[t,e,s],arguments.length),Array.isArray(t)){for(let i=0;i{const i=[...s[e]||[],e];return!t.option||!i.includes(t.option)})),t.option=e,this.addMiddleware(t,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){const t=this.frozens.pop();void 0!==t&&(this.globalMiddleware=t)}reset(){this.globalMiddleware=this.globalMiddleware.filter((t=>t.global))}}function C(t,e,s,i){return s.reduce(((t,s)=>{if(s.applyBeforeValidation!==i)return t;if(s.mutates){if(s.applied)return t;s.applied=!0}if(f(t))return t.then((t=>Promise.all([t,s(t,e)]))).then((([t,e])=>Object.assign(t,e)));{const i=s(t,e);return f(i)?i.then((e=>Object.assign(t,e))):Object.assign(t,i)}}),t)}function j(t,e,s=(t=>{throw t})){try{const s="function"==typeof t?t():t;return f(s)?s.then((t=>e(t))):e(s)}catch(t){return s(t)}}const M=/(^\*)|(^\$0)/;class _{constructor(t,e,s,i){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=i,this.usage=t,this.globalMiddleware=s,this.validation=e}addDirectory(t,e,s,i){"boolean"!=typeof(i=i||{}).recurse&&(i.recurse=!1),Array.isArray(i.extensions)||(i.extensions=["js"]);const n="function"==typeof i.visit?i.visit:t=>t;i.visit=(t,e,s)=>{const i=n(t,e,s);if(i){if(this.requireCache.has(e))return i;this.requireCache.add(e),this.addHandler(i)}return i},this.shim.requireDirectory({require:e,filename:s},t,i)}addHandler(t,e,s,i,n,r){let a=[];const h=function(t){return t?t.map((t=>(t.applyBeforeValidation=!1,t))):[]}(n);if(i=i||(()=>{}),Array.isArray(t))if(function(t){return t.every((t=>"string"==typeof t))}(t))[t,...a]=t;else for(const e of t)this.addHandler(e);else{if(function(t){return"object"==typeof t&&!Array.isArray(t)}(t)){let e=Array.isArray(t.command)||"string"==typeof t.command?t.command:this.moduleName(t);return t.aliases&&(e=[].concat(e).concat(t.aliases)),void this.addHandler(e,this.extractDesc(t),t.builder,t.handler,t.middlewares,t.deprecated)}if(k(s))return void this.addHandler([t].concat(a),e,s.builder,s.handler,s.middlewares,s.deprecated)}if("string"==typeof t){const n=o(t);a=a.map((t=>o(t).cmd));let l=!1;const c=[n.cmd].concat(a).filter((t=>!M.test(t)||(l=!0,!1)));0===c.length&&l&&c.push("$0"),l&&(n.cmd=c[0],a=c.slice(1),t=t.replace(M,n.cmd)),a.forEach((t=>{this.aliasMap[t]=n.cmd})),!1!==e&&this.usage.command(t,e,l,a,r),this.handlers[n.cmd]={original:t,description:e,handler:i,builder:s||{},middlewares:h,deprecated:r,demanded:n.demanded,optional:n.optional},l&&(this.defaultCommand=this.handlers[n.cmd])}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(t,e,s,i,n,r){const o=this.handlers[t]||this.handlers[this.aliasMap[t]]||this.defaultCommand,a=e.getInternalMethods().getContext(),h=a.commands.slice(),l=!t;t&&(a.commands.push(t),a.fullCommands.push(o.original));const c=this.applyBuilderUpdateUsageAndParse(l,o,e,s.aliases,h,i,n,r);return f(c)?c.then((t=>this.applyMiddlewareAndGetResult(l,o,t.innerArgv,a,n,t.aliases,e))):this.applyMiddlewareAndGetResult(l,o,c.innerArgv,a,n,c.aliases,e)}applyBuilderUpdateUsageAndParse(t,e,s,i,n,r,o,a){const h=e.builder;let l=s;if(x(h)){s.getInternalMethods().getUsageInstance().freeze();const c=h(s.getInternalMethods().reset(i),a);if(f(c))return c.then((i=>{var a;return l=(a=i)&&"function"==typeof a.getInternalMethods?i:s,this.parseAndUpdateUsage(t,e,l,n,r,o)}))}else(function(t){return"object"==typeof t})(h)&&(s.getInternalMethods().getUsageInstance().freeze(),l=s.getInternalMethods().reset(i),Object.keys(e.builder).forEach((t=>{l.option(t,h[t])})));return this.parseAndUpdateUsage(t,e,l,n,r,o)}parseAndUpdateUsage(t,e,s,i,n,r){t&&s.getInternalMethods().getUsageInstance().unfreeze(!0),this.shouldUpdateUsage(s)&&s.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(i,e),e.description);const o=s.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,n,r);return f(o)?o.then((t=>({aliases:s.parsed.aliases,innerArgv:t}))):{aliases:s.parsed.aliases,innerArgv:o}}shouldUpdateUsage(t){return!t.getInternalMethods().getUsageInstance().getUsageDisabled()&&0===t.getInternalMethods().getUsageInstance().getUsage().length}usageFromParentCommandsCommandHandler(t,e){const s=M.test(e.original)?e.original.replace(M,"").trim():e.original,i=t.filter((t=>!M.test(t)));return i.push(s),`$0 ${i.join(" ")}`}handleValidationAndGetResult(t,e,s,i,n,r,o,a){if(!r.getInternalMethods().getHasOutput()){const e=r.getInternalMethods().runValidation(n,a,r.parsed.error,t);s=j(s,(t=>(e(t),t)))}if(e.handler&&!r.getInternalMethods().getHasOutput()){r.getInternalMethods().setHasOutput();const i=!!r.getOptions().configuration["populate--"];r.getInternalMethods().postProcess(s,i,!1,!1),s=j(s=C(s,r,o,!1),(t=>{const s=e.handler(t);return f(s)?s.then((()=>t)):t})),t||r.getInternalMethods().getUsageInstance().cacheHelpMessage(),f(s)&&!r.getInternalMethods().hasParseCallback()&&s.catch((t=>{try{r.getInternalMethods().getUsageInstance().fail(null,t)}catch(t){}}))}return t||(i.commands.pop(),i.fullCommands.pop()),s}applyMiddlewareAndGetResult(t,e,s,i,n,r,o){let a={};if(n)return s;o.getInternalMethods().getHasOutput()||(a=this.populatePositionals(e,s,i,o));const h=this.globalMiddleware.getMiddleware().slice(0).concat(e.middlewares),l=C(s,o,h,!0);return f(l)?l.then((s=>this.handleValidationAndGetResult(t,e,s,i,r,o,h,a))):this.handleValidationAndGetResult(t,e,l,i,r,o,h,a)}populatePositionals(t,e,s,i){e._=e._.slice(s.commands.length);const n=t.demanded.slice(0),r=t.optional.slice(0),o={};for(this.validation.positionalCount(n.length,e._.length);n.length;){const t=n.shift();this.populatePositional(t,e,o)}for(;r.length;){const t=r.shift();this.populatePositional(t,e,o)}return e._=s.commands.concat(e._.map((t=>""+t))),this.postProcessPositionals(e,o,this.cmdToParseOptions(t.original),i),o}populatePositional(t,e,s){const i=t.cmd[0];t.variadic?s[i]=e._.splice(0).map(String):e._.length&&(s[i]=[String(e._.shift())])}cmdToParseOptions(t){const e={array:[],default:{},alias:{},demand:{}},s=o(t);return s.demanded.forEach((t=>{const[s,...i]=t.cmd;t.variadic&&(e.array.push(s),e.default[s]=[]),e.alias[s]=i,e.demand[s]=!0})),s.optional.forEach((t=>{const[s,...i]=t.cmd;t.variadic&&(e.array.push(s),e.default[s]=[]),e.alias[s]=i})),e}postProcessPositionals(t,e,s,i){const n=Object.assign({},i.getOptions());n.default=Object.assign(s.default,n.default);for(const t of Object.keys(s.alias))n.alias[t]=(n.alias[t]||[]).concat(s.alias[t]);n.array=n.array.concat(s.array),n.config={};const r=[];if(Object.keys(e).forEach((t=>{e[t].map((e=>{n.configuration["unknown-options-as-args"]&&(n.key[t]=!0),r.push(`--${t}`),r.push(e)}))})),!r.length)return;const o=Object.assign({},n.configuration,{"populate--":!1}),a=this.shim.Parser.detailed(r,Object.assign({},n,{configuration:o}));if(a.error)i.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{const s=Object.keys(e);Object.keys(e).forEach((t=>{s.push(...a.aliases[t])})),Object.keys(a.argv).forEach((n=>{s.includes(n)&&(e[n]||(e[n]=a.argv[n]),!this.isInConfigs(i,n)&&!this.isDefaulted(i,n)&&Object.prototype.hasOwnProperty.call(t,n)&&Object.prototype.hasOwnProperty.call(a.argv,n)&&(Array.isArray(t[n])||Array.isArray(a.argv[n]))?t[n]=[].concat(t[n],a.argv[n]):t[n]=a.argv[n])}))}}isDefaulted(t,e){const{default:s}=t.getOptions();return Object.prototype.hasOwnProperty.call(s,e)||Object.prototype.hasOwnProperty.call(s,this.shim.Parser.camelCase(e))}isInConfigs(t,e){const{configObjects:s}=t.getOptions();return s.some((t=>Object.prototype.hasOwnProperty.call(t,e)))||s.some((t=>Object.prototype.hasOwnProperty.call(t,this.shim.Parser.camelCase(e))))}runDefaultBuilderOn(t){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(t)){const e=M.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");t.getInternalMethods().getUsageInstance().usage(e,this.defaultCommand.description)}const e=this.defaultCommand.builder;if(x(e))return e(t,!0);k(e)||Object.keys(e).forEach((s=>{t.option(s,e[s])}))}moduleName(t){const e=function(t){if("undefined"==typeof require)return null;for(let e,s=0,i=Object.keys(require.cache);s{const s=e;s._handle&&s.isTTY&&"function"==typeof s._handle.setBlocking&&s._handle.setBlocking(t)}))}function A(t){return"boolean"==typeof t}function P(t,s){const i=s.y18n.__,n={},r=[];n.failFn=function(t){r.push(t)};let o=null,a=null,h=!0;n.showHelpOnFail=function(e=!0,s){const[i,r]="string"==typeof e?[!0,e]:[e,s];return t.getInternalMethods().isGlobalContext()&&(a=r),o=r,h=i,n};let l=!1;n.fail=function(s,i){const c=t.getInternalMethods().getLoggerInstance();if(!r.length){if(t.getExitProcess()&&E(!0),!l){l=!0,h&&(t.showHelp("error"),c.error()),(s||i)&&c.error(s||i);const e=o||a;e&&((s||i)&&c.error(""),c.error(e))}if(i=i||new e(s),t.getExitProcess())return t.exit(1);if(t.getInternalMethods().hasParseCallback())return t.exit(1,i);throw i}for(let t=r.length-1;t>=0;--t){const e=r[t];if(A(e)){if(i)throw i;if(s)throw Error(s)}else e(s,i,n)}};let c=[],f=!1;n.usage=(t,e)=>null===t?(f=!0,c=[],n):(f=!1,c.push([t,e||""]),n),n.getUsage=()=>c,n.getUsageDisabled=()=>f,n.getPositionalGroupName=()=>i("Positionals:");let d=[];n.example=(t,e)=>{d.push([t,e||""])};let u=[];n.command=function(t,e,s,i,n=!1){s&&(u=u.map((t=>(t[2]=!1,t)))),u.push([t,e||"",s,i,n])},n.getCommands=()=>u;let p={};n.describe=function(t,e){Array.isArray(t)?t.forEach((t=>{n.describe(t,e)})):"object"==typeof t?Object.keys(t).forEach((e=>{n.describe(e,t[e])})):p[t]=e},n.getDescriptions=()=>p;let m=[];n.epilog=t=>{m.push(t)};let y,b=!1;n.wrap=t=>{b=!0,y=t},n.getWrap=()=>s.getEnv("YARGS_DISABLE_WRAP")?null:(b||(y=function(){const t=80;return s.process.stdColumns?Math.min(t,s.process.stdColumns):t}(),b=!0),y);const v="__yargsString__:";function O(t,e,i){let n=0;return Array.isArray(t)||(t=Object.values(t).map((t=>[t]))),t.forEach((t=>{n=Math.max(s.stringWidth(i?`${i} ${I(t[0])}`:I(t[0]))+$(t[0]),n)})),e&&(n=Math.min(n,parseInt((.5*e).toString(),10))),n}let w;function C(e){return t.getOptions().hiddenOptions.indexOf(e)<0||t.parsed.argv[t.getOptions().showHiddenOpt]}function j(t,e){let s=`[${i("default:")} `;if(void 0===t&&!e)return null;if(e)s+=e;else switch(typeof t){case"string":s+=`"${t}"`;break;case"object":s+=JSON.stringify(t);break;default:s+=t}return`${s}]`}n.deferY18nLookup=t=>v+t,n.help=function(){if(w)return w;!function(){const e=t.getDemandedOptions(),s=t.getOptions();(Object.keys(s.alias)||[]).forEach((i=>{s.alias[i].forEach((r=>{p[r]&&n.describe(i,p[r]),r in e&&t.demandOption(i,e[r]),s.boolean.includes(r)&&t.boolean(i),s.count.includes(r)&&t.count(i),s.string.includes(r)&&t.string(i),s.normalize.includes(r)&&t.normalize(i),s.array.includes(r)&&t.array(i),s.number.includes(r)&&t.number(i)}))}))}();const e=t.customScriptName?t.$0:s.path.basename(t.$0),r=t.getDemandedOptions(),o=t.getDemandedCommands(),a=t.getDeprecatedOptions(),h=t.getGroups(),l=t.getOptions();let g=[];g=g.concat(Object.keys(p)),g=g.concat(Object.keys(r)),g=g.concat(Object.keys(o)),g=g.concat(Object.keys(l.default)),g=g.filter(C),g=Object.keys(g.reduce(((t,e)=>("_"!==e&&(t[e]=!0),t)),{}));const y=n.getWrap(),b=s.cliui({width:y,wrap:!!y});if(!f)if(c.length)c.forEach((t=>{b.div({text:`${t[0].replace(/\$0/g,e)}`}),t[1]&&b.div({text:`${t[1]}`,padding:[1,0,0,0]})})),b.div();else if(u.length){let t=null;t=o._?`${e} <${i("command")}>\n`:`${e} [${i("command")}]\n`,b.div(`${t}`)}if(u.length>1||1===u.length&&!u[0][2]){b.div(i("Commands:"));const s=t.getInternalMethods().getContext(),n=s.commands.length?`${s.commands.join(" ")} `:"";!0===t.getInternalMethods().getParserConfiguration()["sort-commands"]&&(u=u.sort(((t,e)=>t[0].localeCompare(e[0]))));const r=e?`${e} `:"";u.forEach((t=>{const s=`${r}${n}${t[0].replace(/^\$0 ?/,"")}`;b.span({text:s,padding:[0,2,0,2],width:O(u,y,`${e}${n}`)+4},{text:t[1]});const o=[];t[2]&&o.push(`[${i("default")}]`),t[3]&&t[3].length&&o.push(`[${i("aliases:")} ${t[3].join(", ")}]`),t[4]&&("string"==typeof t[4]?o.push(`[${i("deprecated: %s",t[4])}]`):o.push(`[${i("deprecated")}]`)),o.length?b.div({text:o.join(" "),padding:[0,0,0,2],align:"right"}):b.div()})),b.div()}const M=(Object.keys(l.alias)||[]).concat(Object.keys(t.parsed.newAliases)||[]);g=g.filter((e=>!t.parsed.newAliases[e]&&M.every((t=>-1===(l.alias[t]||[]).indexOf(e)))));const _=i("Options:");h[_]||(h[_]=[]),function(t,e,s,i){let n=[],r=null;Object.keys(s).forEach((t=>{n=n.concat(s[t])})),t.forEach((t=>{r=[t].concat(e[t]),r.some((t=>-1!==n.indexOf(t)))||s[i].push(t)}))}(g,l.alias,h,_);const k=t=>/^--/.test(I(t)),x=Object.keys(h).filter((t=>h[t].length>0)).map((t=>({groupName:t,normalizedKeys:h[t].filter(C).map((t=>{if(M.includes(t))return t;for(let e,s=0;void 0!==(e=M[s]);s++)if((l.alias[e]||[]).includes(t))return e;return t}))}))).filter((({normalizedKeys:t})=>t.length>0)).map((({groupName:t,normalizedKeys:e})=>{const s=e.reduce(((e,s)=>(e[s]=[s].concat(l.alias[s]||[]).map((e=>t===n.getPositionalGroupName()?e:(/^[0-9]$/.test(e)?l.boolean.includes(s)?"-":"--":e.length>1?"--":"-")+e)).sort(((t,e)=>k(t)===k(e)?0:k(t)?1:-1)).join(", "),e)),{});return{groupName:t,normalizedKeys:e,switches:s}}));if(x.filter((({groupName:t})=>t!==n.getPositionalGroupName())).some((({normalizedKeys:t,switches:e})=>!t.every((t=>k(e[t])))))&&x.filter((({groupName:t})=>t!==n.getPositionalGroupName())).forEach((({normalizedKeys:t,switches:e})=>{t.forEach((t=>{var s,i;k(e[t])&&(e[t]=(s=e[t],i=4,S(s)?{text:s.text,indentation:s.indentation+i}:{text:s,indentation:i}))}))})),x.forEach((({groupName:e,normalizedKeys:s,switches:o})=>{b.div(e),s.forEach((e=>{const s=o[e];let h=p[e]||"",c=null;h.includes(v)&&(h=i(h.substring(16))),l.boolean.includes(e)&&(c=`[${i("boolean")}]`),l.count.includes(e)&&(c=`[${i("count")}]`),l.string.includes(e)&&(c=`[${i("string")}]`),l.normalize.includes(e)&&(c=`[${i("string")}]`),l.array.includes(e)&&(c=`[${i("array")}]`),l.number.includes(e)&&(c=`[${i("number")}]`);const f=[e in a?(d=a[e],"string"==typeof d?`[${i("deprecated: %s",d)}]`:`[${i("deprecated")}]`):null,c,e in r?`[${i("required")}]`:null,l.choices&&l.choices[e]?`[${i("choices:")} ${n.stringifiedValues(l.choices[e])}]`:null,j(l.default[e],l.defaultDescription[e])].filter(Boolean).join(" ");var d;b.span({text:I(s),padding:[0,2,0,2+$(s)],width:O(o,y)+4},h);const u=!0===t.getInternalMethods().getUsageConfiguration()["hide-types"];f&&!u?b.div({text:f,padding:[0,0,0,2],align:"right"}):b.div()})),b.div()})),d.length&&(b.div(i("Examples:")),d.forEach((t=>{t[0]=t[0].replace(/\$0/g,e)})),d.forEach((t=>{""===t[1]?b.div({text:t[0],padding:[0,2,0,2]}):b.div({text:t[0],padding:[0,2,0,2],width:O(d,y)+4},{text:t[1]})})),b.div()),m.length>0){const t=m.map((t=>t.replace(/\$0/g,e))).join("\n");b.div(`${t}\n`)}return b.toString().replace(/\s*$/,"")},n.cacheHelpMessage=function(){w=this.help()},n.clearCachedHelpMessage=function(){w=void 0},n.hasCachedHelpMessage=function(){return!!w},n.showHelp=e=>{const s=t.getInternalMethods().getLoggerInstance();e||(e="error");("function"==typeof e?e:s[e])(n.help())},n.functionDescription=t=>["(",t.name?s.Parser.decamelize(t.name,"-"):i("generated-value"),")"].join(""),n.stringifiedValues=function(t,e){let s="";const i=e||", ",n=[].concat(t);return t&&n.length?(n.forEach((t=>{s.length&&(s+=i),s+=JSON.stringify(t)})),s):s};let M=null;n.version=t=>{M=t},n.showVersion=e=>{const s=t.getInternalMethods().getLoggerInstance();e||(e="error");("function"==typeof e?e:s[e])(M)},n.reset=function(t){return o=null,l=!1,c=[],f=!1,m=[],d=[],u=[],p=g(p,(e=>!t[e])),n};const _=[];return n.freeze=function(){_.push({failMessage:o,failureOutput:l,usages:c,usageDisabled:f,epilogs:m,examples:d,commands:u,descriptions:p})},n.unfreeze=function(t=!1){const e=_.pop();e&&(t?(p={...e.descriptions,...p},u=[...e.commands,...u],c=[...e.usages,...c],d=[...e.examples,...d],m=[...e.epilogs,...m]):({failMessage:o,failureOutput:l,usages:c,usageDisabled:f,epilogs:m,examples:d,commands:u,descriptions:p}=e))},n}function S(t){return"object"==typeof t}function $(t){return S(t)?t.indentation:0}function I(t){return S(t)?t.text:t}class D{constructor(t,e,s,i){var n,r,o;this.yargs=t,this.usage=e,this.command=s,this.shim=i,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=null!==(o=(null===(n=this.shim.getEnv("SHELL"))||void 0===n?void 0:n.includes("zsh"))||(null===(r=this.shim.getEnv("ZSH_NAME"))||void 0===r?void 0:r.includes("zsh")))&&void 0!==o&&o}defaultCompletion(t,e,s,i){const n=this.command.getCommandHandlers();for(let e=0,s=t.length;e{const i=o(s[0]).cmd;if(-1===e.indexOf(i))if(this.zshShell){const e=s[1]||"";t.push(i.replace(/:/g,"\\:")+":"+e)}else t.push(i)}))}optionCompletions(t,e,s,i){if((i.match(/^-/)||""===i&&0===t.length)&&!this.previousArgHasChoices(e)){const s=this.yargs.getOptions(),n=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(s.key).forEach((r=>{const o=!!s.configuration["boolean-negation"]&&s.boolean.includes(r);n.includes(r)||s.hiddenOptions.includes(r)||this.argsContainKey(e,r,o)||this.completeOptionKey(r,t,i,o&&!!s.default[r])}))}}choicesFromOptionsCompletions(t,e,s,i){if(this.previousArgHasChoices(e)){const s=this.getPreviousArgChoices(e);s&&s.length>0&&t.push(...s.map((t=>t.replace(/:/g,"\\:"))))}}choicesFromPositionalsCompletions(t,e,s,i){if(""===i&&t.length>0&&this.previousArgHasChoices(e))return;const n=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],r=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),o=n[s._.length-r-1];if(!o)return;const a=this.yargs.getOptions().choices[o]||[];for(const e of a)e.startsWith(i)&&t.push(e.replace(/:/g,"\\:"))}getPreviousArgChoices(t){if(t.length<1)return;let e=t[t.length-1],s="";if(!e.startsWith("-")&&t.length>1&&(s=e,e=t[t.length-2]),!e.startsWith("-"))return;const i=e.replace(/^-+/,""),n=this.yargs.getOptions(),r=[i,...this.yargs.getAliases()[i]||[]];let o;for(const t of r)if(Object.prototype.hasOwnProperty.call(n.key,t)&&Array.isArray(n.choices[t])){o=n.choices[t];break}return o?o.filter((t=>!s||t.startsWith(s))):void 0}previousArgHasChoices(t){const e=this.getPreviousArgChoices(t);return void 0!==e&&e.length>0}argsContainKey(t,e,s){const i=e=>-1!==t.indexOf((/^[^0-9]$/.test(e)?"-":"--")+e);if(i(e))return!0;if(s&&i(`no-${e}`))return!0;if(this.aliases)for(const t of this.aliases[e])if(i(t))return!0;return!1}completeOptionKey(t,e,s,i){var n,r,o,a;let h=t;if(this.zshShell){const e=this.usage.getDescriptions(),s=null===(r=null===(n=null==this?void 0:this.aliases)||void 0===n?void 0:n[t])||void 0===r?void 0:r.find((t=>{const s=e[t];return"string"==typeof s&&s.length>0})),i=s?e[s]:void 0,l=null!==(a=null!==(o=e[t])&&void 0!==o?o:i)&&void 0!==a?a:"";h=`${t.replace(/:/g,"\\:")}:${l.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}const l=!/^--/.test(s)&&(t=>/^[^0-9]$/.test(t))(t)?"-":"--";e.push(l+h),i&&e.push(l+"no-"+h)}customCompletion(t,e,s,i){if(d(this.customCompletionFunction,null,this.shim),this.customCompletionFunction.length<3){const t=this.customCompletionFunction(s,e);return f(t)?t.then((t=>{this.shim.process.nextTick((()=>{i(null,t)}))})).catch((t=>{this.shim.process.nextTick((()=>{i(t,void 0)}))})):i(null,t)}return function(t){return t.length>3}(this.customCompletionFunction)?this.customCompletionFunction(s,e,((n=i)=>this.defaultCompletion(t,e,s,n)),(t=>{i(null,t)})):this.customCompletionFunction(s,e,(t=>{i(null,t)}))}getCompletion(t,e){const s=t.length?t[t.length-1]:"",i=this.yargs.parse(t,!0),n=this.customCompletionFunction?i=>this.customCompletion(t,i,s,e):i=>this.defaultCompletion(t,i,s,e);return f(i)?i.then(n):n(i)}generateCompletionScript(t,e){let s=this.zshShell?'#compdef {{app_name}}\n###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local reply\n local si=$IFS\n IFS=$\'\n\' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "${words[@]}"))\n IFS=$si\n _describe \'values\' reply\n}\ncompdef _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n':'###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local cur_word args type_list\n\n cur_word="${COMP_WORDS[COMP_CWORD]}"\n args=("${COMP_WORDS[@]}")\n\n # ask yargs to generate completions.\n type_list=$({{app_path}} --get-yargs-completions "${args[@]}")\n\n COMPREPLY=( $(compgen -W "${type_list}" -- ${cur_word}) )\n\n # if no match was found, fall back to filename completion\n if [ ${#COMPREPLY[@]} -eq 0 ]; then\n COMPREPLY=()\n fi\n\n return 0\n}\ncomplete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n';const i=this.shim.path.basename(t);return t.match(/\.js$/)&&(t=`./${t}`),s=s.replace(/{{app_name}}/g,i),s=s.replace(/{{completion_command}}/g,e),s.replace(/{{app_path}}/g,t)}registerFunction(t){this.customCompletionFunction=t}setParsed(t){this.aliases=t.aliases}}function N(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;const s=[];let i,n;for(i=0;i<=e.length;i++)s[i]=[i];for(n=0;n<=t.length;n++)s[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)===t.charAt(n-1)?s[i][n]=s[i-1][n-1]:i>1&&n>1&&e.charAt(i-2)===t.charAt(n-1)&&e.charAt(i-1)===t.charAt(n-2)?s[i][n]=s[i-2][n-2]+1:s[i][n]=Math.min(s[i-1][n-1]+1,Math.min(s[i][n-1]+1,s[i-1][n]+1));return s[e.length][t.length]}const H=["$0","--","_"];var z,W,q,U,F,L,V,G,R,T,B,Y,K,J,Z,X,Q,tt,et,st,it,nt,rt,ot,at,ht,lt,ct,ft,dt,ut,pt,gt,mt,yt;const bt=Symbol("copyDoubleDash"),vt=Symbol("copyDoubleDash"),Ot=Symbol("deleteFromParserHintObject"),wt=Symbol("emitWarning"),Ct=Symbol("freeze"),jt=Symbol("getDollarZero"),Mt=Symbol("getParserConfiguration"),_t=Symbol("getUsageConfiguration"),kt=Symbol("guessLocale"),xt=Symbol("guessVersion"),Et=Symbol("parsePositionalNumbers"),At=Symbol("pkgUp"),Pt=Symbol("populateParserHintArray"),St=Symbol("populateParserHintSingleValueDictionary"),$t=Symbol("populateParserHintArrayDictionary"),It=Symbol("populateParserHintDictionary"),Dt=Symbol("sanitizeKey"),Nt=Symbol("setKey"),Ht=Symbol("unfreeze"),zt=Symbol("validateAsync"),Wt=Symbol("getCommandInstance"),qt=Symbol("getContext"),Ut=Symbol("getHasOutput"),Ft=Symbol("getLoggerInstance"),Lt=Symbol("getParseContext"),Vt=Symbol("getUsageInstance"),Gt=Symbol("getValidationInstance"),Rt=Symbol("hasParseCallback"),Tt=Symbol("isGlobalContext"),Bt=Symbol("postProcess"),Yt=Symbol("rebase"),Kt=Symbol("reset"),Jt=Symbol("runYargsParserAndExecuteCommands"),Zt=Symbol("runValidation"),Xt=Symbol("setHasOutput"),Qt=Symbol("kTrackManuallySetKeys");class te{constructor(t=[],e,s,i){this.customScriptName=!1,this.parsed=!1,z.set(this,void 0),W.set(this,void 0),q.set(this,{commands:[],fullCommands:[]}),U.set(this,null),F.set(this,null),L.set(this,"show-hidden"),V.set(this,null),G.set(this,!0),R.set(this,{}),T.set(this,!0),B.set(this,[]),Y.set(this,void 0),K.set(this,{}),J.set(this,!1),Z.set(this,null),X.set(this,!0),Q.set(this,void 0),tt.set(this,""),et.set(this,void 0),st.set(this,void 0),it.set(this,{}),nt.set(this,null),rt.set(this,null),ot.set(this,{}),at.set(this,{}),ht.set(this,void 0),lt.set(this,!1),ct.set(this,void 0),ft.set(this,!1),dt.set(this,!1),ut.set(this,!1),pt.set(this,void 0),gt.set(this,{}),mt.set(this,null),yt.set(this,void 0),O(this,ct,i,"f"),O(this,ht,t,"f"),O(this,W,e,"f"),O(this,st,s,"f"),O(this,Y,new w(this),"f"),this.$0=this[jt](),this[Kt](),O(this,z,v(this,z,"f"),"f"),O(this,pt,v(this,pt,"f"),"f"),O(this,yt,v(this,yt,"f"),"f"),O(this,et,v(this,et,"f"),"f"),v(this,et,"f").showHiddenOpt=v(this,L,"f"),O(this,Q,this[vt](),"f")}addHelpOpt(t,e){return h("[string|boolean] [string]",[t,e],arguments.length),v(this,Z,"f")&&(this[Ot](v(this,Z,"f")),O(this,Z,null,"f")),!1===t&&void 0===e||(O(this,Z,"string"==typeof t?t:"help","f"),this.boolean(v(this,Z,"f")),this.describe(v(this,Z,"f"),e||v(this,pt,"f").deferY18nLookup("Show help"))),this}help(t,e){return this.addHelpOpt(t,e)}addShowHiddenOpt(t,e){if(h("[string|boolean] [string]",[t,e],arguments.length),!1===t&&void 0===e)return this;const s="string"==typeof t?t:v(this,L,"f");return this.boolean(s),this.describe(s,e||v(this,pt,"f").deferY18nLookup("Show hidden options")),v(this,et,"f").showHiddenOpt=s,this}showHidden(t,e){return this.addShowHiddenOpt(t,e)}alias(t,e){return h(" [string|array]",[t,e],arguments.length),this[$t](this.alias.bind(this),"alias",t,e),this}array(t){return h("",[t],arguments.length),this[Pt]("array",t),this[Qt](t),this}boolean(t){return h("",[t],arguments.length),this[Pt]("boolean",t),this[Qt](t),this}check(t,e){return h(" [boolean]",[t,e],arguments.length),this.middleware(((e,s)=>j((()=>t(e,s.getOptions())),(s=>(s?("string"==typeof s||s instanceof Error)&&v(this,pt,"f").fail(s.toString(),s):v(this,pt,"f").fail(v(this,ct,"f").y18n.__("Argument check failed: %s",t.toString())),e)),(t=>(v(this,pt,"f").fail(t.message?t.message:t.toString(),t),e)))),!1,e),this}choices(t,e){return h(" [string|array]",[t,e],arguments.length),this[$t](this.choices.bind(this),"choices",t,e),this}coerce(t,s){if(h(" [function]",[t,s],arguments.length),Array.isArray(t)){if(!s)throw new e("coerce callback must be provided");for(const e of t)this.coerce(e,s);return this}if("object"==typeof t){for(const e of Object.keys(t))this.coerce(e,t[e]);return this}if(!s)throw new e("coerce callback must be provided");return v(this,et,"f").key[t]=!0,v(this,Y,"f").addCoerceMiddleware(((i,n)=>{let r;return Object.prototype.hasOwnProperty.call(i,t)?j((()=>(r=n.getAliases(),s(i[t]))),(e=>{i[t]=e;const s=n.getInternalMethods().getParserConfiguration()["strip-aliased"];if(r[t]&&!0!==s)for(const s of r[t])i[s]=e;return i}),(t=>{throw new e(t.message)})):i}),t),this}conflicts(t,e){return h(" [string|array]",[t,e],arguments.length),v(this,yt,"f").conflicts(t,e),this}config(t="config",e,s){return h("[object|string] [string|function] [function]",[t,e,s],arguments.length),"object"!=typeof t||Array.isArray(t)?("function"==typeof e&&(s=e,e=void 0),this.describe(t,e||v(this,pt,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(t)?t:[t]).forEach((t=>{v(this,et,"f").config[t]=s||!0})),this):(t=n(t,v(this,W,"f"),this[Mt]()["deep-merge-config"]||!1,v(this,ct,"f")),v(this,et,"f").configObjects=(v(this,et,"f").configObjects||[]).concat(t),this)}completion(t,e,s){return h("[string] [string|boolean|function] [function]",[t,e,s],arguments.length),"function"==typeof e&&(s=e,e=void 0),O(this,F,t||v(this,F,"f")||"completion","f"),e||!1===e||(e="generate completion script"),this.command(v(this,F,"f"),e),s&&v(this,U,"f").registerFunction(s),this}command(t,e,s,i,n,r){return h(" [string|boolean] [function|object] [function] [array] [boolean|string]",[t,e,s,i,n,r],arguments.length),v(this,z,"f").addHandler(t,e,s,i,n,r),this}commands(t,e,s,i,n,r){return this.command(t,e,s,i,n,r)}commandDir(t,e){h(" [object]",[t,e],arguments.length);const s=v(this,st,"f")||v(this,ct,"f").require;return v(this,z,"f").addDirectory(t,s,v(this,ct,"f").getCallerFile(),e),this}count(t){return h("",[t],arguments.length),this[Pt]("count",t),this[Qt](t),this}default(t,e,s){return h(" [*] [string]",[t,e,s],arguments.length),s&&(u(t,v(this,ct,"f")),v(this,et,"f").defaultDescription[t]=s),"function"==typeof e&&(u(t,v(this,ct,"f")),v(this,et,"f").defaultDescription[t]||(v(this,et,"f").defaultDescription[t]=v(this,pt,"f").functionDescription(e)),e=e.call()),this[St](this.default.bind(this),"default",t,e),this}defaults(t,e,s){return this.default(t,e,s)}demandCommand(t=1,e,s,i){return h("[number] [number|string] [string|null|undefined] [string|null|undefined]",[t,e,s,i],arguments.length),"number"!=typeof e&&(s=e,e=1/0),this.global("_",!1),v(this,et,"f").demandedCommands._={min:t,max:e,minMsg:s,maxMsg:i},this}demand(t,e,s){return Array.isArray(e)?(e.forEach((t=>{d(s,!0,v(this,ct,"f")),this.demandOption(t,s)})),e=1/0):"number"!=typeof e&&(s=e,e=1/0),"number"==typeof t?(d(s,!0,v(this,ct,"f")),this.demandCommand(t,e,s,s)):Array.isArray(t)?t.forEach((t=>{d(s,!0,v(this,ct,"f")),this.demandOption(t,s)})):"string"==typeof s?this.demandOption(t,s):!0!==s&&void 0!==s||this.demandOption(t),this}demandOption(t,e){return h(" [string]",[t,e],arguments.length),this[St](this.demandOption.bind(this),"demandedOptions",t,e),this}deprecateOption(t,e){return h(" [string|boolean]",[t,e],arguments.length),v(this,et,"f").deprecatedOptions[t]=e,this}describe(t,e){return h(" [string]",[t,e],arguments.length),this[Nt](t,!0),v(this,pt,"f").describe(t,e),this}detectLocale(t){return h("",[t],arguments.length),O(this,G,t,"f"),this}env(t){return h("[string|boolean]",[t],arguments.length),!1===t?delete v(this,et,"f").envPrefix:v(this,et,"f").envPrefix=t||"",this}epilogue(t){return h("",[t],arguments.length),v(this,pt,"f").epilog(t),this}epilog(t){return this.epilogue(t)}example(t,e){return h(" [string]",[t,e],arguments.length),Array.isArray(t)?t.forEach((t=>this.example(...t))):v(this,pt,"f").example(t,e),this}exit(t,e){O(this,J,!0,"f"),O(this,V,e,"f"),v(this,T,"f")&&v(this,ct,"f").process.exit(t)}exitProcess(t=!0){return h("[boolean]",[t],arguments.length),O(this,T,t,"f"),this}fail(t){if(h("",[t],arguments.length),"boolean"==typeof t&&!1!==t)throw new e("Invalid first argument. Expected function or boolean 'false'");return v(this,pt,"f").failFn(t),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(t,e){return h(" [function]",[t,e],arguments.length),e?v(this,U,"f").getCompletion(t,e):new Promise(((e,s)=>{v(this,U,"f").getCompletion(t,((t,i)=>{t?s(t):e(i)}))}))}getDemandedOptions(){return h([],0),v(this,et,"f").demandedOptions}getDemandedCommands(){return h([],0),v(this,et,"f").demandedCommands}getDeprecatedOptions(){return h([],0),v(this,et,"f").deprecatedOptions}getDetectLocale(){return v(this,G,"f")}getExitProcess(){return v(this,T,"f")}getGroups(){return Object.assign({},v(this,K,"f"),v(this,at,"f"))}getHelp(){if(O(this,J,!0,"f"),!v(this,pt,"f").hasCachedHelpMessage()){if(!this.parsed){const t=this[Jt](v(this,ht,"f"),void 0,void 0,0,!0);if(f(t))return t.then((()=>v(this,pt,"f").help()))}const t=v(this,z,"f").runDefaultBuilderOn(this);if(f(t))return t.then((()=>v(this,pt,"f").help()))}return Promise.resolve(v(this,pt,"f").help())}getOptions(){return v(this,et,"f")}getStrict(){return v(this,ft,"f")}getStrictCommands(){return v(this,dt,"f")}getStrictOptions(){return v(this,ut,"f")}global(t,e){return h(" [boolean]",[t,e],arguments.length),t=[].concat(t),!1!==e?v(this,et,"f").local=v(this,et,"f").local.filter((e=>-1===t.indexOf(e))):t.forEach((t=>{v(this,et,"f").local.includes(t)||v(this,et,"f").local.push(t)})),this}group(t,e){h(" ",[t,e],arguments.length);const s=v(this,at,"f")[e]||v(this,K,"f")[e];v(this,at,"f")[e]&&delete v(this,at,"f")[e];const i={};return v(this,K,"f")[e]=(s||[]).concat(t).filter((t=>!i[t]&&(i[t]=!0))),this}hide(t){return h("",[t],arguments.length),v(this,et,"f").hiddenOptions.push(t),this}implies(t,e){return h(" [number|string|array]",[t,e],arguments.length),v(this,yt,"f").implies(t,e),this}locale(t){return h("[string]",[t],arguments.length),void 0===t?(this[kt](),v(this,ct,"f").y18n.getLocale()):(O(this,G,!1,"f"),v(this,ct,"f").y18n.setLocale(t),this)}middleware(t,e,s){return v(this,Y,"f").addMiddleware(t,!!e,s)}nargs(t,e){return h(" [number]",[t,e],arguments.length),this[St](this.nargs.bind(this),"narg",t,e),this}normalize(t){return h("",[t],arguments.length),this[Pt]("normalize",t),this}number(t){return h("",[t],arguments.length),this[Pt]("number",t),this[Qt](t),this}option(t,e){if(h(" [object]",[t,e],arguments.length),"object"==typeof t)Object.keys(t).forEach((e=>{this.options(e,t[e])}));else{"object"!=typeof e&&(e={}),this[Qt](t),!v(this,mt,"f")||"version"!==t&&"version"!==(null==e?void 0:e.alias)||this[wt](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join("\n"),void 0,"versionWarning"),v(this,et,"f").key[t]=!0,e.alias&&this.alias(t,e.alias);const s=e.deprecate||e.deprecated;s&&this.deprecateOption(t,s);const i=e.demand||e.required||e.require;i&&this.demand(t,i),e.demandOption&&this.demandOption(t,"string"==typeof e.demandOption?e.demandOption:void 0),e.conflicts&&this.conflicts(t,e.conflicts),"default"in e&&this.default(t,e.default),void 0!==e.implies&&this.implies(t,e.implies),void 0!==e.nargs&&this.nargs(t,e.nargs),e.config&&this.config(t,e.configParser),e.normalize&&this.normalize(t),e.choices&&this.choices(t,e.choices),e.coerce&&this.coerce(t,e.coerce),e.group&&this.group(t,e.group),(e.boolean||"boolean"===e.type)&&(this.boolean(t),e.alias&&this.boolean(e.alias)),(e.array||"array"===e.type)&&(this.array(t),e.alias&&this.array(e.alias)),(e.number||"number"===e.type)&&(this.number(t),e.alias&&this.number(e.alias)),(e.string||"string"===e.type)&&(this.string(t),e.alias&&this.string(e.alias)),(e.count||"count"===e.type)&&this.count(t),"boolean"==typeof e.global&&this.global(t,e.global),e.defaultDescription&&(v(this,et,"f").defaultDescription[t]=e.defaultDescription),e.skipValidation&&this.skipValidation(t);const n=e.describe||e.description||e.desc,r=v(this,pt,"f").getDescriptions();Object.prototype.hasOwnProperty.call(r,t)&&"string"!=typeof n||this.describe(t,n),e.hidden&&this.hide(t),e.requiresArg&&this.requiresArg(t)}return this}options(t,e){return this.option(t,e)}parse(t,e,s){h("[string|array] [function|boolean|object] [function]",[t,e,s],arguments.length),this[Ct](),void 0===t&&(t=v(this,ht,"f")),"object"==typeof e&&(O(this,rt,e,"f"),e=s),"function"==typeof e&&(O(this,nt,e,"f"),e=!1),e||O(this,ht,t,"f"),v(this,nt,"f")&&O(this,T,!1,"f");const i=this[Jt](t,!!e),n=this.parsed;return v(this,U,"f").setParsed(this.parsed),f(i)?i.then((t=>(v(this,nt,"f")&&v(this,nt,"f").call(this,v(this,V,"f"),t,v(this,tt,"f")),t))).catch((t=>{throw v(this,nt,"f")&&v(this,nt,"f")(t,this.parsed.argv,v(this,tt,"f")),t})).finally((()=>{this[Ht](),this.parsed=n})):(v(this,nt,"f")&&v(this,nt,"f").call(this,v(this,V,"f"),i,v(this,tt,"f")),this[Ht](),this.parsed=n,i)}parseAsync(t,e,s){const i=this.parse(t,e,s);return f(i)?i:Promise.resolve(i)}parseSync(t,s,i){const n=this.parse(t,s,i);if(f(n))throw new e(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return n}parserConfiguration(t){return h("",[t],arguments.length),O(this,it,t,"f"),this}pkgConf(t,e){h(" [string]",[t,e],arguments.length);let s=null;const i=this[At](e||v(this,W,"f"));return i[t]&&"object"==typeof i[t]&&(s=n(i[t],e||v(this,W,"f"),this[Mt]()["deep-merge-config"]||!1,v(this,ct,"f")),v(this,et,"f").configObjects=(v(this,et,"f").configObjects||[]).concat(s)),this}positional(t,e){h(" ",[t,e],arguments.length);const s=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];e=g(e,((t,e)=>!("type"===t&&!["string","number","boolean"].includes(e))&&s.includes(t)));const i=v(this,q,"f").fullCommands[v(this,q,"f").fullCommands.length-1],n=i?v(this,z,"f").cmdToParseOptions(i):{array:[],alias:{},default:{},demand:{}};return p(n).forEach((s=>{const i=n[s];Array.isArray(i)?-1!==i.indexOf(t)&&(e[s]=!0):i[t]&&!(s in e)&&(e[s]=i[t])})),this.group(t,v(this,pt,"f").getPositionalGroupName()),this.option(t,e)}recommendCommands(t=!0){return h("[boolean]",[t],arguments.length),O(this,lt,t,"f"),this}required(t,e,s){return this.demand(t,e,s)}require(t,e,s){return this.demand(t,e,s)}requiresArg(t){return h(" [number]",[t],arguments.length),"string"==typeof t&&v(this,et,"f").narg[t]||this[St](this.requiresArg.bind(this),"narg",t,NaN),this}showCompletionScript(t,e){return h("[string] [string]",[t,e],arguments.length),t=t||this.$0,v(this,Q,"f").log(v(this,U,"f").generateCompletionScript(t,e||v(this,F,"f")||"completion")),this}showHelp(t){if(h("[string|function]",[t],arguments.length),O(this,J,!0,"f"),!v(this,pt,"f").hasCachedHelpMessage()){if(!this.parsed){const e=this[Jt](v(this,ht,"f"),void 0,void 0,0,!0);if(f(e))return e.then((()=>{v(this,pt,"f").showHelp(t)})),this}const e=v(this,z,"f").runDefaultBuilderOn(this);if(f(e))return e.then((()=>{v(this,pt,"f").showHelp(t)})),this}return v(this,pt,"f").showHelp(t),this}scriptName(t){return this.customScriptName=!0,this.$0=t,this}showHelpOnFail(t,e){return h("[boolean|string] [string]",[t,e],arguments.length),v(this,pt,"f").showHelpOnFail(t,e),this}showVersion(t){return h("[string|function]",[t],arguments.length),v(this,pt,"f").showVersion(t),this}skipValidation(t){return h("",[t],arguments.length),this[Pt]("skipValidation",t),this}strict(t){return h("[boolean]",[t],arguments.length),O(this,ft,!1!==t,"f"),this}strictCommands(t){return h("[boolean]",[t],arguments.length),O(this,dt,!1!==t,"f"),this}strictOptions(t){return h("[boolean]",[t],arguments.length),O(this,ut,!1!==t,"f"),this}string(t){return h("",[t],arguments.length),this[Pt]("string",t),this[Qt](t),this}terminalWidth(){return h([],0),v(this,ct,"f").process.stdColumns}updateLocale(t){return this.updateStrings(t)}updateStrings(t){return h("",[t],arguments.length),O(this,G,!1,"f"),v(this,ct,"f").y18n.updateLocale(t),this}usage(t,s,i,n){if(h(" [string|boolean] [function|object] [function]",[t,s,i,n],arguments.length),void 0!==s){if(d(t,null,v(this,ct,"f")),(t||"").match(/^\$0( |$)/))return this.command(t,s,i,n);throw new e(".usage() description must start with $0 if being used as alias for .command()")}return v(this,pt,"f").usage(t),this}usageConfiguration(t){return h("",[t],arguments.length),O(this,gt,t,"f"),this}version(t,e,s){const i="version";if(h("[boolean|string] [string] [string]",[t,e,s],arguments.length),v(this,mt,"f")&&(this[Ot](v(this,mt,"f")),v(this,pt,"f").version(void 0),O(this,mt,null,"f")),0===arguments.length)s=this[xt](),t=i;else if(1===arguments.length){if(!1===t)return this;s=t,t=i}else 2===arguments.length&&(s=e,e=void 0);return O(this,mt,"string"==typeof t?t:i,"f"),e=e||v(this,pt,"f").deferY18nLookup("Show version number"),v(this,pt,"f").version(s||void 0),this.boolean(v(this,mt,"f")),this.describe(v(this,mt,"f"),e),this}wrap(t){return h("",[t],arguments.length),v(this,pt,"f").wrap(t),this}[(z=new WeakMap,W=new WeakMap,q=new WeakMap,U=new WeakMap,F=new WeakMap,L=new WeakMap,V=new WeakMap,G=new WeakMap,R=new WeakMap,T=new WeakMap,B=new WeakMap,Y=new WeakMap,K=new WeakMap,J=new WeakMap,Z=new WeakMap,X=new WeakMap,Q=new WeakMap,tt=new WeakMap,et=new WeakMap,st=new WeakMap,it=new WeakMap,nt=new WeakMap,rt=new WeakMap,ot=new WeakMap,at=new WeakMap,ht=new WeakMap,lt=new WeakMap,ct=new WeakMap,ft=new WeakMap,dt=new WeakMap,ut=new WeakMap,pt=new WeakMap,gt=new WeakMap,mt=new WeakMap,yt=new WeakMap,bt)](t){if(!t._||!t["--"])return t;t._.push.apply(t._,t["--"]);try{delete t["--"]}catch(t){}return t}[vt](){return{log:(...t)=>{this[Rt]()||console.log(...t),O(this,J,!0,"f"),v(this,tt,"f").length&&O(this,tt,v(this,tt,"f")+"\n","f"),O(this,tt,v(this,tt,"f")+t.join(" "),"f")},error:(...t)=>{this[Rt]()||console.error(...t),O(this,J,!0,"f"),v(this,tt,"f").length&&O(this,tt,v(this,tt,"f")+"\n","f"),O(this,tt,v(this,tt,"f")+t.join(" "),"f")}}}[Ot](t){p(v(this,et,"f")).forEach((e=>{if("configObjects"===e)return;const s=v(this,et,"f")[e];Array.isArray(s)?s.includes(t)&&s.splice(s.indexOf(t),1):"object"==typeof s&&delete s[t]})),delete v(this,pt,"f").getDescriptions()[t]}[wt](t,e,s){v(this,R,"f")[s]||(v(this,ct,"f").process.emitWarning(t,e),v(this,R,"f")[s]=!0)}[Ct](){v(this,B,"f").push({options:v(this,et,"f"),configObjects:v(this,et,"f").configObjects.slice(0),exitProcess:v(this,T,"f"),groups:v(this,K,"f"),strict:v(this,ft,"f"),strictCommands:v(this,dt,"f"),strictOptions:v(this,ut,"f"),completionCommand:v(this,F,"f"),output:v(this,tt,"f"),exitError:v(this,V,"f"),hasOutput:v(this,J,"f"),parsed:this.parsed,parseFn:v(this,nt,"f"),parseContext:v(this,rt,"f")}),v(this,pt,"f").freeze(),v(this,yt,"f").freeze(),v(this,z,"f").freeze(),v(this,Y,"f").freeze()}[jt](){let t,e="";return t=/\b(node|iojs|electron)(\.exe)?$/.test(v(this,ct,"f").process.argv()[0])?v(this,ct,"f").process.argv().slice(1,2):v(this,ct,"f").process.argv().slice(0,1),e=t.map((t=>{const e=this[Yt](v(this,W,"f"),t);return t.match(/^(\/|([a-zA-Z]:)?\\)/)&&e.lengthe.includes("package.json")?"package.json":void 0));d(i,void 0,v(this,ct,"f")),s=JSON.parse(v(this,ct,"f").readFileSync(i,"utf8"))}catch(t){}return v(this,ot,"f")[e]=s||{},v(this,ot,"f")[e]}[Pt](t,e){(e=[].concat(e)).forEach((e=>{e=this[Dt](e),v(this,et,"f")[t].push(e)}))}[St](t,e,s,i){this[It](t,e,s,i,((t,e,s)=>{v(this,et,"f")[t][e]=s}))}[$t](t,e,s,i){this[It](t,e,s,i,((t,e,s)=>{v(this,et,"f")[t][e]=(v(this,et,"f")[t][e]||[]).concat(s)}))}[It](t,e,s,i,n){if(Array.isArray(s))s.forEach((e=>{t(e,i)}));else if((t=>"object"==typeof t)(s))for(const e of p(s))t(e,s[e]);else n(e,this[Dt](s),i)}[Dt](t){return"__proto__"===t?"___proto___":t}[Nt](t,e){return this[St](this[Nt].bind(this),"key",t,e),this}[Ht](){var t,e,s,i,n,r,o,a,h,l,c,f;const u=v(this,B,"f").pop();let p;d(u,void 0,v(this,ct,"f")),t=this,e=this,s=this,i=this,n=this,r=this,o=this,a=this,h=this,l=this,c=this,f=this,({options:{set value(e){O(t,et,e,"f")}}.value,configObjects:p,exitProcess:{set value(t){O(e,T,t,"f")}}.value,groups:{set value(t){O(s,K,t,"f")}}.value,output:{set value(t){O(i,tt,t,"f")}}.value,exitError:{set value(t){O(n,V,t,"f")}}.value,hasOutput:{set value(t){O(r,J,t,"f")}}.value,parsed:this.parsed,strict:{set value(t){O(o,ft,t,"f")}}.value,strictCommands:{set value(t){O(a,dt,t,"f")}}.value,strictOptions:{set value(t){O(h,ut,t,"f")}}.value,completionCommand:{set value(t){O(l,F,t,"f")}}.value,parseFn:{set value(t){O(c,nt,t,"f")}}.value,parseContext:{set value(t){O(f,rt,t,"f")}}.value}=u),v(this,et,"f").configObjects=p,v(this,pt,"f").unfreeze(),v(this,yt,"f").unfreeze(),v(this,z,"f").unfreeze(),v(this,Y,"f").unfreeze()}[zt](t,e){return j(e,(e=>(t(e),e)))}getInternalMethods(){return{getCommandInstance:this[Wt].bind(this),getContext:this[qt].bind(this),getHasOutput:this[Ut].bind(this),getLoggerInstance:this[Ft].bind(this),getParseContext:this[Lt].bind(this),getParserConfiguration:this[Mt].bind(this),getUsageConfiguration:this[_t].bind(this),getUsageInstance:this[Vt].bind(this),getValidationInstance:this[Gt].bind(this),hasParseCallback:this[Rt].bind(this),isGlobalContext:this[Tt].bind(this),postProcess:this[Bt].bind(this),reset:this[Kt].bind(this),runValidation:this[Zt].bind(this),runYargsParserAndExecuteCommands:this[Jt].bind(this),setHasOutput:this[Xt].bind(this)}}[Wt](){return v(this,z,"f")}[qt](){return v(this,q,"f")}[Ut](){return v(this,J,"f")}[Ft](){return v(this,Q,"f")}[Lt](){return v(this,rt,"f")||{}}[Vt](){return v(this,pt,"f")}[Gt](){return v(this,yt,"f")}[Rt](){return!!v(this,nt,"f")}[Tt](){return v(this,X,"f")}[Bt](t,e,s,i){if(s)return t;if(f(t))return t;e||(t=this[bt](t));return(this[Mt]()["parse-positional-numbers"]||void 0===this[Mt]()["parse-positional-numbers"])&&(t=this[Et](t)),i&&(t=C(t,this,v(this,Y,"f").getMiddleware(),!1)),t}[Kt](t={}){O(this,et,v(this,et,"f")||{},"f");const e={};e.local=v(this,et,"f").local||[],e.configObjects=v(this,et,"f").configObjects||[];const s={};e.local.forEach((e=>{s[e]=!0,(t[e]||[]).forEach((t=>{s[t]=!0}))})),Object.assign(v(this,at,"f"),Object.keys(v(this,K,"f")).reduce(((t,e)=>{const i=v(this,K,"f")[e].filter((t=>!(t in s)));return i.length>0&&(t[e]=i),t}),{})),O(this,K,{},"f");return["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"].forEach((t=>{e[t]=(v(this,et,"f")[t]||[]).filter((t=>!s[t]))})),["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"].forEach((t=>{e[t]=g(v(this,et,"f")[t],(t=>!s[t]))})),e.envPrefix=v(this,et,"f").envPrefix,O(this,et,e,"f"),O(this,pt,v(this,pt,"f")?v(this,pt,"f").reset(s):P(this,v(this,ct,"f")),"f"),O(this,yt,v(this,yt,"f")?v(this,yt,"f").reset(s):function(t,e,s){const i=s.y18n.__,n=s.y18n.__n,r={nonOptionCount:function(s){const i=t.getDemandedCommands(),r=s._.length+(s["--"]?s["--"].length:0)-t.getInternalMethods().getContext().commands.length;i._&&(ri._.max)&&(ri._.max&&(void 0!==i._.maxMsg?e.fail(i._.maxMsg?i._.maxMsg.replace(/\$0/g,r.toString()).replace(/\$1/,i._.max.toString()):null):e.fail(n("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",r,r.toString(),i._.max.toString()))))},positionalCount:function(t,s){s{H.includes(e)||Object.prototype.hasOwnProperty.call(o,e)||Object.prototype.hasOwnProperty.call(t.getInternalMethods().getParseContext(),e)||r.isValidAndSomeAliasIsNotNew(e,i)||f.push(e)})),h&&(d.commands.length>0||c.length>0||a)&&s._.slice(d.commands.length).forEach((t=>{c.includes(""+t)||f.push(""+t)})),h){const e=(null===(l=t.getDemandedCommands()._)||void 0===l?void 0:l.max)||0,i=d.commands.length+e;i{t=String(t),d.commands.includes(t)||f.includes(t)||f.push(t)}))}f.length&&e.fail(n("Unknown argument: %s","Unknown arguments: %s",f.length,f.map((t=>t.trim()?t:`"${t}"`)).join(", ")))},unknownCommands:function(s){const i=t.getInternalMethods().getCommandInstance().getCommands(),r=[],o=t.getInternalMethods().getContext();return(o.commands.length>0||i.length>0)&&s._.slice(o.commands.length).forEach((t=>{i.includes(""+t)||r.push(""+t)})),r.length>0&&(e.fail(n("Unknown command: %s","Unknown commands: %s",r.length,r.join(", "))),!0)},isValidAndSomeAliasIsNotNew:function(e,s){if(!Object.prototype.hasOwnProperty.call(s,e))return!1;const i=t.parsed.newAliases;return[e,...s[e]].some((t=>!Object.prototype.hasOwnProperty.call(i,t)||!i[e]))},limitedChoices:function(s){const n=t.getOptions(),r={};if(!Object.keys(n.choices).length)return;Object.keys(s).forEach((t=>{-1===H.indexOf(t)&&Object.prototype.hasOwnProperty.call(n.choices,t)&&[].concat(s[t]).forEach((e=>{-1===n.choices[t].indexOf(e)&&void 0!==e&&(r[t]=(r[t]||[]).concat(e))}))}));const o=Object.keys(r);if(!o.length)return;let a=i("Invalid values:");o.forEach((t=>{a+=`\n ${i("Argument: %s, Given: %s, Choices: %s",t,e.stringifiedValues(r[t]),e.stringifiedValues(n.choices[t]))}`})),e.fail(a)}};let o={};function a(t,e){const s=Number(e);return"number"==typeof(e=isNaN(s)?e:s)?e=t._.length>=e:e.match(/^--no-.+/)?(e=e.match(/^--no-(.+)/)[1],e=!Object.prototype.hasOwnProperty.call(t,e)):e=Object.prototype.hasOwnProperty.call(t,e),e}r.implies=function(e,i){h(" [array|number|string]",[e,i],arguments.length),"object"==typeof e?Object.keys(e).forEach((t=>{r.implies(t,e[t])})):(t.global(e),o[e]||(o[e]=[]),Array.isArray(i)?i.forEach((t=>r.implies(e,t))):(d(i,void 0,s),o[e].push(i)))},r.getImplied=function(){return o},r.implications=function(t){const s=[];if(Object.keys(o).forEach((e=>{const i=e;(o[e]||[]).forEach((e=>{let n=i;const r=e;n=a(t,n),e=a(t,e),n&&!e&&s.push(` ${i} -> ${r}`)}))})),s.length){let t=`${i("Implications failed:")}\n`;s.forEach((e=>{t+=e})),e.fail(t)}};let l={};r.conflicts=function(e,s){h(" [array|string]",[e,s],arguments.length),"object"==typeof e?Object.keys(e).forEach((t=>{r.conflicts(t,e[t])})):(t.global(e),l[e]||(l[e]=[]),Array.isArray(s)?s.forEach((t=>r.conflicts(e,t))):l[e].push(s))},r.getConflicting=()=>l,r.conflicting=function(n){Object.keys(n).forEach((t=>{l[t]&&l[t].forEach((s=>{s&&void 0!==n[t]&&void 0!==n[s]&&e.fail(i("Arguments %s and %s are mutually exclusive",t,s))}))})),t.getInternalMethods().getParserConfiguration()["strip-dashed"]&&Object.keys(l).forEach((t=>{l[t].forEach((r=>{r&&void 0!==n[s.Parser.camelCase(t)]&&void 0!==n[s.Parser.camelCase(r)]&&e.fail(i("Arguments %s and %s are mutually exclusive",t,r))}))}))},r.recommendCommands=function(t,s){s=s.sort(((t,e)=>e.length-t.length));let n=null,r=1/0;for(let e,i=0;void 0!==(e=s[i]);i++){const s=N(t,e);s<=3&&s!t[e])),l=g(l,(e=>!t[e])),r};const c=[];return r.freeze=function(){c.push({implied:o,conflicting:l})},r.unfreeze=function(){const t=c.pop();d(t,void 0,s),({implied:o,conflicting:l}=t)},r}(this,v(this,pt,"f"),v(this,ct,"f")),"f"),O(this,z,v(this,z,"f")?v(this,z,"f").reset():function(t,e,s,i){return new _(t,e,s,i)}(v(this,pt,"f"),v(this,yt,"f"),v(this,Y,"f"),v(this,ct,"f")),"f"),v(this,U,"f")||O(this,U,function(t,e,s,i){return new D(t,e,s,i)}(this,v(this,pt,"f"),v(this,z,"f"),v(this,ct,"f")),"f"),v(this,Y,"f").reset(),O(this,F,null,"f"),O(this,tt,"","f"),O(this,V,null,"f"),O(this,J,!1,"f"),this.parsed=!1,this}[Yt](t,e){return v(this,ct,"f").path.relative(t,e)}[Jt](t,s,i,n=0,r=!1){let o=!!i||r;t=t||v(this,ht,"f"),v(this,et,"f").__=v(this,ct,"f").y18n.__,v(this,et,"f").configuration=this[Mt]();const a=!!v(this,et,"f").configuration["populate--"],h=Object.assign({},v(this,et,"f").configuration,{"populate--":!0}),l=v(this,ct,"f").Parser.detailed(t,Object.assign({},v(this,et,"f"),{configuration:{"parse-positional-numbers":!1,...h}})),c=Object.assign(l.argv,v(this,rt,"f"));let d;const u=l.aliases;let p=!1,g=!1;Object.keys(c).forEach((t=>{t===v(this,Z,"f")&&c[t]?p=!0:t===v(this,mt,"f")&&c[t]&&(g=!0)})),c.$0=this.$0,this.parsed=l,0===n&&v(this,pt,"f").clearCachedHelpMessage();try{if(this[kt](),s)return this[Bt](c,a,!!i,!1);if(v(this,Z,"f")){[v(this,Z,"f")].concat(u[v(this,Z,"f")]||[]).filter((t=>t.length>1)).includes(""+c._[c._.length-1])&&(c._.pop(),p=!0)}O(this,X,!1,"f");const h=v(this,z,"f").getCommands(),m=v(this,U,"f").completionKey in c,y=p||m||r;if(c._.length){if(h.length){let t;for(let e,s=n||0;void 0!==c._[s];s++){if(e=String(c._[s]),h.includes(e)&&e!==v(this,F,"f")){const t=v(this,z,"f").runCommand(e,this,l,s+1,r,p||g||r);return this[Bt](t,a,!!i,!1)}if(!t&&e!==v(this,F,"f")){t=e;break}}!v(this,z,"f").hasDefaultCommand()&&v(this,lt,"f")&&t&&!y&&v(this,yt,"f").recommendCommands(t,h)}v(this,F,"f")&&c._.includes(v(this,F,"f"))&&!m&&(v(this,T,"f")&&E(!0),this.showCompletionScript(),this.exit(0))}if(v(this,z,"f").hasDefaultCommand()&&!y){const t=v(this,z,"f").runCommand(null,this,l,0,r,p||g||r);return this[Bt](t,a,!!i,!1)}if(m){v(this,T,"f")&&E(!0);const s=(t=[].concat(t)).slice(t.indexOf(`--${v(this,U,"f").completionKey}`)+1);return v(this,U,"f").getCompletion(s,((t,s)=>{if(t)throw new e(t.message);(s||[]).forEach((t=>{v(this,Q,"f").log(t)})),this.exit(0)})),this[Bt](c,!a,!!i,!1)}if(v(this,J,"f")||(p?(v(this,T,"f")&&E(!0),o=!0,this.showHelp("log"),this.exit(0)):g&&(v(this,T,"f")&&E(!0),o=!0,v(this,pt,"f").showVersion("log"),this.exit(0))),!o&&v(this,et,"f").skipValidation.length>0&&(o=Object.keys(c).some((t=>v(this,et,"f").skipValidation.indexOf(t)>=0&&!0===c[t]))),!o){if(l.error)throw new e(l.error.message);if(!m){const t=this[Zt](u,{},l.error);i||(d=C(c,this,v(this,Y,"f").getMiddleware(),!0)),d=this[zt](t,null!=d?d:c),f(d)&&!i&&(d=d.then((()=>C(c,this,v(this,Y,"f").getMiddleware(),!1))))}}}catch(t){if(!(t instanceof e))throw t;v(this,pt,"f").fail(t.message,t)}return this[Bt](null!=d?d:c,a,!!i,!0)}[Zt](t,s,i,n){const r={...this.getDemandedOptions()};return o=>{if(i)throw new e(i.message);v(this,yt,"f").nonOptionCount(o),v(this,yt,"f").requiredArguments(o,r);let a=!1;v(this,dt,"f")&&(a=v(this,yt,"f").unknownCommands(o)),v(this,ft,"f")&&!a?v(this,yt,"f").unknownArguments(o,t,s,!!n):v(this,ut,"f")&&v(this,yt,"f").unknownArguments(o,t,{},!1,!1),v(this,yt,"f").limitedChoices(o),v(this,yt,"f").implications(o),v(this,yt,"f").conflicting(o)}}[Xt](){O(this,J,!0,"f")}[Qt](t){if("string"==typeof t)v(this,et,"f").key[t]=!0;else for(const e of t)v(this,et,"f").key[e]=!0}}var ee,se;const{readFileSync:ie}=require("fs"),{inspect:ne}=require("util"),{resolve:re}=require("path"),oe=require("y18n"),ae=require("yargs-parser");var he,le={assert:{notStrictEqual:t.notStrictEqual,strictEqual:t.strictEqual},cliui:require("cliui"),findUp:require("escalade/sync"),getEnv:t=>process.env[t],getCallerFile:require("get-caller-file"),getProcessArgvBin:y,inspect:ne,mainFilename:null!==(se=null===(ee=null===require||void 0===require?void 0:require.main)||void 0===ee?void 0:ee.filename)&&void 0!==se?se:process.cwd(),Parser:ae,path:require("path"),process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(t,e)=>process.emitWarning(t,e),execPath:()=>process.execPath,exit:t=>{process.exit(t)},nextTick:process.nextTick,stdColumns:void 0!==process.stdout.columns?process.stdout.columns:null},readFileSync:ie,require:require,requireDirectory:require("require-directory"),stringWidth:require("string-width"),y18n:oe({directory:re(__dirname,"../locales"),updateFiles:!1})};const ce=(null===(he=null===process||void 0===process?void 0:process.env)||void 0===he?void 0:he.YARGS_MIN_NODE_VERSION)?Number(process.env.YARGS_MIN_NODE_VERSION):12;if(process&&process.version){if(Number(process.version.match(/v([^.]+)/)[1]){const i=new te(t,e,s,de);return Object.defineProperty(i,"argv",{get:()=>i.parse(),enumerable:!0}),i.help(),i.version(),i}),argsert:h,isPromise:f,objFilter:g,parseCommand:o,Parser:fe,processArgv:b,YError:e};module.exports=ue; diff --git a/node_modules/yargs/build/lib/argsert.js b/node_modules/yargs/build/lib/argsert.js new file mode 100644 index 0000000..be5b3aa --- /dev/null +++ b/node_modules/yargs/build/lib/argsert.js @@ -0,0 +1,62 @@ +import { YError } from './yerror.js'; +import { parseCommand } from './parse-command.js'; +const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']; +export function argsert(arg1, arg2, arg3) { + function parseArgs() { + return typeof arg1 === 'object' + ? [{ demanded: [], optional: [] }, arg1, arg2] + : [ + parseCommand(`cmd ${arg1}`), + arg2, + arg3, + ]; + } + try { + let position = 0; + const [parsed, callerArguments, _length] = parseArgs(); + const args = [].slice.call(callerArguments); + while (args.length && args[args.length - 1] === undefined) + args.pop(); + const length = _length || args.length; + if (length < parsed.demanded.length) { + throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`); + } + const totalCommands = parsed.demanded.length + parsed.optional.length; + if (length > totalCommands) { + throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`); + } + parsed.demanded.forEach(demanded => { + const arg = args.shift(); + const observedType = guessType(arg); + const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*'); + if (matchingTypes.length === 0) + argumentTypeError(observedType, demanded.cmd, position); + position += 1; + }); + parsed.optional.forEach(optional => { + if (args.length === 0) + return; + const arg = args.shift(); + const observedType = guessType(arg); + const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*'); + if (matchingTypes.length === 0) + argumentTypeError(observedType, optional.cmd, position); + position += 1; + }); + } + catch (err) { + console.warn(err.stack); + } +} +function guessType(arg) { + if (Array.isArray(arg)) { + return 'array'; + } + else if (arg === null) { + return 'null'; + } + return typeof arg; +} +function argumentTypeError(observedType, allowedTypes, position) { + throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`); +} diff --git a/node_modules/yargs/build/lib/command.js b/node_modules/yargs/build/lib/command.js new file mode 100644 index 0000000..47c1ed6 --- /dev/null +++ b/node_modules/yargs/build/lib/command.js @@ -0,0 +1,449 @@ +import { assertNotStrictEqual, } from './typings/common-types.js'; +import { isPromise } from './utils/is-promise.js'; +import { applyMiddleware, commandMiddlewareFactory, } from './middleware.js'; +import { parseCommand } from './parse-command.js'; +import { isYargsInstance, } from './yargs-factory.js'; +import { maybeAsyncResult } from './utils/maybe-async-result.js'; +import whichModule from './utils/which-module.js'; +const DEFAULT_MARKER = /(^\*)|(^\$0)/; +export class CommandInstance { + constructor(usage, validation, globalMiddleware, shim) { + this.requireCache = new Set(); + this.handlers = {}; + this.aliasMap = {}; + this.frozens = []; + this.shim = shim; + this.usage = usage; + this.globalMiddleware = globalMiddleware; + this.validation = validation; + } + addDirectory(dir, req, callerFile, opts) { + opts = opts || {}; + if (typeof opts.recurse !== 'boolean') + opts.recurse = false; + if (!Array.isArray(opts.extensions)) + opts.extensions = ['js']; + const parentVisit = typeof opts.visit === 'function' ? opts.visit : (o) => o; + opts.visit = (obj, joined, filename) => { + const visited = parentVisit(obj, joined, filename); + if (visited) { + if (this.requireCache.has(joined)) + return visited; + else + this.requireCache.add(joined); + this.addHandler(visited); + } + return visited; + }; + this.shim.requireDirectory({ require: req, filename: callerFile }, dir, opts); + } + addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) { + let aliases = []; + const middlewares = commandMiddlewareFactory(commandMiddleware); + handler = handler || (() => { }); + if (Array.isArray(cmd)) { + if (isCommandAndAliases(cmd)) { + [cmd, ...aliases] = cmd; + } + else { + for (const command of cmd) { + this.addHandler(command); + } + } + } + else if (isCommandHandlerDefinition(cmd)) { + let command = Array.isArray(cmd.command) || typeof cmd.command === 'string' + ? cmd.command + : this.moduleName(cmd); + if (cmd.aliases) + command = [].concat(command).concat(cmd.aliases); + this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated); + return; + } + else if (isCommandBuilderDefinition(builder)) { + this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated); + return; + } + if (typeof cmd === 'string') { + const parsedCommand = parseCommand(cmd); + aliases = aliases.map(alias => parseCommand(alias).cmd); + let isDefault = false; + const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => { + if (DEFAULT_MARKER.test(c)) { + isDefault = true; + return false; + } + return true; + }); + if (parsedAliases.length === 0 && isDefault) + parsedAliases.push('$0'); + if (isDefault) { + parsedCommand.cmd = parsedAliases[0]; + aliases = parsedAliases.slice(1); + cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd); + } + aliases.forEach(alias => { + this.aliasMap[alias] = parsedCommand.cmd; + }); + if (description !== false) { + this.usage.command(cmd, description, isDefault, aliases, deprecated); + } + this.handlers[parsedCommand.cmd] = { + original: cmd, + description, + handler, + builder: builder || {}, + middlewares, + deprecated, + demanded: parsedCommand.demanded, + optional: parsedCommand.optional, + }; + if (isDefault) + this.defaultCommand = this.handlers[parsedCommand.cmd]; + } + } + getCommandHandlers() { + return this.handlers; + } + getCommands() { + return Object.keys(this.handlers).concat(Object.keys(this.aliasMap)); + } + hasDefaultCommand() { + return !!this.defaultCommand; + } + runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) { + const commandHandler = this.handlers[command] || + this.handlers[this.aliasMap[command]] || + this.defaultCommand; + const currentContext = yargs.getInternalMethods().getContext(); + const parentCommands = currentContext.commands.slice(); + const isDefaultCommand = !command; + if (command) { + currentContext.commands.push(command); + currentContext.fullCommands.push(commandHandler.original); + } + const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet); + return isPromise(builderResult) + ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs)) + : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs); + } + applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) { + const builder = commandHandler.builder; + let innerYargs = yargs; + if (isCommandBuilderCallback(builder)) { + yargs.getInternalMethods().getUsageInstance().freeze(); + const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet); + if (isPromise(builderOutput)) { + return builderOutput.then(output => { + innerYargs = isYargsInstance(output) ? output : yargs; + return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly); + }); + } + } + else if (isCommandBuilderOptionDefinitions(builder)) { + yargs.getInternalMethods().getUsageInstance().freeze(); + innerYargs = yargs.getInternalMethods().reset(aliases); + Object.keys(commandHandler.builder).forEach(key => { + innerYargs.option(key, builder[key]); + }); + } + return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly); + } + parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) { + if (isDefaultCommand) + innerYargs.getInternalMethods().getUsageInstance().unfreeze(true); + if (this.shouldUpdateUsage(innerYargs)) { + innerYargs + .getInternalMethods() + .getUsageInstance() + .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description); + } + const innerArgv = innerYargs + .getInternalMethods() + .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly); + return isPromise(innerArgv) + ? innerArgv.then(argv => ({ + aliases: innerYargs.parsed.aliases, + innerArgv: argv, + })) + : { + aliases: innerYargs.parsed.aliases, + innerArgv: innerArgv, + }; + } + shouldUpdateUsage(yargs) { + return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() && + yargs.getInternalMethods().getUsageInstance().getUsage().length === 0); + } + usageFromParentCommandsCommandHandler(parentCommands, commandHandler) { + const c = DEFAULT_MARKER.test(commandHandler.original) + ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() + : commandHandler.original; + const pc = parentCommands.filter(c => { + return !DEFAULT_MARKER.test(c); + }); + pc.push(c); + return `$0 ${pc.join(' ')}`; + } + handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) { + if (!yargs.getInternalMethods().getHasOutput()) { + const validation = yargs + .getInternalMethods() + .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand); + innerArgv = maybeAsyncResult(innerArgv, result => { + validation(result); + return result; + }); + } + if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) { + yargs.getInternalMethods().setHasOutput(); + const populateDoubleDash = !!yargs.getOptions().configuration['populate--']; + yargs + .getInternalMethods() + .postProcess(innerArgv, populateDoubleDash, false, false); + innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false); + innerArgv = maybeAsyncResult(innerArgv, result => { + const handlerResult = commandHandler.handler(result); + return isPromise(handlerResult) + ? handlerResult.then(() => result) + : result; + }); + if (!isDefaultCommand) { + yargs.getInternalMethods().getUsageInstance().cacheHelpMessage(); + } + if (isPromise(innerArgv) && + !yargs.getInternalMethods().hasParseCallback()) { + innerArgv.catch(error => { + try { + yargs.getInternalMethods().getUsageInstance().fail(null, error); + } + catch (_err) { + } + }); + } + } + if (!isDefaultCommand) { + currentContext.commands.pop(); + currentContext.fullCommands.pop(); + } + return innerArgv; + } + applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) { + let positionalMap = {}; + if (helpOnly) + return innerArgv; + if (!yargs.getInternalMethods().getHasOutput()) { + positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs); + } + const middlewares = this.globalMiddleware + .getMiddleware() + .slice(0) + .concat(commandHandler.middlewares); + const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true); + return isPromise(maybePromiseArgv) + ? maybePromiseArgv.then(resolvedInnerArgv => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap)) + : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap); + } + populatePositionals(commandHandler, argv, context, yargs) { + argv._ = argv._.slice(context.commands.length); + const demanded = commandHandler.demanded.slice(0); + const optional = commandHandler.optional.slice(0); + const positionalMap = {}; + this.validation.positionalCount(demanded.length, argv._.length); + while (demanded.length) { + const demand = demanded.shift(); + this.populatePositional(demand, argv, positionalMap); + } + while (optional.length) { + const maybe = optional.shift(); + this.populatePositional(maybe, argv, positionalMap); + } + argv._ = context.commands.concat(argv._.map(a => '' + a)); + this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs); + return positionalMap; + } + populatePositional(positional, argv, positionalMap) { + const cmd = positional.cmd[0]; + if (positional.variadic) { + positionalMap[cmd] = argv._.splice(0).map(String); + } + else { + if (argv._.length) + positionalMap[cmd] = [String(argv._.shift())]; + } + } + cmdToParseOptions(cmdString) { + const parseOptions = { + array: [], + default: {}, + alias: {}, + demand: {}, + }; + const parsed = parseCommand(cmdString); + parsed.demanded.forEach(d => { + const [cmd, ...aliases] = d.cmd; + if (d.variadic) { + parseOptions.array.push(cmd); + parseOptions.default[cmd] = []; + } + parseOptions.alias[cmd] = aliases; + parseOptions.demand[cmd] = true; + }); + parsed.optional.forEach(o => { + const [cmd, ...aliases] = o.cmd; + if (o.variadic) { + parseOptions.array.push(cmd); + parseOptions.default[cmd] = []; + } + parseOptions.alias[cmd] = aliases; + }); + return parseOptions; + } + postProcessPositionals(argv, positionalMap, parseOptions, yargs) { + const options = Object.assign({}, yargs.getOptions()); + options.default = Object.assign(parseOptions.default, options.default); + for (const key of Object.keys(parseOptions.alias)) { + options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]); + } + options.array = options.array.concat(parseOptions.array); + options.config = {}; + const unparsed = []; + Object.keys(positionalMap).forEach(key => { + positionalMap[key].map(value => { + if (options.configuration['unknown-options-as-args']) + options.key[key] = true; + unparsed.push(`--${key}`); + unparsed.push(value); + }); + }); + if (!unparsed.length) + return; + const config = Object.assign({}, options.configuration, { + 'populate--': false, + }); + const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, { + configuration: config, + })); + if (parsed.error) { + yargs + .getInternalMethods() + .getUsageInstance() + .fail(parsed.error.message, parsed.error); + } + else { + const positionalKeys = Object.keys(positionalMap); + Object.keys(positionalMap).forEach(key => { + positionalKeys.push(...parsed.aliases[key]); + }); + Object.keys(parsed.argv).forEach(key => { + if (positionalKeys.includes(key)) { + if (!positionalMap[key]) + positionalMap[key] = parsed.argv[key]; + if (!this.isInConfigs(yargs, key) && + !this.isDefaulted(yargs, key) && + Object.prototype.hasOwnProperty.call(argv, key) && + Object.prototype.hasOwnProperty.call(parsed.argv, key) && + (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) { + argv[key] = [].concat(argv[key], parsed.argv[key]); + } + else { + argv[key] = parsed.argv[key]; + } + } + }); + } + } + isDefaulted(yargs, key) { + const { default: defaults } = yargs.getOptions(); + return (Object.prototype.hasOwnProperty.call(defaults, key) || + Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key))); + } + isInConfigs(yargs, key) { + const { configObjects } = yargs.getOptions(); + return (configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) || + configObjects.some(c => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key)))); + } + runDefaultBuilderOn(yargs) { + if (!this.defaultCommand) + return; + if (this.shouldUpdateUsage(yargs)) { + const commandString = DEFAULT_MARKER.test(this.defaultCommand.original) + ? this.defaultCommand.original + : this.defaultCommand.original.replace(/^[^[\]<>]*/, '$0 '); + yargs + .getInternalMethods() + .getUsageInstance() + .usage(commandString, this.defaultCommand.description); + } + const builder = this.defaultCommand.builder; + if (isCommandBuilderCallback(builder)) { + return builder(yargs, true); + } + else if (!isCommandBuilderDefinition(builder)) { + Object.keys(builder).forEach(key => { + yargs.option(key, builder[key]); + }); + } + return undefined; + } + moduleName(obj) { + const mod = whichModule(obj); + if (!mod) + throw new Error(`No command name given for module: ${this.shim.inspect(obj)}`); + return this.commandFromFilename(mod.filename); + } + commandFromFilename(filename) { + return this.shim.path.basename(filename, this.shim.path.extname(filename)); + } + extractDesc({ describe, description, desc }) { + for (const test of [describe, description, desc]) { + if (typeof test === 'string' || test === false) + return test; + assertNotStrictEqual(test, true, this.shim); + } + return false; + } + freeze() { + this.frozens.push({ + handlers: this.handlers, + aliasMap: this.aliasMap, + defaultCommand: this.defaultCommand, + }); + } + unfreeze() { + const frozen = this.frozens.pop(); + assertNotStrictEqual(frozen, undefined, this.shim); + ({ + handlers: this.handlers, + aliasMap: this.aliasMap, + defaultCommand: this.defaultCommand, + } = frozen); + } + reset() { + this.handlers = {}; + this.aliasMap = {}; + this.defaultCommand = undefined; + this.requireCache = new Set(); + return this; + } +} +export function command(usage, validation, globalMiddleware, shim) { + return new CommandInstance(usage, validation, globalMiddleware, shim); +} +export function isCommandBuilderDefinition(builder) { + return (typeof builder === 'object' && + !!builder.builder && + typeof builder.handler === 'function'); +} +function isCommandAndAliases(cmd) { + return cmd.every(c => typeof c === 'string'); +} +export function isCommandBuilderCallback(builder) { + return typeof builder === 'function'; +} +function isCommandBuilderOptionDefinitions(builder) { + return typeof builder === 'object'; +} +export function isCommandHandlerDefinition(cmd) { + return typeof cmd === 'object' && !Array.isArray(cmd); +} diff --git a/node_modules/yargs/build/lib/completion-templates.js b/node_modules/yargs/build/lib/completion-templates.js new file mode 100644 index 0000000..2c4dcb5 --- /dev/null +++ b/node_modules/yargs/build/lib/completion-templates.js @@ -0,0 +1,48 @@ +export const completionShTemplate = `###-begin-{{app_name}}-completions-### +# +# yargs command completion script +# +# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc +# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX. +# +_{{app_name}}_yargs_completions() +{ + local cur_word args type_list + + cur_word="\${COMP_WORDS[COMP_CWORD]}" + args=("\${COMP_WORDS[@]}") + + # ask yargs to generate completions. + type_list=$({{app_path}} --get-yargs-completions "\${args[@]}") + + COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) ) + + # if no match was found, fall back to filename completion + if [ \${#COMPREPLY[@]} -eq 0 ]; then + COMPREPLY=() + fi + + return 0 +} +complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}} +###-end-{{app_name}}-completions-### +`; +export const completionZshTemplate = `#compdef {{app_name}} +###-begin-{{app_name}}-completions-### +# +# yargs command completion script +# +# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc +# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX. +# +_{{app_name}}_yargs_completions() +{ + local reply + local si=$IFS + IFS=$'\n' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}")) + IFS=$si + _describe 'values' reply +} +compdef _{{app_name}}_yargs_completions {{app_name}} +###-end-{{app_name}}-completions-### +`; diff --git a/node_modules/yargs/build/lib/completion.js b/node_modules/yargs/build/lib/completion.js new file mode 100644 index 0000000..cef2bbe --- /dev/null +++ b/node_modules/yargs/build/lib/completion.js @@ -0,0 +1,243 @@ +import { isCommandBuilderCallback } from './command.js'; +import { assertNotStrictEqual } from './typings/common-types.js'; +import * as templates from './completion-templates.js'; +import { isPromise } from './utils/is-promise.js'; +import { parseCommand } from './parse-command.js'; +export class Completion { + constructor(yargs, usage, command, shim) { + var _a, _b, _c; + this.yargs = yargs; + this.usage = usage; + this.command = command; + this.shim = shim; + this.completionKey = 'get-yargs-completions'; + this.aliases = null; + this.customCompletionFunction = null; + this.indexAfterLastReset = 0; + this.zshShell = + (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) || + ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false; + } + defaultCompletion(args, argv, current, done) { + const handlers = this.command.getCommandHandlers(); + for (let i = 0, ii = args.length; i < ii; ++i) { + if (handlers[args[i]] && handlers[args[i]].builder) { + const builder = handlers[args[i]].builder; + if (isCommandBuilderCallback(builder)) { + this.indexAfterLastReset = i + 1; + const y = this.yargs.getInternalMethods().reset(); + builder(y, true); + return y.argv; + } + } + } + const completions = []; + this.commandCompletions(completions, args, current); + this.optionCompletions(completions, args, argv, current); + this.choicesFromOptionsCompletions(completions, args, argv, current); + this.choicesFromPositionalsCompletions(completions, args, argv, current); + done(null, completions); + } + commandCompletions(completions, args, current) { + const parentCommands = this.yargs + .getInternalMethods() + .getContext().commands; + if (!current.match(/^-/) && + parentCommands[parentCommands.length - 1] !== current && + !this.previousArgHasChoices(args)) { + this.usage.getCommands().forEach(usageCommand => { + const commandName = parseCommand(usageCommand[0]).cmd; + if (args.indexOf(commandName) === -1) { + if (!this.zshShell) { + completions.push(commandName); + } + else { + const desc = usageCommand[1] || ''; + completions.push(commandName.replace(/:/g, '\\:') + ':' + desc); + } + } + }); + } + } + optionCompletions(completions, args, argv, current) { + if ((current.match(/^-/) || (current === '' && completions.length === 0)) && + !this.previousArgHasChoices(args)) { + const options = this.yargs.getOptions(); + const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || []; + Object.keys(options.key).forEach(key => { + const negable = !!options.configuration['boolean-negation'] && + options.boolean.includes(key); + const isPositionalKey = positionalKeys.includes(key); + if (!isPositionalKey && + !options.hiddenOptions.includes(key) && + !this.argsContainKey(args, key, negable)) { + this.completeOptionKey(key, completions, current, negable && !!options.default[key]); + } + }); + } + } + choicesFromOptionsCompletions(completions, args, argv, current) { + if (this.previousArgHasChoices(args)) { + const choices = this.getPreviousArgChoices(args); + if (choices && choices.length > 0) { + completions.push(...choices.map(c => c.replace(/:/g, '\\:'))); + } + } + } + choicesFromPositionalsCompletions(completions, args, argv, current) { + if (current === '' && + completions.length > 0 && + this.previousArgHasChoices(args)) { + return; + } + const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || []; + const offset = Math.max(this.indexAfterLastReset, this.yargs.getInternalMethods().getContext().commands.length + + 1); + const positionalKey = positionalKeys[argv._.length - offset - 1]; + if (!positionalKey) { + return; + } + const choices = this.yargs.getOptions().choices[positionalKey] || []; + for (const choice of choices) { + if (choice.startsWith(current)) { + completions.push(choice.replace(/:/g, '\\:')); + } + } + } + getPreviousArgChoices(args) { + if (args.length < 1) + return; + let previousArg = args[args.length - 1]; + let filter = ''; + if (!previousArg.startsWith('-') && args.length > 1) { + filter = previousArg; + previousArg = args[args.length - 2]; + } + if (!previousArg.startsWith('-')) + return; + const previousArgKey = previousArg.replace(/^-+/, ''); + const options = this.yargs.getOptions(); + const possibleAliases = [ + previousArgKey, + ...(this.yargs.getAliases()[previousArgKey] || []), + ]; + let choices; + for (const possibleAlias of possibleAliases) { + if (Object.prototype.hasOwnProperty.call(options.key, possibleAlias) && + Array.isArray(options.choices[possibleAlias])) { + choices = options.choices[possibleAlias]; + break; + } + } + if (choices) { + return choices.filter(choice => !filter || choice.startsWith(filter)); + } + } + previousArgHasChoices(args) { + const choices = this.getPreviousArgChoices(args); + return choices !== undefined && choices.length > 0; + } + argsContainKey(args, key, negable) { + const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? '-' : '--') + s) !== -1; + if (argsContains(key)) + return true; + if (negable && argsContains(`no-${key}`)) + return true; + if (this.aliases) { + for (const alias of this.aliases[key]) { + if (argsContains(alias)) + return true; + } + } + return false; + } + completeOptionKey(key, completions, current, negable) { + var _a, _b, _c, _d; + let keyWithDesc = key; + if (this.zshShell) { + const descs = this.usage.getDescriptions(); + const aliasKey = (_b = (_a = this === null || this === void 0 ? void 0 : this.aliases) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.find(alias => { + const desc = descs[alias]; + return typeof desc === 'string' && desc.length > 0; + }); + const descFromAlias = aliasKey ? descs[aliasKey] : undefined; + const desc = (_d = (_c = descs[key]) !== null && _c !== void 0 ? _c : descFromAlias) !== null && _d !== void 0 ? _d : ''; + keyWithDesc = `${key.replace(/:/g, '\\:')}:${desc + .replace('__yargsString__:', '') + .replace(/(\r\n|\n|\r)/gm, ' ')}`; + } + const startsByTwoDashes = (s) => /^--/.test(s); + const isShortOption = (s) => /^[^0-9]$/.test(s); + const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--'; + completions.push(dashes + keyWithDesc); + if (negable) { + completions.push(dashes + 'no-' + keyWithDesc); + } + } + customCompletion(args, argv, current, done) { + assertNotStrictEqual(this.customCompletionFunction, null, this.shim); + if (isSyncCompletionFunction(this.customCompletionFunction)) { + const result = this.customCompletionFunction(current, argv); + if (isPromise(result)) { + return result + .then(list => { + this.shim.process.nextTick(() => { + done(null, list); + }); + }) + .catch(err => { + this.shim.process.nextTick(() => { + done(err, undefined); + }); + }); + } + return done(null, result); + } + else if (isFallbackCompletionFunction(this.customCompletionFunction)) { + return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => { + done(null, completions); + }); + } + else { + return this.customCompletionFunction(current, argv, completions => { + done(null, completions); + }); + } + } + getCompletion(args, done) { + const current = args.length ? args[args.length - 1] : ''; + const argv = this.yargs.parse(args, true); + const completionFunction = this.customCompletionFunction + ? (argv) => this.customCompletion(args, argv, current, done) + : (argv) => this.defaultCompletion(args, argv, current, done); + return isPromise(argv) + ? argv.then(completionFunction) + : completionFunction(argv); + } + generateCompletionScript($0, cmd) { + let script = this.zshShell + ? templates.completionZshTemplate + : templates.completionShTemplate; + const name = this.shim.path.basename($0); + if ($0.match(/\.js$/)) + $0 = `./${$0}`; + script = script.replace(/{{app_name}}/g, name); + script = script.replace(/{{completion_command}}/g, cmd); + return script.replace(/{{app_path}}/g, $0); + } + registerFunction(fn) { + this.customCompletionFunction = fn; + } + setParsed(parsed) { + this.aliases = parsed.aliases; + } +} +export function completion(yargs, usage, command, shim) { + return new Completion(yargs, usage, command, shim); +} +function isSyncCompletionFunction(completionFunction) { + return completionFunction.length < 3; +} +function isFallbackCompletionFunction(completionFunction) { + return completionFunction.length > 3; +} diff --git a/node_modules/yargs/build/lib/middleware.js b/node_modules/yargs/build/lib/middleware.js new file mode 100644 index 0000000..4e561a7 --- /dev/null +++ b/node_modules/yargs/build/lib/middleware.js @@ -0,0 +1,88 @@ +import { argsert } from './argsert.js'; +import { isPromise } from './utils/is-promise.js'; +export class GlobalMiddleware { + constructor(yargs) { + this.globalMiddleware = []; + this.frozens = []; + this.yargs = yargs; + } + addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) { + argsert(' [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length); + if (Array.isArray(callback)) { + for (let i = 0; i < callback.length; i++) { + if (typeof callback[i] !== 'function') { + throw Error('middleware must be a function'); + } + const m = callback[i]; + m.applyBeforeValidation = applyBeforeValidation; + m.global = global; + } + Array.prototype.push.apply(this.globalMiddleware, callback); + } + else if (typeof callback === 'function') { + const m = callback; + m.applyBeforeValidation = applyBeforeValidation; + m.global = global; + m.mutates = mutates; + this.globalMiddleware.push(callback); + } + return this.yargs; + } + addCoerceMiddleware(callback, option) { + const aliases = this.yargs.getAliases(); + this.globalMiddleware = this.globalMiddleware.filter(m => { + const toCheck = [...(aliases[option] || []), option]; + if (!m.option) + return true; + else + return !toCheck.includes(m.option); + }); + callback.option = option; + return this.addMiddleware(callback, true, true, true); + } + getMiddleware() { + return this.globalMiddleware; + } + freeze() { + this.frozens.push([...this.globalMiddleware]); + } + unfreeze() { + const frozen = this.frozens.pop(); + if (frozen !== undefined) + this.globalMiddleware = frozen; + } + reset() { + this.globalMiddleware = this.globalMiddleware.filter(m => m.global); + } +} +export function commandMiddlewareFactory(commandMiddleware) { + if (!commandMiddleware) + return []; + return commandMiddleware.map(middleware => { + middleware.applyBeforeValidation = false; + return middleware; + }); +} +export function applyMiddleware(argv, yargs, middlewares, beforeValidation) { + return middlewares.reduce((acc, middleware) => { + if (middleware.applyBeforeValidation !== beforeValidation) { + return acc; + } + if (middleware.mutates) { + if (middleware.applied) + return acc; + middleware.applied = true; + } + if (isPromise(acc)) { + return acc + .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)])) + .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj)); + } + else { + const result = middleware(acc, yargs); + return isPromise(result) + ? result.then(middlewareObj => Object.assign(acc, middlewareObj)) + : Object.assign(acc, result); + } + }, argv); +} diff --git a/node_modules/yargs/build/lib/parse-command.js b/node_modules/yargs/build/lib/parse-command.js new file mode 100644 index 0000000..4989f53 --- /dev/null +++ b/node_modules/yargs/build/lib/parse-command.js @@ -0,0 +1,32 @@ +export function parseCommand(cmd) { + const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' '); + const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/); + const bregex = /\.*[\][<>]/g; + const firstCommand = splitCommand.shift(); + if (!firstCommand) + throw new Error(`No command found in: ${cmd}`); + const parsedCommand = { + cmd: firstCommand.replace(bregex, ''), + demanded: [], + optional: [], + }; + splitCommand.forEach((cmd, i) => { + let variadic = false; + cmd = cmd.replace(/\s/g, ''); + if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) + variadic = true; + if (/^\[/.test(cmd)) { + parsedCommand.optional.push({ + cmd: cmd.replace(bregex, '').split('|'), + variadic, + }); + } + else { + parsedCommand.demanded.push({ + cmd: cmd.replace(bregex, '').split('|'), + variadic, + }); + } + }); + return parsedCommand; +} diff --git a/node_modules/yargs/build/lib/typings/common-types.js b/node_modules/yargs/build/lib/typings/common-types.js new file mode 100644 index 0000000..73e1773 --- /dev/null +++ b/node_modules/yargs/build/lib/typings/common-types.js @@ -0,0 +1,9 @@ +export function assertNotStrictEqual(actual, expected, shim, message) { + shim.assert.notStrictEqual(actual, expected, message); +} +export function assertSingleKey(actual, shim) { + shim.assert.strictEqual(typeof actual, 'string'); +} +export function objectKeys(object) { + return Object.keys(object); +} diff --git a/node_modules/yargs/build/lib/typings/yargs-parser-types.js b/node_modules/yargs/build/lib/typings/yargs-parser-types.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/yargs/build/lib/typings/yargs-parser-types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/yargs/build/lib/usage.js b/node_modules/yargs/build/lib/usage.js new file mode 100644 index 0000000..0127c13 --- /dev/null +++ b/node_modules/yargs/build/lib/usage.js @@ -0,0 +1,584 @@ +import { objFilter } from './utils/obj-filter.js'; +import { YError } from './yerror.js'; +import setBlocking from './utils/set-blocking.js'; +function isBoolean(fail) { + return typeof fail === 'boolean'; +} +export function usage(yargs, shim) { + const __ = shim.y18n.__; + const self = {}; + const fails = []; + self.failFn = function failFn(f) { + fails.push(f); + }; + let failMessage = null; + let globalFailMessage = null; + let showHelpOnFail = true; + self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) { + const [enabled, message] = typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2]; + if (yargs.getInternalMethods().isGlobalContext()) { + globalFailMessage = message; + } + failMessage = message; + showHelpOnFail = enabled; + return self; + }; + let failureOutput = false; + self.fail = function fail(msg, err) { + const logger = yargs.getInternalMethods().getLoggerInstance(); + if (fails.length) { + for (let i = fails.length - 1; i >= 0; --i) { + const fail = fails[i]; + if (isBoolean(fail)) { + if (err) + throw err; + else if (msg) + throw Error(msg); + } + else { + fail(msg, err, self); + } + } + } + else { + if (yargs.getExitProcess()) + setBlocking(true); + if (!failureOutput) { + failureOutput = true; + if (showHelpOnFail) { + yargs.showHelp('error'); + logger.error(); + } + if (msg || err) + logger.error(msg || err); + const globalOrCommandFailMessage = failMessage || globalFailMessage; + if (globalOrCommandFailMessage) { + if (msg || err) + logger.error(''); + logger.error(globalOrCommandFailMessage); + } + } + err = err || new YError(msg); + if (yargs.getExitProcess()) { + return yargs.exit(1); + } + else if (yargs.getInternalMethods().hasParseCallback()) { + return yargs.exit(1, err); + } + else { + throw err; + } + } + }; + let usages = []; + let usageDisabled = false; + self.usage = (msg, description) => { + if (msg === null) { + usageDisabled = true; + usages = []; + return self; + } + usageDisabled = false; + usages.push([msg, description || '']); + return self; + }; + self.getUsage = () => { + return usages; + }; + self.getUsageDisabled = () => { + return usageDisabled; + }; + self.getPositionalGroupName = () => { + return __('Positionals:'); + }; + let examples = []; + self.example = (cmd, description) => { + examples.push([cmd, description || '']); + }; + let commands = []; + self.command = function command(cmd, description, isDefault, aliases, deprecated = false) { + if (isDefault) { + commands = commands.map(cmdArray => { + cmdArray[2] = false; + return cmdArray; + }); + } + commands.push([cmd, description || '', isDefault, aliases, deprecated]); + }; + self.getCommands = () => commands; + let descriptions = {}; + self.describe = function describe(keyOrKeys, desc) { + if (Array.isArray(keyOrKeys)) { + keyOrKeys.forEach(k => { + self.describe(k, desc); + }); + } + else if (typeof keyOrKeys === 'object') { + Object.keys(keyOrKeys).forEach(k => { + self.describe(k, keyOrKeys[k]); + }); + } + else { + descriptions[keyOrKeys] = desc; + } + }; + self.getDescriptions = () => descriptions; + let epilogs = []; + self.epilog = msg => { + epilogs.push(msg); + }; + let wrapSet = false; + let wrap; + self.wrap = cols => { + wrapSet = true; + wrap = cols; + }; + self.getWrap = () => { + if (shim.getEnv('YARGS_DISABLE_WRAP')) { + return null; + } + if (!wrapSet) { + wrap = windowWidth(); + wrapSet = true; + } + return wrap; + }; + const deferY18nLookupPrefix = '__yargsString__:'; + self.deferY18nLookup = str => deferY18nLookupPrefix + str; + self.help = function help() { + if (cachedHelpMessage) + return cachedHelpMessage; + normalizeAliases(); + const base$0 = yargs.customScriptName + ? yargs.$0 + : shim.path.basename(yargs.$0); + const demandedOptions = yargs.getDemandedOptions(); + const demandedCommands = yargs.getDemandedCommands(); + const deprecatedOptions = yargs.getDeprecatedOptions(); + const groups = yargs.getGroups(); + const options = yargs.getOptions(); + let keys = []; + keys = keys.concat(Object.keys(descriptions)); + keys = keys.concat(Object.keys(demandedOptions)); + keys = keys.concat(Object.keys(demandedCommands)); + keys = keys.concat(Object.keys(options.default)); + keys = keys.filter(filterHiddenOptions); + keys = Object.keys(keys.reduce((acc, key) => { + if (key !== '_') + acc[key] = true; + return acc; + }, {})); + const theWrap = self.getWrap(); + const ui = shim.cliui({ + width: theWrap, + wrap: !!theWrap, + }); + if (!usageDisabled) { + if (usages.length) { + usages.forEach(usage => { + ui.div({ text: `${usage[0].replace(/\$0/g, base$0)}` }); + if (usage[1]) { + ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] }); + } + }); + ui.div(); + } + else if (commands.length) { + let u = null; + if (demandedCommands._) { + u = `${base$0} <${__('command')}>\n`; + } + else { + u = `${base$0} [${__('command')}]\n`; + } + ui.div(`${u}`); + } + } + if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) { + ui.div(__('Commands:')); + const context = yargs.getInternalMethods().getContext(); + const parentCommands = context.commands.length + ? `${context.commands.join(' ')} ` + : ''; + if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] === + true) { + commands = commands.sort((a, b) => a[0].localeCompare(b[0])); + } + const prefix = base$0 ? `${base$0} ` : ''; + commands.forEach(command => { + const commandString = `${prefix}${parentCommands}${command[0].replace(/^\$0 ?/, '')}`; + ui.span({ + text: commandString, + padding: [0, 2, 0, 2], + width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4, + }, { text: command[1] }); + const hints = []; + if (command[2]) + hints.push(`[${__('default')}]`); + if (command[3] && command[3].length) { + hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`); + } + if (command[4]) { + if (typeof command[4] === 'string') { + hints.push(`[${__('deprecated: %s', command[4])}]`); + } + else { + hints.push(`[${__('deprecated')}]`); + } + } + if (hints.length) { + ui.div({ + text: hints.join(' '), + padding: [0, 0, 0, 2], + align: 'right', + }); + } + else { + ui.div(); + } + }); + ui.div(); + } + const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []); + keys = keys.filter(key => !yargs.parsed.newAliases[key] && + aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1)); + const defaultGroup = __('Options:'); + if (!groups[defaultGroup]) + groups[defaultGroup] = []; + addUngroupedKeys(keys, options.alias, groups, defaultGroup); + const isLongSwitch = (sw) => /^--/.test(getText(sw)); + const displayedGroups = Object.keys(groups) + .filter(groupName => groups[groupName].length > 0) + .map(groupName => { + const normalizedKeys = groups[groupName] + .filter(filterHiddenOptions) + .map(key => { + if (aliasKeys.includes(key)) + return key; + for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) { + if ((options.alias[aliasKey] || []).includes(key)) + return aliasKey; + } + return key; + }); + return { groupName, normalizedKeys }; + }) + .filter(({ normalizedKeys }) => normalizedKeys.length > 0) + .map(({ groupName, normalizedKeys }) => { + const switches = normalizedKeys.reduce((acc, key) => { + acc[key] = [key] + .concat(options.alias[key] || []) + .map(sw => { + if (groupName === self.getPositionalGroupName()) + return sw; + else { + return ((/^[0-9]$/.test(sw) + ? options.boolean.includes(key) + ? '-' + : '--' + : sw.length > 1 + ? '--' + : '-') + sw); + } + }) + .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2) + ? 0 + : isLongSwitch(sw1) + ? 1 + : -1) + .join(', '); + return acc; + }, {}); + return { groupName, normalizedKeys, switches }; + }); + const shortSwitchesUsed = displayedGroups + .filter(({ groupName }) => groupName !== self.getPositionalGroupName()) + .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key]))); + if (shortSwitchesUsed) { + displayedGroups + .filter(({ groupName }) => groupName !== self.getPositionalGroupName()) + .forEach(({ normalizedKeys, switches }) => { + normalizedKeys.forEach(key => { + if (isLongSwitch(switches[key])) { + switches[key] = addIndentation(switches[key], '-x, '.length); + } + }); + }); + } + displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => { + ui.div(groupName); + normalizedKeys.forEach(key => { + const kswitch = switches[key]; + let desc = descriptions[key] || ''; + let type = null; + if (desc.includes(deferY18nLookupPrefix)) + desc = __(desc.substring(deferY18nLookupPrefix.length)); + if (options.boolean.includes(key)) + type = `[${__('boolean')}]`; + if (options.count.includes(key)) + type = `[${__('count')}]`; + if (options.string.includes(key)) + type = `[${__('string')}]`; + if (options.normalize.includes(key)) + type = `[${__('string')}]`; + if (options.array.includes(key)) + type = `[${__('array')}]`; + if (options.number.includes(key)) + type = `[${__('number')}]`; + const deprecatedExtra = (deprecated) => typeof deprecated === 'string' + ? `[${__('deprecated: %s', deprecated)}]` + : `[${__('deprecated')}]`; + const extra = [ + key in deprecatedOptions + ? deprecatedExtra(deprecatedOptions[key]) + : null, + type, + key in demandedOptions ? `[${__('required')}]` : null, + options.choices && options.choices[key] + ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]` + : null, + defaultString(options.default[key], options.defaultDescription[key]), + ] + .filter(Boolean) + .join(' '); + ui.span({ + text: getText(kswitch), + padding: [0, 2, 0, 2 + getIndentation(kswitch)], + width: maxWidth(switches, theWrap) + 4, + }, desc); + const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()['hide-types'] === + true; + if (extra && !shouldHideOptionExtras) + ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' }); + else + ui.div(); + }); + ui.div(); + }); + if (examples.length) { + ui.div(__('Examples:')); + examples.forEach(example => { + example[0] = example[0].replace(/\$0/g, base$0); + }); + examples.forEach(example => { + if (example[1] === '') { + ui.div({ + text: example[0], + padding: [0, 2, 0, 2], + }); + } + else { + ui.div({ + text: example[0], + padding: [0, 2, 0, 2], + width: maxWidth(examples, theWrap) + 4, + }, { + text: example[1], + }); + } + }); + ui.div(); + } + if (epilogs.length > 0) { + const e = epilogs + .map(epilog => epilog.replace(/\$0/g, base$0)) + .join('\n'); + ui.div(`${e}\n`); + } + return ui.toString().replace(/\s*$/, ''); + }; + function maxWidth(table, theWrap, modifier) { + let width = 0; + if (!Array.isArray(table)) { + table = Object.values(table).map(v => [v]); + } + table.forEach(v => { + width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width); + }); + if (theWrap) + width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10)); + return width; + } + function normalizeAliases() { + const demandedOptions = yargs.getDemandedOptions(); + const options = yargs.getOptions(); + (Object.keys(options.alias) || []).forEach(key => { + options.alias[key].forEach(alias => { + if (descriptions[alias]) + self.describe(key, descriptions[alias]); + if (alias in demandedOptions) + yargs.demandOption(key, demandedOptions[alias]); + if (options.boolean.includes(alias)) + yargs.boolean(key); + if (options.count.includes(alias)) + yargs.count(key); + if (options.string.includes(alias)) + yargs.string(key); + if (options.normalize.includes(alias)) + yargs.normalize(key); + if (options.array.includes(alias)) + yargs.array(key); + if (options.number.includes(alias)) + yargs.number(key); + }); + }); + } + let cachedHelpMessage; + self.cacheHelpMessage = function () { + cachedHelpMessage = this.help(); + }; + self.clearCachedHelpMessage = function () { + cachedHelpMessage = undefined; + }; + self.hasCachedHelpMessage = function () { + return !!cachedHelpMessage; + }; + function addUngroupedKeys(keys, aliases, groups, defaultGroup) { + let groupedKeys = []; + let toCheck = null; + Object.keys(groups).forEach(group => { + groupedKeys = groupedKeys.concat(groups[group]); + }); + keys.forEach(key => { + toCheck = [key].concat(aliases[key]); + if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) { + groups[defaultGroup].push(key); + } + }); + return groupedKeys; + } + function filterHiddenOptions(key) { + return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 || + yargs.parsed.argv[yargs.getOptions().showHiddenOpt]); + } + self.showHelp = (level) => { + const logger = yargs.getInternalMethods().getLoggerInstance(); + if (!level) + level = 'error'; + const emit = typeof level === 'function' ? level : logger[level]; + emit(self.help()); + }; + self.functionDescription = fn => { + const description = fn.name + ? shim.Parser.decamelize(fn.name, '-') + : __('generated-value'); + return ['(', description, ')'].join(''); + }; + self.stringifiedValues = function stringifiedValues(values, separator) { + let string = ''; + const sep = separator || ', '; + const array = [].concat(values); + if (!values || !array.length) + return string; + array.forEach(value => { + if (string.length) + string += sep; + string += JSON.stringify(value); + }); + return string; + }; + function defaultString(value, defaultDescription) { + let string = `[${__('default:')} `; + if (value === undefined && !defaultDescription) + return null; + if (defaultDescription) { + string += defaultDescription; + } + else { + switch (typeof value) { + case 'string': + string += `"${value}"`; + break; + case 'object': + string += JSON.stringify(value); + break; + default: + string += value; + } + } + return `${string}]`; + } + function windowWidth() { + const maxWidth = 80; + if (shim.process.stdColumns) { + return Math.min(maxWidth, shim.process.stdColumns); + } + else { + return maxWidth; + } + } + let version = null; + self.version = ver => { + version = ver; + }; + self.showVersion = level => { + const logger = yargs.getInternalMethods().getLoggerInstance(); + if (!level) + level = 'error'; + const emit = typeof level === 'function' ? level : logger[level]; + emit(version); + }; + self.reset = function reset(localLookup) { + failMessage = null; + failureOutput = false; + usages = []; + usageDisabled = false; + epilogs = []; + examples = []; + commands = []; + descriptions = objFilter(descriptions, k => !localLookup[k]); + return self; + }; + const frozens = []; + self.freeze = function freeze() { + frozens.push({ + failMessage, + failureOutput, + usages, + usageDisabled, + epilogs, + examples, + commands, + descriptions, + }); + }; + self.unfreeze = function unfreeze(defaultCommand = false) { + const frozen = frozens.pop(); + if (!frozen) + return; + if (defaultCommand) { + descriptions = { ...frozen.descriptions, ...descriptions }; + commands = [...frozen.commands, ...commands]; + usages = [...frozen.usages, ...usages]; + examples = [...frozen.examples, ...examples]; + epilogs = [...frozen.epilogs, ...epilogs]; + } + else { + ({ + failMessage, + failureOutput, + usages, + usageDisabled, + epilogs, + examples, + commands, + descriptions, + } = frozen); + } + }; + return self; +} +function isIndentedText(text) { + return typeof text === 'object'; +} +function addIndentation(text, indent) { + return isIndentedText(text) + ? { text: text.text, indentation: text.indentation + indent } + : { text, indentation: indent }; +} +function getIndentation(text) { + return isIndentedText(text) ? text.indentation : 0; +} +function getText(text) { + return isIndentedText(text) ? text.text : text; +} diff --git a/node_modules/yargs/build/lib/utils/apply-extends.js b/node_modules/yargs/build/lib/utils/apply-extends.js new file mode 100644 index 0000000..0e593b4 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/apply-extends.js @@ -0,0 +1,59 @@ +import { YError } from '../yerror.js'; +let previouslyVisitedConfigs = []; +let shim; +export function applyExtends(config, cwd, mergeExtends, _shim) { + shim = _shim; + let defaultConfig = {}; + if (Object.prototype.hasOwnProperty.call(config, 'extends')) { + if (typeof config.extends !== 'string') + return defaultConfig; + const isPath = /\.json|\..*rc$/.test(config.extends); + let pathToDefault = null; + if (!isPath) { + try { + pathToDefault = require.resolve(config.extends); + } + catch (_err) { + return config; + } + } + else { + pathToDefault = getPathToDefaultConfig(cwd, config.extends); + } + checkForCircularExtends(pathToDefault); + previouslyVisitedConfigs.push(pathToDefault); + defaultConfig = isPath + ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8')) + : require(config.extends); + delete config.extends; + defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim); + } + previouslyVisitedConfigs = []; + return mergeExtends + ? mergeDeep(defaultConfig, config) + : Object.assign({}, defaultConfig, config); +} +function checkForCircularExtends(cfgPath) { + if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { + throw new YError(`Circular extended configurations: '${cfgPath}'.`); + } +} +function getPathToDefaultConfig(cwd, pathToExtend) { + return shim.path.resolve(cwd, pathToExtend); +} +function mergeDeep(config1, config2) { + const target = {}; + function isObject(obj) { + return obj && typeof obj === 'object' && !Array.isArray(obj); + } + Object.assign(target, config1); + for (const key of Object.keys(config2)) { + if (isObject(config2[key]) && isObject(target[key])) { + target[key] = mergeDeep(config1[key], config2[key]); + } + else { + target[key] = config2[key]; + } + } + return target; +} diff --git a/node_modules/yargs/build/lib/utils/is-promise.js b/node_modules/yargs/build/lib/utils/is-promise.js new file mode 100644 index 0000000..d250c08 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/is-promise.js @@ -0,0 +1,5 @@ +export function isPromise(maybePromise) { + return (!!maybePromise && + !!maybePromise.then && + typeof maybePromise.then === 'function'); +} diff --git a/node_modules/yargs/build/lib/utils/levenshtein.js b/node_modules/yargs/build/lib/utils/levenshtein.js new file mode 100644 index 0000000..60575ef --- /dev/null +++ b/node_modules/yargs/build/lib/utils/levenshtein.js @@ -0,0 +1,34 @@ +export function levenshtein(a, b) { + if (a.length === 0) + return b.length; + if (b.length === 0) + return a.length; + const matrix = []; + let i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + let j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } + else { + if (i > 1 && + j > 1 && + b.charAt(i - 2) === a.charAt(j - 1) && + b.charAt(i - 1) === a.charAt(j - 2)) { + matrix[i][j] = matrix[i - 2][j - 2] + 1; + } + else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + } + return matrix[b.length][a.length]; +} diff --git a/node_modules/yargs/build/lib/utils/maybe-async-result.js b/node_modules/yargs/build/lib/utils/maybe-async-result.js new file mode 100644 index 0000000..8c6a40c --- /dev/null +++ b/node_modules/yargs/build/lib/utils/maybe-async-result.js @@ -0,0 +1,17 @@ +import { isPromise } from './is-promise.js'; +export function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => { + throw err; +}) { + try { + const result = isFunction(getResult) ? getResult() : getResult; + return isPromise(result) + ? result.then((result) => resultHandler(result)) + : resultHandler(result); + } + catch (err) { + return errorHandler(err); + } +} +function isFunction(arg) { + return typeof arg === 'function'; +} diff --git a/node_modules/yargs/build/lib/utils/obj-filter.js b/node_modules/yargs/build/lib/utils/obj-filter.js new file mode 100644 index 0000000..cd68ad2 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/obj-filter.js @@ -0,0 +1,10 @@ +import { objectKeys } from '../typings/common-types.js'; +export function objFilter(original = {}, filter = () => true) { + const obj = {}; + objectKeys(original).forEach(key => { + if (filter(key, original[key])) { + obj[key] = original[key]; + } + }); + return obj; +} diff --git a/node_modules/yargs/build/lib/utils/process-argv.js b/node_modules/yargs/build/lib/utils/process-argv.js new file mode 100644 index 0000000..74dc9e4 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/process-argv.js @@ -0,0 +1,17 @@ +function getProcessArgvBinIndex() { + if (isBundledElectronApp()) + return 0; + return 1; +} +function isBundledElectronApp() { + return isElectronApp() && !process.defaultApp; +} +function isElectronApp() { + return !!process.versions.electron; +} +export function hideBin(argv) { + return argv.slice(getProcessArgvBinIndex() + 1); +} +export function getProcessArgvBin() { + return process.argv[getProcessArgvBinIndex()]; +} diff --git a/node_modules/yargs/build/lib/utils/set-blocking.js b/node_modules/yargs/build/lib/utils/set-blocking.js new file mode 100644 index 0000000..88fb806 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/set-blocking.js @@ -0,0 +1,12 @@ +export default function setBlocking(blocking) { + if (typeof process === 'undefined') + return; + [process.stdout, process.stderr].forEach(_stream => { + const stream = _stream; + if (stream._handle && + stream.isTTY && + typeof stream._handle.setBlocking === 'function') { + stream._handle.setBlocking(blocking); + } + }); +} diff --git a/node_modules/yargs/build/lib/utils/which-module.js b/node_modules/yargs/build/lib/utils/which-module.js new file mode 100644 index 0000000..5974e22 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/which-module.js @@ -0,0 +1,10 @@ +export default function whichModule(exported) { + if (typeof require === 'undefined') + return null; + for (let i = 0, files = Object.keys(require.cache), mod; i < files.length; i++) { + mod = require.cache[files[i]]; + if (mod.exports === exported) + return mod; + } + return null; +} diff --git a/node_modules/yargs/build/lib/validation.js b/node_modules/yargs/build/lib/validation.js new file mode 100644 index 0000000..bd2e1b8 --- /dev/null +++ b/node_modules/yargs/build/lib/validation.js @@ -0,0 +1,305 @@ +import { argsert } from './argsert.js'; +import { assertNotStrictEqual, } from './typings/common-types.js'; +import { levenshtein as distance } from './utils/levenshtein.js'; +import { objFilter } from './utils/obj-filter.js'; +const specialKeys = ['$0', '--', '_']; +export function validation(yargs, usage, shim) { + const __ = shim.y18n.__; + const __n = shim.y18n.__n; + const self = {}; + self.nonOptionCount = function nonOptionCount(argv) { + const demandedCommands = yargs.getDemandedCommands(); + const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0); + const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length; + if (demandedCommands._ && + (_s < demandedCommands._.min || _s > demandedCommands._.max)) { + if (_s < demandedCommands._.min) { + if (demandedCommands._.minMsg !== undefined) { + usage.fail(demandedCommands._.minMsg + ? demandedCommands._.minMsg + .replace(/\$0/g, _s.toString()) + .replace(/\$1/, demandedCommands._.min.toString()) + : null); + } + else { + usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s.toString(), demandedCommands._.min.toString())); + } + } + else if (_s > demandedCommands._.max) { + if (demandedCommands._.maxMsg !== undefined) { + usage.fail(demandedCommands._.maxMsg + ? demandedCommands._.maxMsg + .replace(/\$0/g, _s.toString()) + .replace(/\$1/, demandedCommands._.max.toString()) + : null); + } + else { + usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s.toString(), demandedCommands._.max.toString())); + } + } + } + }; + self.positionalCount = function positionalCount(required, observed) { + if (observed < required) { + usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed + '', required + '')); + } + }; + self.requiredArguments = function requiredArguments(argv, demandedOptions) { + let missing = null; + for (const key of Object.keys(demandedOptions)) { + if (!Object.prototype.hasOwnProperty.call(argv, key) || + typeof argv[key] === 'undefined') { + missing = missing || {}; + missing[key] = demandedOptions[key]; + } + } + if (missing) { + const customMsgs = []; + for (const key of Object.keys(missing)) { + const msg = missing[key]; + if (msg && customMsgs.indexOf(msg) < 0) { + customMsgs.push(msg); + } + } + const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''; + usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg)); + } + }; + self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) { + var _a; + const commandKeys = yargs + .getInternalMethods() + .getCommandInstance() + .getCommands(); + const unknown = []; + const currentContext = yargs.getInternalMethods().getContext(); + Object.keys(argv).forEach(key => { + if (!specialKeys.includes(key) && + !Object.prototype.hasOwnProperty.call(positionalMap, key) && + !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) && + !self.isValidAndSomeAliasIsNotNew(key, aliases)) { + unknown.push(key); + } + }); + if (checkPositionals && + (currentContext.commands.length > 0 || + commandKeys.length > 0 || + isDefaultCommand)) { + argv._.slice(currentContext.commands.length).forEach(key => { + if (!commandKeys.includes('' + key)) { + unknown.push('' + key); + } + }); + } + if (checkPositionals) { + const demandedCommands = yargs.getDemandedCommands(); + const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0; + const expected = currentContext.commands.length + maxNonOptDemanded; + if (expected < argv._.length) { + argv._.slice(expected).forEach(key => { + key = String(key); + if (!currentContext.commands.includes(key) && + !unknown.includes(key)) { + unknown.push(key); + } + }); + } + } + if (unknown.length) { + usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.map(s => (s.trim() ? s : `"${s}"`)).join(', '))); + } + }; + self.unknownCommands = function unknownCommands(argv) { + const commandKeys = yargs + .getInternalMethods() + .getCommandInstance() + .getCommands(); + const unknown = []; + const currentContext = yargs.getInternalMethods().getContext(); + if (currentContext.commands.length > 0 || commandKeys.length > 0) { + argv._.slice(currentContext.commands.length).forEach(key => { + if (!commandKeys.includes('' + key)) { + unknown.push('' + key); + } + }); + } + if (unknown.length > 0) { + usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', '))); + return true; + } + else { + return false; + } + }; + self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) { + if (!Object.prototype.hasOwnProperty.call(aliases, key)) { + return false; + } + const newAliases = yargs.parsed.newAliases; + return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]); + }; + self.limitedChoices = function limitedChoices(argv) { + const options = yargs.getOptions(); + const invalid = {}; + if (!Object.keys(options.choices).length) + return; + Object.keys(argv).forEach(key => { + if (specialKeys.indexOf(key) === -1 && + Object.prototype.hasOwnProperty.call(options.choices, key)) { + [].concat(argv[key]).forEach(value => { + if (options.choices[key].indexOf(value) === -1 && + value !== undefined) { + invalid[key] = (invalid[key] || []).concat(value); + } + }); + } + }); + const invalidKeys = Object.keys(invalid); + if (!invalidKeys.length) + return; + let msg = __('Invalid values:'); + invalidKeys.forEach(key => { + msg += `\n ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`; + }); + usage.fail(msg); + }; + let implied = {}; + self.implies = function implies(key, value) { + argsert(' [array|number|string]', [key, value], arguments.length); + if (typeof key === 'object') { + Object.keys(key).forEach(k => { + self.implies(k, key[k]); + }); + } + else { + yargs.global(key); + if (!implied[key]) { + implied[key] = []; + } + if (Array.isArray(value)) { + value.forEach(i => self.implies(key, i)); + } + else { + assertNotStrictEqual(value, undefined, shim); + implied[key].push(value); + } + } + }; + self.getImplied = function getImplied() { + return implied; + }; + function keyExists(argv, val) { + const num = Number(val); + val = isNaN(num) ? val : num; + if (typeof val === 'number') { + val = argv._.length >= val; + } + else if (val.match(/^--no-.+/)) { + val = val.match(/^--no-(.+)/)[1]; + val = !Object.prototype.hasOwnProperty.call(argv, val); + } + else { + val = Object.prototype.hasOwnProperty.call(argv, val); + } + return val; + } + self.implications = function implications(argv) { + const implyFail = []; + Object.keys(implied).forEach(key => { + const origKey = key; + (implied[key] || []).forEach(value => { + let key = origKey; + const origValue = value; + key = keyExists(argv, key); + value = keyExists(argv, value); + if (key && !value) { + implyFail.push(` ${origKey} -> ${origValue}`); + } + }); + }); + if (implyFail.length) { + let msg = `${__('Implications failed:')}\n`; + implyFail.forEach(value => { + msg += value; + }); + usage.fail(msg); + } + }; + let conflicting = {}; + self.conflicts = function conflicts(key, value) { + argsert(' [array|string]', [key, value], arguments.length); + if (typeof key === 'object') { + Object.keys(key).forEach(k => { + self.conflicts(k, key[k]); + }); + } + else { + yargs.global(key); + if (!conflicting[key]) { + conflicting[key] = []; + } + if (Array.isArray(value)) { + value.forEach(i => self.conflicts(key, i)); + } + else { + conflicting[key].push(value); + } + } + }; + self.getConflicting = () => conflicting; + self.conflicting = function conflictingFn(argv) { + Object.keys(argv).forEach(key => { + if (conflicting[key]) { + conflicting[key].forEach(value => { + if (value && argv[key] !== undefined && argv[value] !== undefined) { + usage.fail(__('Arguments %s and %s are mutually exclusive', key, value)); + } + }); + } + }); + if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) { + Object.keys(conflicting).forEach(key => { + conflicting[key].forEach(value => { + if (value && + argv[shim.Parser.camelCase(key)] !== undefined && + argv[shim.Parser.camelCase(value)] !== undefined) { + usage.fail(__('Arguments %s and %s are mutually exclusive', key, value)); + } + }); + }); + } + }; + self.recommendCommands = function recommendCommands(cmd, potentialCommands) { + const threshold = 3; + potentialCommands = potentialCommands.sort((a, b) => b.length - a.length); + let recommended = null; + let bestDistance = Infinity; + for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) { + const d = distance(cmd, candidate); + if (d <= threshold && d < bestDistance) { + bestDistance = d; + recommended = candidate; + } + } + if (recommended) + usage.fail(__('Did you mean %s?', recommended)); + }; + self.reset = function reset(localLookup) { + implied = objFilter(implied, k => !localLookup[k]); + conflicting = objFilter(conflicting, k => !localLookup[k]); + return self; + }; + const frozens = []; + self.freeze = function freeze() { + frozens.push({ + implied, + conflicting, + }); + }; + self.unfreeze = function unfreeze() { + const frozen = frozens.pop(); + assertNotStrictEqual(frozen, undefined, shim); + ({ implied, conflicting } = frozen); + }; + return self; +} diff --git a/node_modules/yargs/build/lib/yargs-factory.js b/node_modules/yargs/build/lib/yargs-factory.js new file mode 100644 index 0000000..c4b1d50 --- /dev/null +++ b/node_modules/yargs/build/lib/yargs-factory.js @@ -0,0 +1,1512 @@ +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _YargsInstance_command, _YargsInstance_cwd, _YargsInstance_context, _YargsInstance_completion, _YargsInstance_completionCommand, _YargsInstance_defaultShowHiddenOpt, _YargsInstance_exitError, _YargsInstance_detectLocale, _YargsInstance_emittedWarnings, _YargsInstance_exitProcess, _YargsInstance_frozens, _YargsInstance_globalMiddleware, _YargsInstance_groups, _YargsInstance_hasOutput, _YargsInstance_helpOpt, _YargsInstance_isGlobalContext, _YargsInstance_logger, _YargsInstance_output, _YargsInstance_options, _YargsInstance_parentRequire, _YargsInstance_parserConfig, _YargsInstance_parseFn, _YargsInstance_parseContext, _YargsInstance_pkgs, _YargsInstance_preservedGroups, _YargsInstance_processArgs, _YargsInstance_recommendCommands, _YargsInstance_shim, _YargsInstance_strict, _YargsInstance_strictCommands, _YargsInstance_strictOptions, _YargsInstance_usage, _YargsInstance_usageConfig, _YargsInstance_versionOpt, _YargsInstance_validation; +import { command as Command, } from './command.js'; +import { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js'; +import { YError } from './yerror.js'; +import { usage as Usage } from './usage.js'; +import { argsert } from './argsert.js'; +import { completion as Completion, } from './completion.js'; +import { validation as Validation, } from './validation.js'; +import { objFilter } from './utils/obj-filter.js'; +import { applyExtends } from './utils/apply-extends.js'; +import { applyMiddleware, GlobalMiddleware, } from './middleware.js'; +import { isPromise } from './utils/is-promise.js'; +import { maybeAsyncResult } from './utils/maybe-async-result.js'; +import setBlocking from './utils/set-blocking.js'; +export function YargsFactory(_shim) { + return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => { + const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim); + Object.defineProperty(yargs, 'argv', { + get: () => { + return yargs.parse(); + }, + enumerable: true, + }); + yargs.help(); + yargs.version(); + return yargs; + }; +} +const kCopyDoubleDash = Symbol('copyDoubleDash'); +const kCreateLogger = Symbol('copyDoubleDash'); +const kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject'); +const kEmitWarning = Symbol('emitWarning'); +const kFreeze = Symbol('freeze'); +const kGetDollarZero = Symbol('getDollarZero'); +const kGetParserConfiguration = Symbol('getParserConfiguration'); +const kGetUsageConfiguration = Symbol('getUsageConfiguration'); +const kGuessLocale = Symbol('guessLocale'); +const kGuessVersion = Symbol('guessVersion'); +const kParsePositionalNumbers = Symbol('parsePositionalNumbers'); +const kPkgUp = Symbol('pkgUp'); +const kPopulateParserHintArray = Symbol('populateParserHintArray'); +const kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary'); +const kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary'); +const kPopulateParserHintDictionary = Symbol('populateParserHintDictionary'); +const kSanitizeKey = Symbol('sanitizeKey'); +const kSetKey = Symbol('setKey'); +const kUnfreeze = Symbol('unfreeze'); +const kValidateAsync = Symbol('validateAsync'); +const kGetCommandInstance = Symbol('getCommandInstance'); +const kGetContext = Symbol('getContext'); +const kGetHasOutput = Symbol('getHasOutput'); +const kGetLoggerInstance = Symbol('getLoggerInstance'); +const kGetParseContext = Symbol('getParseContext'); +const kGetUsageInstance = Symbol('getUsageInstance'); +const kGetValidationInstance = Symbol('getValidationInstance'); +const kHasParseCallback = Symbol('hasParseCallback'); +const kIsGlobalContext = Symbol('isGlobalContext'); +const kPostProcess = Symbol('postProcess'); +const kRebase = Symbol('rebase'); +const kReset = Symbol('reset'); +const kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands'); +const kRunValidation = Symbol('runValidation'); +const kSetHasOutput = Symbol('setHasOutput'); +const kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys'); +export class YargsInstance { + constructor(processArgs = [], cwd, parentRequire, shim) { + this.customScriptName = false; + this.parsed = false; + _YargsInstance_command.set(this, void 0); + _YargsInstance_cwd.set(this, void 0); + _YargsInstance_context.set(this, { commands: [], fullCommands: [] }); + _YargsInstance_completion.set(this, null); + _YargsInstance_completionCommand.set(this, null); + _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden'); + _YargsInstance_exitError.set(this, null); + _YargsInstance_detectLocale.set(this, true); + _YargsInstance_emittedWarnings.set(this, {}); + _YargsInstance_exitProcess.set(this, true); + _YargsInstance_frozens.set(this, []); + _YargsInstance_globalMiddleware.set(this, void 0); + _YargsInstance_groups.set(this, {}); + _YargsInstance_hasOutput.set(this, false); + _YargsInstance_helpOpt.set(this, null); + _YargsInstance_isGlobalContext.set(this, true); + _YargsInstance_logger.set(this, void 0); + _YargsInstance_output.set(this, ''); + _YargsInstance_options.set(this, void 0); + _YargsInstance_parentRequire.set(this, void 0); + _YargsInstance_parserConfig.set(this, {}); + _YargsInstance_parseFn.set(this, null); + _YargsInstance_parseContext.set(this, null); + _YargsInstance_pkgs.set(this, {}); + _YargsInstance_preservedGroups.set(this, {}); + _YargsInstance_processArgs.set(this, void 0); + _YargsInstance_recommendCommands.set(this, false); + _YargsInstance_shim.set(this, void 0); + _YargsInstance_strict.set(this, false); + _YargsInstance_strictCommands.set(this, false); + _YargsInstance_strictOptions.set(this, false); + _YargsInstance_usage.set(this, void 0); + _YargsInstance_usageConfig.set(this, {}); + _YargsInstance_versionOpt.set(this, null); + _YargsInstance_validation.set(this, void 0); + __classPrivateFieldSet(this, _YargsInstance_shim, shim, "f"); + __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, "f"); + __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, "f"); + __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, "f"); + __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), "f"); + this.$0 = this[kGetDollarZero](); + this[kReset](); + __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, "f"), "f"); + __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, "f"), "f"); + __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, "f"), "f"); + __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, "f"), "f"); + __classPrivateFieldGet(this, _YargsInstance_options, "f").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, "f"); + __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), "f"); + } + addHelpOpt(opt, msg) { + const defaultHelpOpt = 'help'; + argsert('[string|boolean] [string]', [opt, msg], arguments.length); + if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")) { + this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")); + __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, "f"); + } + if (opt === false && msg === undefined) + return this; + __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, "f"); + this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")); + this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Show help')); + return this; + } + help(opt, msg) { + return this.addHelpOpt(opt, msg); + } + addShowHiddenOpt(opt, msg) { + argsert('[string|boolean] [string]', [opt, msg], arguments.length); + if (opt === false && msg === undefined) + return this; + const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, "f"); + this.boolean(showHiddenOpt); + this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Show hidden options')); + __classPrivateFieldGet(this, _YargsInstance_options, "f").showHiddenOpt = showHiddenOpt; + return this; + } + showHidden(opt, msg) { + return this.addShowHiddenOpt(opt, msg); + } + alias(key, value) { + argsert(' [string|array]', [key, value], arguments.length); + this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value); + return this; + } + array(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('array', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + boolean(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('boolean', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + check(f, global) { + argsert(' [boolean]', [f, global], arguments.length); + this.middleware((argv, _yargs) => { + return maybeAsyncResult(() => { + return f(argv, _yargs.getOptions()); + }, (result) => { + if (!result) { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(__classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.__('Argument check failed: %s', f.toString())); + } + else if (typeof result === 'string' || result instanceof Error) { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(result.toString(), result); + } + return argv; + }, (err) => { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(err.message ? err.message : err.toString(), err); + return argv; + }); + }, false, global); + return this; + } + choices(key, value) { + argsert(' [string|array]', [key, value], arguments.length); + this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value); + return this; + } + coerce(keys, value) { + argsert(' [function]', [keys, value], arguments.length); + if (Array.isArray(keys)) { + if (!value) { + throw new YError('coerce callback must be provided'); + } + for (const key of keys) { + this.coerce(key, value); + } + return this; + } + else if (typeof keys === 'object') { + for (const key of Object.keys(keys)) { + this.coerce(key, keys[key]); + } + return this; + } + if (!value) { + throw new YError('coerce callback must be provided'); + } + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[keys] = true; + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").addCoerceMiddleware((argv, yargs) => { + let aliases; + const shouldCoerce = Object.prototype.hasOwnProperty.call(argv, keys); + if (!shouldCoerce) { + return argv; + } + return maybeAsyncResult(() => { + aliases = yargs.getAliases(); + return value(argv[keys]); + }, (result) => { + argv[keys] = result; + const stripAliased = yargs + .getInternalMethods() + .getParserConfiguration()['strip-aliased']; + if (aliases[keys] && stripAliased !== true) { + for (const alias of aliases[keys]) { + argv[alias] = result; + } + } + return argv; + }, (err) => { + throw new YError(err.message); + }); + }, keys); + return this; + } + conflicts(key1, key2) { + argsert(' [string|array]', [key1, key2], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").conflicts(key1, key2); + return this; + } + config(key = 'config', msg, parseFn) { + argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length); + if (typeof key === 'object' && !Array.isArray(key)) { + key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, "f"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects || []).concat(key); + return this; + } + if (typeof msg === 'function') { + parseFn = msg; + msg = undefined; + } + this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Path to JSON config file')); + (Array.isArray(key) ? key : [key]).forEach(k => { + __classPrivateFieldGet(this, _YargsInstance_options, "f").config[k] = parseFn || true; + }); + return this; + } + completion(cmd, desc, fn) { + argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length); + if (typeof desc === 'function') { + fn = desc; + desc = undefined; + } + __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f") || 'completion', "f"); + if (!desc && desc !== false) { + desc = 'generate completion script'; + } + this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, "f"), desc); + if (fn) + __classPrivateFieldGet(this, _YargsInstance_completion, "f").registerFunction(fn); + return this; + } + command(cmd, description, builder, handler, middlewares, deprecated) { + argsert(' [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_command, "f").addHandler(cmd, description, builder, handler, middlewares, deprecated); + return this; + } + commands(cmd, description, builder, handler, middlewares, deprecated) { + return this.command(cmd, description, builder, handler, middlewares, deprecated); + } + commandDir(dir, opts) { + argsert(' [object]', [dir, opts], arguments.length); + const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, "f") || __classPrivateFieldGet(this, _YargsInstance_shim, "f").require; + __classPrivateFieldGet(this, _YargsInstance_command, "f").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, "f").getCallerFile(), opts); + return this; + } + count(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('count', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + default(key, value, defaultDescription) { + argsert(' [*] [string]', [key, value, defaultDescription], arguments.length); + if (defaultDescription) { + assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + __classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key] = defaultDescription; + } + if (typeof value === 'function') { + assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + if (!__classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key]) + __classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key] = + __classPrivateFieldGet(this, _YargsInstance_usage, "f").functionDescription(value); + value = value.call(); + } + this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value); + return this; + } + defaults(key, value, defaultDescription) { + return this.default(key, value, defaultDescription); + } + demandCommand(min = 1, max, minMsg, maxMsg) { + argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length); + if (typeof max !== 'number') { + minMsg = max; + max = Infinity; + } + this.global('_', false); + __classPrivateFieldGet(this, _YargsInstance_options, "f").demandedCommands._ = { + min, + max, + minMsg, + maxMsg, + }; + return this; + } + demand(keys, max, msg) { + if (Array.isArray(max)) { + max.forEach(key => { + assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + this.demandOption(key, msg); + }); + max = Infinity; + } + else if (typeof max !== 'number') { + msg = max; + max = Infinity; + } + if (typeof keys === 'number') { + assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + this.demandCommand(keys, max, msg, msg); + } + else if (Array.isArray(keys)) { + keys.forEach(key => { + assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + this.demandOption(key, msg); + }); + } + else { + if (typeof msg === 'string') { + this.demandOption(keys, msg); + } + else if (msg === true || typeof msg === 'undefined') { + this.demandOption(keys); + } + } + return this; + } + demandOption(keys, msg) { + argsert(' [string]', [keys, msg], arguments.length); + this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg); + return this; + } + deprecateOption(option, message) { + argsert(' [string|boolean]', [option, message], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_options, "f").deprecatedOptions[option] = message; + return this; + } + describe(keys, description) { + argsert(' [string]', [keys, description], arguments.length); + this[kSetKey](keys, true); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").describe(keys, description); + return this; + } + detectLocale(detect) { + argsert('', [detect], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, "f"); + return this; + } + env(prefix) { + argsert('[string|boolean]', [prefix], arguments.length); + if (prefix === false) + delete __classPrivateFieldGet(this, _YargsInstance_options, "f").envPrefix; + else + __classPrivateFieldGet(this, _YargsInstance_options, "f").envPrefix = prefix || ''; + return this; + } + epilogue(msg) { + argsert('', [msg], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").epilog(msg); + return this; + } + epilog(msg) { + return this.epilogue(msg); + } + example(cmd, description) { + argsert(' [string]', [cmd, description], arguments.length); + if (Array.isArray(cmd)) { + cmd.forEach(exampleParams => this.example(...exampleParams)); + } + else { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").example(cmd, description); + } + return this; + } + exit(code, err) { + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + __classPrivateFieldSet(this, _YargsInstance_exitError, err, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.exit(code); + } + exitProcess(enabled = true) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, "f"); + return this; + } + fail(f) { + argsert('', [f], arguments.length); + if (typeof f === 'boolean' && f !== false) { + throw new YError("Invalid first argument. Expected function or boolean 'false'"); + } + __classPrivateFieldGet(this, _YargsInstance_usage, "f").failFn(f); + return this; + } + getAliases() { + return this.parsed ? this.parsed.aliases : {}; + } + async getCompletion(args, done) { + argsert(' [function]', [args, done], arguments.length); + if (!done) { + return new Promise((resolve, reject) => { + __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(args, (err, completions) => { + if (err) + reject(err); + else + resolve(completions); + }); + }); + } + else { + return __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(args, done); + } + } + getDemandedOptions() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_options, "f").demandedOptions; + } + getDemandedCommands() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_options, "f").demandedCommands; + } + getDeprecatedOptions() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_options, "f").deprecatedOptions; + } + getDetectLocale() { + return __classPrivateFieldGet(this, _YargsInstance_detectLocale, "f"); + } + getExitProcess() { + return __classPrivateFieldGet(this, _YargsInstance_exitProcess, "f"); + } + getGroups() { + return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, "f"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")); + } + getHelp() { + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (!__classPrivateFieldGet(this, _YargsInstance_usage, "f").hasCachedHelpMessage()) { + if (!this.parsed) { + const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, "f"), undefined, undefined, 0, true); + if (isPromise(parse)) { + return parse.then(() => { + return __classPrivateFieldGet(this, _YargsInstance_usage, "f").help(); + }); + } + } + const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, "f").runDefaultBuilderOn(this); + if (isPromise(builderResponse)) { + return builderResponse.then(() => { + return __classPrivateFieldGet(this, _YargsInstance_usage, "f").help(); + }); + } + } + return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, "f").help()); + } + getOptions() { + return __classPrivateFieldGet(this, _YargsInstance_options, "f"); + } + getStrict() { + return __classPrivateFieldGet(this, _YargsInstance_strict, "f"); + } + getStrictCommands() { + return __classPrivateFieldGet(this, _YargsInstance_strictCommands, "f"); + } + getStrictOptions() { + return __classPrivateFieldGet(this, _YargsInstance_strictOptions, "f"); + } + global(globals, global) { + argsert(' [boolean]', [globals, global], arguments.length); + globals = [].concat(globals); + if (global !== false) { + __classPrivateFieldGet(this, _YargsInstance_options, "f").local = __classPrivateFieldGet(this, _YargsInstance_options, "f").local.filter(l => globals.indexOf(l) === -1); + } + else { + globals.forEach(g => { + if (!__classPrivateFieldGet(this, _YargsInstance_options, "f").local.includes(g)) + __classPrivateFieldGet(this, _YargsInstance_options, "f").local.push(g); + }); + } + return this; + } + group(opts, groupName) { + argsert(' ', [opts, groupName], arguments.length); + const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, "f")[groupName]; + if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")[groupName]) { + delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")[groupName]; + } + const seen = {}; + __classPrivateFieldGet(this, _YargsInstance_groups, "f")[groupName] = (existing || []).concat(opts).filter(key => { + if (seen[key]) + return false; + return (seen[key] = true); + }); + return this; + } + hide(key) { + argsert('', [key], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_options, "f").hiddenOptions.push(key); + return this; + } + implies(key, value) { + argsert(' [number|string|array]', [key, value], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").implies(key, value); + return this; + } + locale(locale) { + argsert('[string]', [locale], arguments.length); + if (locale === undefined) { + this[kGuessLocale](); + return __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.getLocale(); + } + __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, "f"); + __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.setLocale(locale); + return this; + } + middleware(callback, applyBeforeValidation, global) { + return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").addMiddleware(callback, !!applyBeforeValidation, global); + } + nargs(key, value) { + argsert(' [number]', [key, value], arguments.length); + this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value); + return this; + } + normalize(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('normalize', keys); + return this; + } + number(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('number', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + option(key, opt) { + argsert(' [object]', [key, opt], arguments.length); + if (typeof key === 'object') { + Object.keys(key).forEach(k => { + this.options(k, key[k]); + }); + } + else { + if (typeof opt !== 'object') { + opt = {}; + } + this[kTrackManuallySetKeys](key); + if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) { + this[kEmitWarning]([ + '"version" is a reserved word.', + 'Please do one of the following:', + '- Disable version with `yargs.version(false)` if using "version" as an option', + '- Use the built-in `yargs.version` method instead (if applicable)', + '- Use a different option key', + 'https://yargs.js.org/docs/#api-reference-version', + ].join('\n'), undefined, 'versionWarning'); + } + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[key] = true; + if (opt.alias) + this.alias(key, opt.alias); + const deprecate = opt.deprecate || opt.deprecated; + if (deprecate) { + this.deprecateOption(key, deprecate); + } + const demand = opt.demand || opt.required || opt.require; + if (demand) { + this.demand(key, demand); + } + if (opt.demandOption) { + this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined); + } + if (opt.conflicts) { + this.conflicts(key, opt.conflicts); + } + if ('default' in opt) { + this.default(key, opt.default); + } + if (opt.implies !== undefined) { + this.implies(key, opt.implies); + } + if (opt.nargs !== undefined) { + this.nargs(key, opt.nargs); + } + if (opt.config) { + this.config(key, opt.configParser); + } + if (opt.normalize) { + this.normalize(key); + } + if (opt.choices) { + this.choices(key, opt.choices); + } + if (opt.coerce) { + this.coerce(key, opt.coerce); + } + if (opt.group) { + this.group(key, opt.group); + } + if (opt.boolean || opt.type === 'boolean') { + this.boolean(key); + if (opt.alias) + this.boolean(opt.alias); + } + if (opt.array || opt.type === 'array') { + this.array(key); + if (opt.alias) + this.array(opt.alias); + } + if (opt.number || opt.type === 'number') { + this.number(key); + if (opt.alias) + this.number(opt.alias); + } + if (opt.string || opt.type === 'string') { + this.string(key); + if (opt.alias) + this.string(opt.alias); + } + if (opt.count || opt.type === 'count') { + this.count(key); + } + if (typeof opt.global === 'boolean') { + this.global(key, opt.global); + } + if (opt.defaultDescription) { + __classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key] = opt.defaultDescription; + } + if (opt.skipValidation) { + this.skipValidation(key); + } + const desc = opt.describe || opt.description || opt.desc; + const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, "f").getDescriptions(); + if (!Object.prototype.hasOwnProperty.call(descriptions, key) || + typeof desc === 'string') { + this.describe(key, desc); + } + if (opt.hidden) { + this.hide(key); + } + if (opt.requiresArg) { + this.requiresArg(key); + } + } + return this; + } + options(key, opt) { + return this.option(key, opt); + } + parse(args, shortCircuit, _parseFn) { + argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length); + this[kFreeze](); + if (typeof args === 'undefined') { + args = __classPrivateFieldGet(this, _YargsInstance_processArgs, "f"); + } + if (typeof shortCircuit === 'object') { + __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, "f"); + shortCircuit = _parseFn; + } + if (typeof shortCircuit === 'function') { + __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, "f"); + shortCircuit = false; + } + if (!shortCircuit) + __classPrivateFieldSet(this, _YargsInstance_processArgs, args, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) + __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, "f"); + const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit); + const tmpParsed = this.parsed; + __classPrivateFieldGet(this, _YargsInstance_completion, "f").setParsed(this.parsed); + if (isPromise(parsed)) { + return parsed + .then(argv => { + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) + __classPrivateFieldGet(this, _YargsInstance_parseFn, "f").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, "f"), argv, __classPrivateFieldGet(this, _YargsInstance_output, "f")); + return argv; + }) + .catch(err => { + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) { + __classPrivateFieldGet(this, _YargsInstance_parseFn, "f")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, "f")); + } + throw err; + }) + .finally(() => { + this[kUnfreeze](); + this.parsed = tmpParsed; + }); + } + else { + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) + __classPrivateFieldGet(this, _YargsInstance_parseFn, "f").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, "f"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, "f")); + this[kUnfreeze](); + this.parsed = tmpParsed; + } + return parsed; + } + parseAsync(args, shortCircuit, _parseFn) { + const maybePromise = this.parse(args, shortCircuit, _parseFn); + return !isPromise(maybePromise) + ? Promise.resolve(maybePromise) + : maybePromise; + } + parseSync(args, shortCircuit, _parseFn) { + const maybePromise = this.parse(args, shortCircuit, _parseFn); + if (isPromise(maybePromise)) { + throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware'); + } + return maybePromise; + } + parserConfiguration(config) { + argsert('', [config], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, "f"); + return this; + } + pkgConf(key, rootPath) { + argsert(' [string]', [key, rootPath], arguments.length); + let conf = null; + const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, "f")); + if (obj[key] && typeof obj[key] === 'object') { + conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, "f"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects || []).concat(conf); + } + return this; + } + positional(key, opts) { + argsert(' ', [key, opts], arguments.length); + const supportedOpts = [ + 'default', + 'defaultDescription', + 'implies', + 'normalize', + 'choices', + 'conflicts', + 'coerce', + 'type', + 'describe', + 'desc', + 'description', + 'alias', + ]; + opts = objFilter(opts, (k, v) => { + if (k === 'type' && !['string', 'number', 'boolean'].includes(v)) + return false; + return supportedOpts.includes(k); + }); + const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, "f").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, "f").fullCommands.length - 1]; + const parseOptions = fullCommand + ? __classPrivateFieldGet(this, _YargsInstance_command, "f").cmdToParseOptions(fullCommand) + : { + array: [], + alias: {}, + default: {}, + demand: {}, + }; + objectKeys(parseOptions).forEach(pk => { + const parseOption = parseOptions[pk]; + if (Array.isArray(parseOption)) { + if (parseOption.indexOf(key) !== -1) + opts[pk] = true; + } + else { + if (parseOption[key] && !(pk in opts)) + opts[pk] = parseOption[key]; + } + }); + this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, "f").getPositionalGroupName()); + return this.option(key, opts); + } + recommendCommands(recommend = true) { + argsert('[boolean]', [recommend], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, "f"); + return this; + } + required(keys, max, msg) { + return this.demand(keys, max, msg); + } + require(keys, max, msg) { + return this.demand(keys, max, msg); + } + requiresArg(keys) { + argsert(' [number]', [keys], arguments.length); + if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, "f").narg[keys]) { + return this; + } + else { + this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN); + } + return this; + } + showCompletionScript($0, cmd) { + argsert('[string] [string]', [$0, cmd], arguments.length); + $0 = $0 || this.$0; + __classPrivateFieldGet(this, _YargsInstance_logger, "f").log(__classPrivateFieldGet(this, _YargsInstance_completion, "f").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f") || 'completion')); + return this; + } + showHelp(level) { + argsert('[string|function]', [level], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (!__classPrivateFieldGet(this, _YargsInstance_usage, "f").hasCachedHelpMessage()) { + if (!this.parsed) { + const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, "f"), undefined, undefined, 0, true); + if (isPromise(parse)) { + parse.then(() => { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelp(level); + }); + return this; + } + } + const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, "f").runDefaultBuilderOn(this); + if (isPromise(builderResponse)) { + builderResponse.then(() => { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelp(level); + }); + return this; + } + } + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelp(level); + return this; + } + scriptName(scriptName) { + this.customScriptName = true; + this.$0 = scriptName; + return this; + } + showHelpOnFail(enabled, message) { + argsert('[boolean|string] [string]', [enabled, message], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelpOnFail(enabled, message); + return this; + } + showVersion(level) { + argsert('[string|function]', [level], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showVersion(level); + return this; + } + skipValidation(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('skipValidation', keys); + return this; + } + strict(enabled) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, "f"); + return this; + } + strictCommands(enabled) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, "f"); + return this; + } + strictOptions(enabled) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, "f"); + return this; + } + string(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('string', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + terminalWidth() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.stdColumns; + } + updateLocale(obj) { + return this.updateStrings(obj); + } + updateStrings(obj) { + argsert('', [obj], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, "f"); + __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.updateLocale(obj); + return this; + } + usage(msg, description, builder, handler) { + argsert(' [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length); + if (description !== undefined) { + assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + if ((msg || '').match(/^\$0( |$)/)) { + return this.command(msg, description, builder, handler); + } + else { + throw new YError('.usage() description must start with $0 if being used as alias for .command()'); + } + } + else { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").usage(msg); + return this; + } + } + usageConfiguration(config) { + argsert('', [config], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_usageConfig, config, "f"); + return this; + } + version(opt, msg, ver) { + const defaultVersionOpt = 'version'; + argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length); + if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f")) { + this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f")); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").version(undefined); + __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, "f"); + } + if (arguments.length === 0) { + ver = this[kGuessVersion](); + opt = defaultVersionOpt; + } + else if (arguments.length === 1) { + if (opt === false) { + return this; + } + ver = opt; + opt = defaultVersionOpt; + } + else if (arguments.length === 2) { + ver = msg; + msg = undefined; + } + __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, "f"); + msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Show version number'); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").version(ver || undefined); + this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f")); + this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f"), msg); + return this; + } + wrap(cols) { + argsert('', [cols], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").wrap(cols); + return this; + } + [(_YargsInstance_command = new WeakMap(), _YargsInstance_cwd = new WeakMap(), _YargsInstance_context = new WeakMap(), _YargsInstance_completion = new WeakMap(), _YargsInstance_completionCommand = new WeakMap(), _YargsInstance_defaultShowHiddenOpt = new WeakMap(), _YargsInstance_exitError = new WeakMap(), _YargsInstance_detectLocale = new WeakMap(), _YargsInstance_emittedWarnings = new WeakMap(), _YargsInstance_exitProcess = new WeakMap(), _YargsInstance_frozens = new WeakMap(), _YargsInstance_globalMiddleware = new WeakMap(), _YargsInstance_groups = new WeakMap(), _YargsInstance_hasOutput = new WeakMap(), _YargsInstance_helpOpt = new WeakMap(), _YargsInstance_isGlobalContext = new WeakMap(), _YargsInstance_logger = new WeakMap(), _YargsInstance_output = new WeakMap(), _YargsInstance_options = new WeakMap(), _YargsInstance_parentRequire = new WeakMap(), _YargsInstance_parserConfig = new WeakMap(), _YargsInstance_parseFn = new WeakMap(), _YargsInstance_parseContext = new WeakMap(), _YargsInstance_pkgs = new WeakMap(), _YargsInstance_preservedGroups = new WeakMap(), _YargsInstance_processArgs = new WeakMap(), _YargsInstance_recommendCommands = new WeakMap(), _YargsInstance_shim = new WeakMap(), _YargsInstance_strict = new WeakMap(), _YargsInstance_strictCommands = new WeakMap(), _YargsInstance_strictOptions = new WeakMap(), _YargsInstance_usage = new WeakMap(), _YargsInstance_usageConfig = new WeakMap(), _YargsInstance_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) { + if (!argv._ || !argv['--']) + return argv; + argv._.push.apply(argv._, argv['--']); + try { + delete argv['--']; + } + catch (_err) { } + return argv; + } + [kCreateLogger]() { + return { + log: (...args) => { + if (!this[kHasParseCallback]()) + console.log(...args); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_output, "f").length) + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + '\n', "f"); + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + args.join(' '), "f"); + }, + error: (...args) => { + if (!this[kHasParseCallback]()) + console.error(...args); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_output, "f").length) + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + '\n', "f"); + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + args.join(' '), "f"); + }, + }; + } + [kDeleteFromParserHintObject](optionKey) { + objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, "f")).forEach((hintKey) => { + if (((key) => key === 'configObjects')(hintKey)) + return; + const hint = __classPrivateFieldGet(this, _YargsInstance_options, "f")[hintKey]; + if (Array.isArray(hint)) { + if (hint.includes(optionKey)) + hint.splice(hint.indexOf(optionKey), 1); + } + else if (typeof hint === 'object') { + delete hint[optionKey]; + } + }); + delete __classPrivateFieldGet(this, _YargsInstance_usage, "f").getDescriptions()[optionKey]; + } + [kEmitWarning](warning, type, deduplicationId) { + if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, "f")[deduplicationId]) { + __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.emitWarning(warning, type); + __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, "f")[deduplicationId] = true; + } + } + [kFreeze]() { + __classPrivateFieldGet(this, _YargsInstance_frozens, "f").push({ + options: __classPrivateFieldGet(this, _YargsInstance_options, "f"), + configObjects: __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects.slice(0), + exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, "f"), + groups: __classPrivateFieldGet(this, _YargsInstance_groups, "f"), + strict: __classPrivateFieldGet(this, _YargsInstance_strict, "f"), + strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, "f"), + strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, "f"), + completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f"), + output: __classPrivateFieldGet(this, _YargsInstance_output, "f"), + exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, "f"), + hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, "f"), + parsed: this.parsed, + parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, "f"), + parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, "f"), + }); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").freeze(); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").freeze(); + __classPrivateFieldGet(this, _YargsInstance_command, "f").freeze(); + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").freeze(); + } + [kGetDollarZero]() { + let $0 = ''; + let default$0; + if (/\b(node|iojs|electron)(\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, "f").process.argv()[0])) { + default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.argv().slice(1, 2); + } + else { + default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.argv().slice(0, 1); + } + $0 = default$0 + .map(x => { + const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, "f"), x); + return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x; + }) + .join(' ') + .trim(); + if (__classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('_') && + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('_')) { + $0 = __classPrivateFieldGet(this, _YargsInstance_shim, "f") + .getEnv('_') + .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, "f").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, "f").process.execPath())}/`, ''); + } + return $0; + } + [kGetParserConfiguration]() { + return __classPrivateFieldGet(this, _YargsInstance_parserConfig, "f"); + } + [kGetUsageConfiguration]() { + return __classPrivateFieldGet(this, _YargsInstance_usageConfig, "f"); + } + [kGuessLocale]() { + if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, "f")) + return; + const locale = __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LC_ALL') || + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LC_MESSAGES') || + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LANG') || + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LANGUAGE') || + 'en_US'; + this.locale(locale.replace(/[.:].*/, '')); + } + [kGuessVersion]() { + const obj = this[kPkgUp](); + return obj.version || 'unknown'; + } + [kParsePositionalNumbers](argv) { + const args = argv['--'] ? argv['--'] : argv._; + for (let i = 0, arg; (arg = args[i]) !== undefined; i++) { + if (__classPrivateFieldGet(this, _YargsInstance_shim, "f").Parser.looksLikeNumber(arg) && + Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) { + args[i] = Number(arg); + } + } + return argv; + } + [kPkgUp](rootPath) { + const npath = rootPath || '*'; + if (__classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath]) + return __classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath]; + let obj = {}; + try { + let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, "f").mainFilename; + if (!rootPath && __classPrivateFieldGet(this, _YargsInstance_shim, "f").path.extname(startDir)) { + startDir = __classPrivateFieldGet(this, _YargsInstance_shim, "f").path.dirname(startDir); + } + const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, "f").findUp(startDir, (dir, names) => { + if (names.includes('package.json')) { + return 'package.json'; + } + else { + return undefined; + } + }); + assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, "f").readFileSync(pkgJsonPath, 'utf8')); + } + catch (_noop) { } + __classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath] = obj || {}; + return __classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath]; + } + [kPopulateParserHintArray](type, keys) { + keys = [].concat(keys); + keys.forEach(key => { + key = this[kSanitizeKey](key); + __classPrivateFieldGet(this, _YargsInstance_options, "f")[type].push(key); + }); + } + [kPopulateParserHintSingleValueDictionary](builder, type, key, value) { + this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => { + __classPrivateFieldGet(this, _YargsInstance_options, "f")[type][key] = value; + }); + } + [kPopulateParserHintArrayDictionary](builder, type, key, value) { + this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => { + __classPrivateFieldGet(this, _YargsInstance_options, "f")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, "f")[type][key] || []).concat(value); + }); + } + [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) { + if (Array.isArray(key)) { + key.forEach(k => { + builder(k, value); + }); + } + else if (((key) => typeof key === 'object')(key)) { + for (const k of objectKeys(key)) { + builder(k, key[k]); + } + } + else { + singleKeyHandler(type, this[kSanitizeKey](key), value); + } + } + [kSanitizeKey](key) { + if (key === '__proto__') + return '___proto___'; + return key; + } + [kSetKey](key, set) { + this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set); + return this; + } + [kUnfreeze]() { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; + const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, "f").pop(); + assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + let configObjects; + (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, { + options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, "f"); } }).value, + configObjects, + exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, "f"); } }).value, + groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, "f"); } }).value, + output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, "f"); } }).value, + exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, "f"); } }).value, + hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, "f"); } }).value, + parsed: this.parsed, + strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, "f"); } }).value, + strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, "f"); } }).value, + strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, "f"); } }).value, + completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, "f"); } }).value, + parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, "f"); } }).value, + parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, "f"); } }).value, + } = frozen); + __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects = configObjects; + __classPrivateFieldGet(this, _YargsInstance_usage, "f").unfreeze(); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").unfreeze(); + __classPrivateFieldGet(this, _YargsInstance_command, "f").unfreeze(); + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").unfreeze(); + } + [kValidateAsync](validation, argv) { + return maybeAsyncResult(argv, result => { + validation(result); + return result; + }); + } + getInternalMethods() { + return { + getCommandInstance: this[kGetCommandInstance].bind(this), + getContext: this[kGetContext].bind(this), + getHasOutput: this[kGetHasOutput].bind(this), + getLoggerInstance: this[kGetLoggerInstance].bind(this), + getParseContext: this[kGetParseContext].bind(this), + getParserConfiguration: this[kGetParserConfiguration].bind(this), + getUsageConfiguration: this[kGetUsageConfiguration].bind(this), + getUsageInstance: this[kGetUsageInstance].bind(this), + getValidationInstance: this[kGetValidationInstance].bind(this), + hasParseCallback: this[kHasParseCallback].bind(this), + isGlobalContext: this[kIsGlobalContext].bind(this), + postProcess: this[kPostProcess].bind(this), + reset: this[kReset].bind(this), + runValidation: this[kRunValidation].bind(this), + runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this), + setHasOutput: this[kSetHasOutput].bind(this), + }; + } + [kGetCommandInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_command, "f"); + } + [kGetContext]() { + return __classPrivateFieldGet(this, _YargsInstance_context, "f"); + } + [kGetHasOutput]() { + return __classPrivateFieldGet(this, _YargsInstance_hasOutput, "f"); + } + [kGetLoggerInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_logger, "f"); + } + [kGetParseContext]() { + return __classPrivateFieldGet(this, _YargsInstance_parseContext, "f") || {}; + } + [kGetUsageInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_usage, "f"); + } + [kGetValidationInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_validation, "f"); + } + [kHasParseCallback]() { + return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, "f"); + } + [kIsGlobalContext]() { + return __classPrivateFieldGet(this, _YargsInstance_isGlobalContext, "f"); + } + [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) { + if (calledFromCommand) + return argv; + if (isPromise(argv)) + return argv; + if (!populateDoubleDash) { + argv = this[kCopyDoubleDash](argv); + } + const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] || + this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined; + if (parsePositionalNumbers) { + argv = this[kParsePositionalNumbers](argv); + } + if (runGlobalMiddleware) { + argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").getMiddleware(), false); + } + return argv; + } + [kReset](aliases = {}) { + __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, "f") || {}, "f"); + const tmpOptions = {}; + tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, "f").local || []; + tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects || []; + const localLookup = {}; + tmpOptions.local.forEach(l => { + localLookup[l] = true; + (aliases[l] || []).forEach(a => { + localLookup[a] = true; + }); + }); + Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, "f")).reduce((acc, groupName) => { + const keys = __classPrivateFieldGet(this, _YargsInstance_groups, "f")[groupName].filter(key => !(key in localLookup)); + if (keys.length > 0) { + acc[groupName] = keys; + } + return acc; + }, {})); + __classPrivateFieldSet(this, _YargsInstance_groups, {}, "f"); + const arrayOptions = [ + 'array', + 'boolean', + 'string', + 'skipValidation', + 'count', + 'normalize', + 'number', + 'hiddenOptions', + ]; + const objectOptions = [ + 'narg', + 'key', + 'alias', + 'default', + 'defaultDescription', + 'config', + 'choices', + 'demandedOptions', + 'demandedCommands', + 'deprecatedOptions', + ]; + arrayOptions.forEach(k => { + tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, "f")[k] || []).filter((k) => !localLookup[k]); + }); + objectOptions.forEach((k) => { + tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, "f")[k], k => !localLookup[k]); + }); + tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, "f").envPrefix; + __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, "f"); + __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, "f") + ? __classPrivateFieldGet(this, _YargsInstance_usage, "f").reset(localLookup) + : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, "f") + ? __classPrivateFieldGet(this, _YargsInstance_validation, "f").reset(localLookup) + : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, "f"), __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, "f") + ? __classPrivateFieldGet(this, _YargsInstance_command, "f").reset() + : Command(__classPrivateFieldGet(this, _YargsInstance_usage, "f"), __classPrivateFieldGet(this, _YargsInstance_validation, "f"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f"), __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + if (!__classPrivateFieldGet(this, _YargsInstance_completion, "f")) + __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, "f"), __classPrivateFieldGet(this, _YargsInstance_command, "f"), __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").reset(); + __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, "f"); + __classPrivateFieldSet(this, _YargsInstance_output, '', "f"); + __classPrivateFieldSet(this, _YargsInstance_exitError, null, "f"); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, "f"); + this.parsed = false; + return this; + } + [kRebase](base, dir) { + return __classPrivateFieldGet(this, _YargsInstance_shim, "f").path.relative(base, dir); + } + [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) { + let skipValidation = !!calledFromCommand || helpOnly; + args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, "f"); + __classPrivateFieldGet(this, _YargsInstance_options, "f").__ = __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.__; + __classPrivateFieldGet(this, _YargsInstance_options, "f").configuration = this[kGetParserConfiguration](); + const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, "f").configuration['populate--']; + const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, "f").configuration, { + 'populate--': true, + }); + const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, "f").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, "f"), { + configuration: { 'parse-positional-numbers': false, ...config }, + })); + const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, "f")); + let argvPromise = undefined; + const aliases = parsed.aliases; + let helpOptSet = false; + let versionOptSet = false; + Object.keys(argv).forEach(key => { + if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, "f") && argv[key]) { + helpOptSet = true; + } + else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, "f") && argv[key]) { + versionOptSet = true; + } + }); + argv.$0 = this.$0; + this.parsed = parsed; + if (commandIndex === 0) { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").clearCachedHelpMessage(); + } + try { + this[kGuessLocale](); + if (shortCircuit) { + return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false); + } + if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")) { + const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")] + .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")] || []) + .filter(k => k.length > 1); + if (helpCmds.includes('' + argv._[argv._.length - 1])) { + argv._.pop(); + helpOptSet = true; + } + } + __classPrivateFieldSet(this, _YargsInstance_isGlobalContext, false, "f"); + const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, "f").getCommands(); + const requestCompletions = __classPrivateFieldGet(this, _YargsInstance_completion, "f").completionKey in argv; + const skipRecommendation = helpOptSet || requestCompletions || helpOnly; + if (argv._.length) { + if (handlerKeys.length) { + let firstUnknownCommand; + for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) { + cmd = String(argv._[i]); + if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f")) { + const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, "f").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly); + return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false); + } + else if (!firstUnknownCommand && + cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f")) { + firstUnknownCommand = cmd; + break; + } + } + if (!__classPrivateFieldGet(this, _YargsInstance_command, "f").hasDefaultCommand() && + __classPrivateFieldGet(this, _YargsInstance_recommendCommands, "f") && + firstUnknownCommand && + !skipRecommendation) { + __classPrivateFieldGet(this, _YargsInstance_validation, "f").recommendCommands(firstUnknownCommand, handlerKeys); + } + } + if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, "f") && + argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, "f")) && + !requestCompletions) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + this.showCompletionScript(); + this.exit(0); + } + } + if (__classPrivateFieldGet(this, _YargsInstance_command, "f").hasDefaultCommand() && !skipRecommendation) { + const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, "f").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly); + return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false); + } + if (requestCompletions) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + args = [].concat(args); + const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, "f").completionKey}`) + 1); + __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(completionArgs, (err, completions) => { + if (err) + throw new YError(err.message); + (completions || []).forEach(completion => { + __classPrivateFieldGet(this, _YargsInstance_logger, "f").log(completion); + }); + this.exit(0); + }); + return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false); + } + if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, "f")) { + if (helpOptSet) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + skipValidation = true; + this.showHelp('log'); + this.exit(0); + } + else if (versionOptSet) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + skipValidation = true; + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showVersion('log'); + this.exit(0); + } + } + if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, "f").skipValidation.length > 0) { + skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, "f").skipValidation.indexOf(key) >= 0 && argv[key] === true); + } + if (!skipValidation) { + if (parsed.error) + throw new YError(parsed.error.message); + if (!requestCompletions) { + const validation = this[kRunValidation](aliases, {}, parsed.error); + if (!calledFromCommand) { + argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").getMiddleware(), true); + } + argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv); + if (isPromise(argvPromise) && !calledFromCommand) { + argvPromise = argvPromise.then(() => { + return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").getMiddleware(), false); + }); + } + } + } + } + catch (err) { + if (err instanceof YError) + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(err.message, err); + else + throw err; + } + return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true); + } + [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) { + const demandedOptions = { ...this.getDemandedOptions() }; + return (argv) => { + if (parseErrors) + throw new YError(parseErrors.message); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").nonOptionCount(argv); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").requiredArguments(argv, demandedOptions); + let failedStrictCommands = false; + if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, "f")) { + failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, "f").unknownCommands(argv); + } + if (__classPrivateFieldGet(this, _YargsInstance_strict, "f") && !failedStrictCommands) { + __classPrivateFieldGet(this, _YargsInstance_validation, "f").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand); + } + else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, "f")) { + __classPrivateFieldGet(this, _YargsInstance_validation, "f").unknownArguments(argv, aliases, {}, false, false); + } + __classPrivateFieldGet(this, _YargsInstance_validation, "f").limitedChoices(argv); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").implications(argv); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").conflicting(argv); + }; + } + [kSetHasOutput]() { + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + } + [kTrackManuallySetKeys](keys) { + if (typeof keys === 'string') { + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[keys] = true; + } + else { + for (const k of keys) { + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[k] = true; + } + } + } +} +export function isYargsInstance(y) { + return !!y && typeof y.getInternalMethods === 'function'; +} diff --git a/node_modules/yargs/build/lib/yerror.js b/node_modules/yargs/build/lib/yerror.js new file mode 100644 index 0000000..7a36684 --- /dev/null +++ b/node_modules/yargs/build/lib/yerror.js @@ -0,0 +1,9 @@ +export class YError extends Error { + constructor(msg) { + super(msg || 'yargs error'); + this.name = 'YError'; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, YError); + } + } +} diff --git a/node_modules/yargs/helpers/helpers.mjs b/node_modules/yargs/helpers/helpers.mjs new file mode 100644 index 0000000..3f96b3d --- /dev/null +++ b/node_modules/yargs/helpers/helpers.mjs @@ -0,0 +1,10 @@ +import {applyExtends as _applyExtends} from '../build/lib/utils/apply-extends.js'; +import {hideBin} from '../build/lib/utils/process-argv.js'; +import Parser from 'yargs-parser'; +import shim from '../lib/platform-shims/esm.mjs'; + +const applyExtends = (config, cwd, mergeExtends) => { + return _applyExtends(config, cwd, mergeExtends, shim); +}; + +export {applyExtends, hideBin, Parser}; diff --git a/node_modules/yargs/helpers/index.js b/node_modules/yargs/helpers/index.js new file mode 100644 index 0000000..8ab79a3 --- /dev/null +++ b/node_modules/yargs/helpers/index.js @@ -0,0 +1,14 @@ +const { + applyExtends, + cjsPlatformShim, + Parser, + processArgv, +} = require('../build/index.cjs'); + +module.exports = { + applyExtends: (config, cwd, mergeExtends) => { + return applyExtends(config, cwd, mergeExtends, cjsPlatformShim); + }, + hideBin: processArgv.hideBin, + Parser, +}; diff --git a/node_modules/yargs/helpers/package.json b/node_modules/yargs/helpers/package.json new file mode 100644 index 0000000..5bbefff --- /dev/null +++ b/node_modules/yargs/helpers/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/node_modules/yargs/index.cjs b/node_modules/yargs/index.cjs new file mode 100644 index 0000000..d1eee82 --- /dev/null +++ b/node_modules/yargs/index.cjs @@ -0,0 +1,53 @@ +'use strict'; +// classic singleton yargs API, to use yargs +// without running as a singleton do: +// require('yargs/yargs')(process.argv.slice(2)) +const {Yargs, processArgv} = require('./build/index.cjs'); + +Argv(processArgv.hideBin(process.argv)); + +module.exports = Argv; + +function Argv(processArgs, cwd) { + const argv = Yargs(processArgs, cwd, require); + singletonify(argv); + // TODO(bcoe): warn if argv.parse() or argv.argv is used directly. + return argv; +} + +function defineGetter(obj, key, getter) { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: true, + get: getter, + }); +} +function lookupGetter(obj, key) { + const desc = Object.getOwnPropertyDescriptor(obj, key); + if (typeof desc !== 'undefined') { + return desc.get; + } +} + +/* Hack an instance of Argv with process.argv into Argv + so people can do + require('yargs')(['--beeble=1','-z','zizzle']).argv + to parse a list of args and + require('yargs').argv + to get a parsed version of process.argv. +*/ +function singletonify(inst) { + [ + ...Object.keys(inst), + ...Object.getOwnPropertyNames(inst.constructor.prototype), + ].forEach(key => { + if (key === 'argv') { + defineGetter(Argv, key, lookupGetter(inst, key)); + } else if (typeof inst[key] === 'function') { + Argv[key] = inst[key].bind(inst); + } else { + defineGetter(Argv, '$0', () => inst.$0); + defineGetter(Argv, 'parsed', () => inst.parsed); + } + }); +} diff --git a/node_modules/yargs/index.mjs b/node_modules/yargs/index.mjs new file mode 100644 index 0000000..c6440b9 --- /dev/null +++ b/node_modules/yargs/index.mjs @@ -0,0 +1,8 @@ +'use strict'; + +// Bootstraps yargs for ESM: +import esmPlatformShim from './lib/platform-shims/esm.mjs'; +import {YargsFactory} from './build/lib/yargs-factory.js'; + +const Yargs = YargsFactory(esmPlatformShim); +export default Yargs; diff --git a/node_modules/yargs/lib/platform-shims/browser.mjs b/node_modules/yargs/lib/platform-shims/browser.mjs new file mode 100644 index 0000000..5f8ec61 --- /dev/null +++ b/node_modules/yargs/lib/platform-shims/browser.mjs @@ -0,0 +1,95 @@ +/* eslint-disable no-unused-vars */ +'use strict'; + +import cliui from 'https://unpkg.com/cliui@7.0.1/index.mjs'; // eslint-disable-line +import Parser from 'https://unpkg.com/yargs-parser@19.0.0/browser.js'; // eslint-disable-line +import {getProcessArgvBin} from '../../build/lib/utils/process-argv.js'; +import {YError} from '../../build/lib/yerror.js'; + +const REQUIRE_ERROR = 'require is not supported in browser'; +const REQUIRE_DIRECTORY_ERROR = + 'loading a directory of commands is not supported in browser'; + +export default { + assert: { + notStrictEqual: (a, b) => { + // noop. + }, + strictEqual: (a, b) => { + // noop. + }, + }, + cliui, + findUp: () => undefined, + getEnv: key => { + // There is no environment in browser: + return undefined; + }, + inspect: console.log, + getCallerFile: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR); + }, + getProcessArgvBin, + mainFilename: 'yargs', + Parser, + path: { + basename: str => str, + dirname: str => str, + extname: str => str, + relative: str => str, + }, + process: { + argv: () => [], + cwd: () => '', + emitWarning: (warning, name) => {}, + execPath: () => '', + // exit is noop browser: + exit: () => {}, + nextTick: cb => { + // eslint-disable-next-line no-undef + window.setTimeout(cb, 1); + }, + stdColumns: 80, + }, + readFileSync: () => { + return ''; + }, + require: () => { + throw new YError(REQUIRE_ERROR); + }, + requireDirectory: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR); + }, + stringWidth: str => { + return [...str].length; + }, + // TODO: replace this with y18n once it's ported to ESM: + y18n: { + __: (...str) => { + if (str.length === 0) return ''; + const args = str.slice(1); + return sprintf(str[0], ...args); + }, + __n: (str1, str2, count, ...args) => { + if (count === 1) { + return sprintf(str1, ...args); + } else { + return sprintf(str2, ...args); + } + }, + getLocale: () => { + return 'en_US'; + }, + setLocale: () => {}, + updateLocale: () => {}, + }, +}; + +function sprintf(_str, ...args) { + let str = ''; + const split = _str.split('%s'); + split.forEach((token, i) => { + str += `${token}${split[i + 1] !== undefined && args[i] ? args[i] : ''}`; + }); + return str; +} diff --git a/node_modules/yargs/lib/platform-shims/esm.mjs b/node_modules/yargs/lib/platform-shims/esm.mjs new file mode 100644 index 0000000..c25baa5 --- /dev/null +++ b/node_modules/yargs/lib/platform-shims/esm.mjs @@ -0,0 +1,73 @@ +'use strict' + +import { notStrictEqual, strictEqual } from 'assert' +import cliui from 'cliui' +import escalade from 'escalade/sync' +import { inspect } from 'util' +import { readFileSync } from 'fs' +import { fileURLToPath } from 'url'; +import Parser from 'yargs-parser' +import { basename, dirname, extname, relative, resolve } from 'path' +import { getProcessArgvBin } from '../../build/lib/utils/process-argv.js' +import { YError } from '../../build/lib/yerror.js' +import y18n from 'y18n' + +const REQUIRE_ERROR = 'require is not supported by ESM' +const REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM' + +let __dirname; +try { + __dirname = fileURLToPath(import.meta.url); +} catch (e) { + __dirname = process.cwd(); +} +const mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules')); + +export default { + assert: { + notStrictEqual, + strictEqual + }, + cliui, + findUp: escalade, + getEnv: (key) => { + return process.env[key] + }, + inspect, + getCallerFile: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR) + }, + getProcessArgvBin, + mainFilename: mainFilename || process.cwd(), + Parser, + path: { + basename, + dirname, + extname, + relative, + resolve + }, + process: { + argv: () => process.argv, + cwd: process.cwd, + emitWarning: (warning, type) => process.emitWarning(warning, type), + execPath: () => process.execPath, + exit: process.exit, + nextTick: process.nextTick, + stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null + }, + readFileSync, + require: () => { + throw new YError(REQUIRE_ERROR) + }, + requireDirectory: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR) + }, + stringWidth: (str) => { + return [...str].length + }, + y18n: y18n({ + directory: resolve(__dirname, '../../../locales'), + updateFiles: false + }) +} diff --git a/node_modules/yargs/locales/be.json b/node_modules/yargs/locales/be.json new file mode 100644 index 0000000..e28fa30 --- /dev/null +++ b/node_modules/yargs/locales/be.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Каманды:", + "Options:": "Опцыі:", + "Examples:": "Прыклады:", + "boolean": "булевы тып", + "count": "падлік", + "string": "радковы тып", + "number": "лік", + "array": "масіў", + "required": "неабходна", + "default": "па змаўчанні", + "default:": "па змаўчанні:", + "choices:": "магчымасці:", + "aliases:": "аліасы:", + "generated-value": "згенераванае значэнне", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s", + "other": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s", + "other": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s" + }, + "Missing argument value: %s": { + "one": "Не хапае значэння аргументу: %s", + "other": "Не хапае значэнняў аргументаў: %s" + }, + "Missing required argument: %s": { + "one": "Не хапае неабходнага аргументу: %s", + "other": "Не хапае неабходных аргументаў: %s" + }, + "Unknown argument: %s": { + "one": "Невядомы аргумент: %s", + "other": "Невядомыя аргументы: %s" + }, + "Invalid values:": "Несапраўдныя значэння:", + "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s", + "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s", + "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:", + "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s", + "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s", + "Path to JSON config file": "Шлях да файла канфігурацыі JSON", + "Show help": "Паказаць дапамогу", + "Show version number": "Паказаць нумар версіі", + "Did you mean %s?": "Вы мелі на ўвазе %s?" +} diff --git a/node_modules/yargs/locales/cs.json b/node_modules/yargs/locales/cs.json new file mode 100644 index 0000000..6394875 --- /dev/null +++ b/node_modules/yargs/locales/cs.json @@ -0,0 +1,51 @@ +{ + "Commands:": "Příkazy:", + "Options:": "Možnosti:", + "Examples:": "Příklady:", + "boolean": "logická hodnota", + "count": "počet", + "string": "řetězec", + "number": "číslo", + "array": "pole", + "required": "povinné", + "default": "výchozí", + "default:": "výchozí:", + "choices:": "volby:", + "aliases:": "aliasy:", + "generated-value": "generovaná-hodnota", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Nedostatek argumentů: zadáno %s, je potřeba alespoň %s", + "other": "Nedostatek argumentů: zadáno %s, je potřeba alespoň %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Příliš mnoho argumentů: zadáno %s, maximálně %s", + "other": "Příliš mnoho argumentů: zadáno %s, maximálně %s" + }, + "Missing argument value: %s": { + "one": "Chybí hodnota argumentu: %s", + "other": "Chybí hodnoty argumentů: %s" + }, + "Missing required argument: %s": { + "one": "Chybí požadovaný argument: %s", + "other": "Chybí požadované argumenty: %s" + }, + "Unknown argument: %s": { + "one": "Neznámý argument: %s", + "other": "Neznámé argumenty: %s" + }, + "Invalid values:": "Neplatné hodnoty:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Zadáno: %s, Možnosti: %s", + "Argument check failed: %s": "Kontrola argumentů se nezdařila: %s", + "Implications failed:": "Chybí závislé argumenty:", + "Not enough arguments following: %s": "Následuje nedostatek argumentů: %s", + "Invalid JSON config file: %s": "Neplatný konfigurační soubor JSON: %s", + "Path to JSON config file": "Cesta ke konfiguračnímu souboru JSON", + "Show help": "Zobrazit nápovědu", + "Show version number": "Zobrazit číslo verze", + "Did you mean %s?": "Měl jste na mysli %s?", + "Arguments %s and %s are mutually exclusive" : "Argumenty %s a %s se vzájemně vylučují", + "Positionals:": "Poziční:", + "command": "příkaz", + "deprecated": "zastaralé", + "deprecated: %s": "zastaralé: %s" +} diff --git a/node_modules/yargs/locales/de.json b/node_modules/yargs/locales/de.json new file mode 100644 index 0000000..dc73ec3 --- /dev/null +++ b/node_modules/yargs/locales/de.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Kommandos:", + "Options:": "Optionen:", + "Examples:": "Beispiele:", + "boolean": "boolean", + "count": "Zähler", + "string": "string", + "number": "Zahl", + "array": "array", + "required": "erforderlich", + "default": "Standard", + "default:": "Standard:", + "choices:": "Möglichkeiten:", + "aliases:": "Aliase:", + "generated-value": "Generierter-Wert", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt", + "other": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt", + "other": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt" + }, + "Missing argument value: %s": { + "one": "Fehlender Argumentwert: %s", + "other": "Fehlende Argumentwerte: %s" + }, + "Missing required argument: %s": { + "one": "Fehlendes Argument: %s", + "other": "Fehlende Argumente: %s" + }, + "Unknown argument: %s": { + "one": "Unbekanntes Argument: %s", + "other": "Unbekannte Argumente: %s" + }, + "Invalid values:": "Unzulässige Werte:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s", + "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s", + "Implications failed:": "Fehlende abhängige Argumente:", + "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s", + "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s", + "Path to JSON config file": "Pfad zur JSON-Config Datei", + "Show help": "Hilfe anzeigen", + "Show version number": "Version anzeigen", + "Did you mean %s?": "Meintest du %s?" +} diff --git a/node_modules/yargs/locales/en.json b/node_modules/yargs/locales/en.json new file mode 100644 index 0000000..af096a1 --- /dev/null +++ b/node_modules/yargs/locales/en.json @@ -0,0 +1,55 @@ +{ + "Commands:": "Commands:", + "Options:": "Options:", + "Examples:": "Examples:", + "boolean": "boolean", + "count": "count", + "string": "string", + "number": "number", + "array": "array", + "required": "required", + "default": "default", + "default:": "default:", + "choices:": "choices:", + "aliases:": "aliases:", + "generated-value": "generated-value", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Not enough non-option arguments: got %s, need at least %s", + "other": "Not enough non-option arguments: got %s, need at least %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Too many non-option arguments: got %s, maximum of %s", + "other": "Too many non-option arguments: got %s, maximum of %s" + }, + "Missing argument value: %s": { + "one": "Missing argument value: %s", + "other": "Missing argument values: %s" + }, + "Missing required argument: %s": { + "one": "Missing required argument: %s", + "other": "Missing required arguments: %s" + }, + "Unknown argument: %s": { + "one": "Unknown argument: %s", + "other": "Unknown arguments: %s" + }, + "Unknown command: %s": { + "one": "Unknown command: %s", + "other": "Unknown commands: %s" + }, + "Invalid values:": "Invalid values:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s", + "Argument check failed: %s": "Argument check failed: %s", + "Implications failed:": "Missing dependent arguments:", + "Not enough arguments following: %s": "Not enough arguments following: %s", + "Invalid JSON config file: %s": "Invalid JSON config file: %s", + "Path to JSON config file": "Path to JSON config file", + "Show help": "Show help", + "Show version number": "Show version number", + "Did you mean %s?": "Did you mean %s?", + "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive", + "Positionals:": "Positionals:", + "command": "command", + "deprecated": "deprecated", + "deprecated: %s": "deprecated: %s" +} diff --git a/node_modules/yargs/locales/es.json b/node_modules/yargs/locales/es.json new file mode 100644 index 0000000..d77b461 --- /dev/null +++ b/node_modules/yargs/locales/es.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Comandos:", + "Options:": "Opciones:", + "Examples:": "Ejemplos:", + "boolean": "booleano", + "count": "cuenta", + "string": "cadena de caracteres", + "number": "número", + "array": "tabla", + "required": "requerido", + "default": "defecto", + "default:": "defecto:", + "choices:": "selección:", + "aliases:": "alias:", + "generated-value": "valor-generado", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s", + "other": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s", + "other": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s" + }, + "Missing argument value: %s": { + "one": "Falta argumento: %s", + "other": "Faltan argumentos: %s" + }, + "Missing required argument: %s": { + "one": "Falta argumento requerido: %s", + "other": "Faltan argumentos requeridos: %s" + }, + "Unknown argument: %s": { + "one": "Argumento desconocido: %s", + "other": "Argumentos desconocidos: %s" + }, + "Invalid values:": "Valores inválidos:", + "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s", + "Argument check failed: %s": "Verificación de argumento ha fallado: %s", + "Implications failed:": "Implicaciones fallidas:", + "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s", + "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s", + "Path to JSON config file": "Ruta al archivo de configuración JSON", + "Show help": "Muestra ayuda", + "Show version number": "Muestra número de versión", + "Did you mean %s?": "Quisiste decir %s?" +} diff --git a/node_modules/yargs/locales/fi.json b/node_modules/yargs/locales/fi.json new file mode 100644 index 0000000..481feb7 --- /dev/null +++ b/node_modules/yargs/locales/fi.json @@ -0,0 +1,49 @@ +{ + "Commands:": "Komennot:", + "Options:": "Valinnat:", + "Examples:": "Esimerkkejä:", + "boolean": "totuusarvo", + "count": "lukumäärä", + "string": "merkkijono", + "number": "numero", + "array": "taulukko", + "required": "pakollinen", + "default": "oletusarvo", + "default:": "oletusarvo:", + "choices:": "vaihtoehdot:", + "aliases:": "aliakset:", + "generated-value": "generoitu-arvo", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s", + "other": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s", + "other": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s" + }, + "Missing argument value: %s": { + "one": "Argumentin arvo puuttuu: %s", + "other": "Argumentin arvot puuttuvat: %s" + }, + "Missing required argument: %s": { + "one": "Pakollinen argumentti puuttuu: %s", + "other": "Pakollisia argumentteja puuttuu: %s" + }, + "Unknown argument: %s": { + "one": "Tuntematon argumentti: %s", + "other": "Tuntemattomia argumentteja: %s" + }, + "Invalid values:": "Virheelliset arvot:", + "Argument: %s, Given: %s, Choices: %s": "Argumentti: %s, Annettu: %s, Vaihtoehdot: %s", + "Argument check failed: %s": "Argumentin tarkistus epäonnistui: %s", + "Implications failed:": "Riippuvia argumentteja puuttuu:", + "Not enough arguments following: %s": "Argumentin perässä ei ole tarpeeksi argumentteja: %s", + "Invalid JSON config file: %s": "Epävalidi JSON-asetustiedosto: %s", + "Path to JSON config file": "JSON-asetustiedoston polku", + "Show help": "Näytä ohje", + "Show version number": "Näytä versionumero", + "Did you mean %s?": "Tarkoititko %s?", + "Arguments %s and %s are mutually exclusive" : "Argumentit %s ja %s eivät ole yhteensopivat", + "Positionals:": "Sijaintiparametrit:", + "command": "komento" +} diff --git a/node_modules/yargs/locales/fr.json b/node_modules/yargs/locales/fr.json new file mode 100644 index 0000000..edd743f --- /dev/null +++ b/node_modules/yargs/locales/fr.json @@ -0,0 +1,53 @@ +{ + "Commands:": "Commandes :", + "Options:": "Options :", + "Examples:": "Exemples :", + "boolean": "booléen", + "count": "compteur", + "string": "chaîne de caractères", + "number": "nombre", + "array": "tableau", + "required": "requis", + "default": "défaut", + "default:": "défaut :", + "choices:": "choix :", + "aliases:": "alias :", + "generated-value": "valeur générée", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Pas assez d'arguments (hors options) : reçu %s, besoin d'au moins %s", + "other": "Pas assez d'arguments (hors options) : reçus %s, besoin d'au moins %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Trop d'arguments (hors options) : reçu %s, maximum de %s", + "other": "Trop d'arguments (hors options) : reçus %s, maximum de %s" + }, + "Missing argument value: %s": { + "one": "Argument manquant : %s", + "other": "Arguments manquants : %s" + }, + "Missing required argument: %s": { + "one": "Argument requis manquant : %s", + "other": "Arguments requis manquants : %s" + }, + "Unknown argument: %s": { + "one": "Argument inconnu : %s", + "other": "Arguments inconnus : %s" + }, + "Unknown command: %s": { + "one": "Commande inconnue : %s", + "other": "Commandes inconnues : %s" + }, + "Invalid values:": "Valeurs invalides :", + "Argument: %s, Given: %s, Choices: %s": "Argument : %s, donné : %s, choix : %s", + "Argument check failed: %s": "Echec de la vérification de l'argument : %s", + "Implications failed:": "Arguments dépendants manquants :", + "Not enough arguments following: %s": "Pas assez d'arguments après : %s", + "Invalid JSON config file: %s": "Fichier de configuration JSON invalide : %s", + "Path to JSON config file": "Chemin du fichier de configuration JSON", + "Show help": "Affiche l'aide", + "Show version number": "Affiche le numéro de version", + "Did you mean %s?": "Vouliez-vous dire %s ?", + "Arguments %s and %s are mutually exclusive" : "Les arguments %s et %s sont mutuellement exclusifs", + "Positionals:": "Arguments positionnels :", + "command": "commande" +} diff --git a/node_modules/yargs/locales/hi.json b/node_modules/yargs/locales/hi.json new file mode 100644 index 0000000..a9de77c --- /dev/null +++ b/node_modules/yargs/locales/hi.json @@ -0,0 +1,49 @@ +{ + "Commands:": "आदेश:", + "Options:": "विकल्प:", + "Examples:": "उदाहरण:", + "boolean": "सत्यता", + "count": "संख्या", + "string": "वर्णों का तार ", + "number": "अंक", + "array": "सरणी", + "required": "आवश्यक", + "default": "डिफॉल्ट", + "default:": "डिफॉल्ट:", + "choices:": "विकल्प:", + "aliases:": "उपनाम:", + "generated-value": "उत्पन्न-मूल्य", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है", + "other": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य", + "other": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य" + }, + "Missing argument value: %s": { + "one": "कुछ तर्को के मूल्य गुम हैं: %s", + "other": "कुछ तर्को के मूल्य गुम हैं: %s" + }, + "Missing required argument: %s": { + "one": "आवश्यक तर्क गुम हैं: %s", + "other": "आवश्यक तर्क गुम हैं: %s" + }, + "Unknown argument: %s": { + "one": "अज्ञात तर्क प्राप्त: %s", + "other": "अज्ञात तर्क प्राप्त: %s" + }, + "Invalid values:": "अमान्य मूल्य:", + "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s", + "Argument check failed: %s": "तर्क जांच विफल: %s", + "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:", + "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s", + "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s", + "Path to JSON config file": "JSON config फाइल का पथ", + "Show help": "सहायता दिखाएँ", + "Show version number": "Version संख्या दिखाएँ", + "Did you mean %s?": "क्या आपका मतलब है %s?", + "Arguments %s and %s are mutually exclusive" : "तर्क %s और %s परस्पर अनन्य हैं", + "Positionals:": "स्थानीय:", + "command": "आदेश" +} diff --git a/node_modules/yargs/locales/hu.json b/node_modules/yargs/locales/hu.json new file mode 100644 index 0000000..21492d0 --- /dev/null +++ b/node_modules/yargs/locales/hu.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Parancsok:", + "Options:": "Opciók:", + "Examples:": "Példák:", + "boolean": "boolean", + "count": "számláló", + "string": "szöveg", + "number": "szám", + "array": "tömb", + "required": "kötelező", + "default": "alapértelmezett", + "default:": "alapértelmezett:", + "choices:": "lehetőségek:", + "aliases:": "aliaszok:", + "generated-value": "generált-érték", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell", + "other": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet", + "other": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet" + }, + "Missing argument value: %s": { + "one": "Hiányzó argumentum érték: %s", + "other": "Hiányzó argumentum értékek: %s" + }, + "Missing required argument: %s": { + "one": "Hiányzó kötelező argumentum: %s", + "other": "Hiányzó kötelező argumentumok: %s" + }, + "Unknown argument: %s": { + "one": "Ismeretlen argumentum: %s", + "other": "Ismeretlen argumentumok: %s" + }, + "Invalid values:": "Érvénytelen érték:", + "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s", + "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s", + "Implications failed:": "Implikációk sikertelenek:", + "Not enough arguments following: %s": "Nem elég argumentum követi: %s", + "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s", + "Path to JSON config file": "JSON konfigurációs file helye", + "Show help": "Súgo megjelenítése", + "Show version number": "Verziószám megjelenítése", + "Did you mean %s?": "Erre gondoltál %s?" +} diff --git a/node_modules/yargs/locales/id.json b/node_modules/yargs/locales/id.json new file mode 100644 index 0000000..125867c --- /dev/null +++ b/node_modules/yargs/locales/id.json @@ -0,0 +1,50 @@ + +{ + "Commands:": "Perintah:", + "Options:": "Pilihan:", + "Examples:": "Contoh:", + "boolean": "boolean", + "count": "jumlah", + "number": "nomor", + "string": "string", + "array": "larik", + "required": "diperlukan", + "default": "bawaan", + "default:": "bawaan:", + "aliases:": "istilah lain:", + "choices:": "pilihan:", + "generated-value": "nilai-yang-dihasilkan", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Argumen wajib kurang: hanya %s, minimal %s", + "other": "Argumen wajib kurang: hanya %s, minimal %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Terlalu banyak argumen wajib: ada %s, maksimal %s", + "other": "Terlalu banyak argumen wajib: ada %s, maksimal %s" + }, + "Missing argument value: %s": { + "one": "Kurang argumen: %s", + "other": "Kurang argumen: %s" + }, + "Missing required argument: %s": { + "one": "Kurang argumen wajib: %s", + "other": "Kurang argumen wajib: %s" + }, + "Unknown argument: %s": { + "one": "Argumen tak diketahui: %s", + "other": "Argumen tak diketahui: %s" + }, + "Invalid values:": "Nilai-nilai tidak valid:", + "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s", + "Argument check failed: %s": "Pemeriksaan argument gagal: %s", + "Implications failed:": "Implikasi gagal:", + "Not enough arguments following: %s": "Kurang argumen untuk: %s", + "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s", + "Path to JSON config file": "Alamat berkas konfigurasi JSON", + "Show help": "Lihat bantuan", + "Show version number": "Lihat nomor versi", + "Did you mean %s?": "Maksud Anda: %s?", + "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif", + "Positionals:": "Posisional-posisional:", + "command": "perintah" +} diff --git a/node_modules/yargs/locales/it.json b/node_modules/yargs/locales/it.json new file mode 100644 index 0000000..fde5756 --- /dev/null +++ b/node_modules/yargs/locales/it.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Comandi:", + "Options:": "Opzioni:", + "Examples:": "Esempi:", + "boolean": "booleano", + "count": "contatore", + "string": "stringa", + "number": "numero", + "array": "vettore", + "required": "richiesto", + "default": "predefinito", + "default:": "predefinito:", + "choices:": "scelte:", + "aliases:": "alias:", + "generated-value": "valore generato", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s", + "other": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s", + "other": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s" + }, + "Missing argument value: %s": { + "one": "Argomento mancante: %s", + "other": "Argomenti mancanti: %s" + }, + "Missing required argument: %s": { + "one": "Argomento richiesto mancante: %s", + "other": "Argomenti richiesti mancanti: %s" + }, + "Unknown argument: %s": { + "one": "Argomento sconosciuto: %s", + "other": "Argomenti sconosciuti: %s" + }, + "Invalid values:": "Valori non validi:", + "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s", + "Argument check failed: %s": "Controllo dell'argomento fallito: %s", + "Implications failed:": "Argomenti dipendenti mancanti:", + "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s", + "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s", + "Path to JSON config file": "Percorso del file di configurazione JSON", + "Show help": "Mostra la schermata di aiuto", + "Show version number": "Mostra il numero di versione", + "Did you mean %s?": "Intendi forse %s?" +} diff --git a/node_modules/yargs/locales/ja.json b/node_modules/yargs/locales/ja.json new file mode 100644 index 0000000..3954ae6 --- /dev/null +++ b/node_modules/yargs/locales/ja.json @@ -0,0 +1,51 @@ +{ + "Commands:": "コマンド:", + "Options:": "オプション:", + "Examples:": "例:", + "boolean": "真偽", + "count": "カウント", + "string": "文字列", + "number": "数値", + "array": "配列", + "required": "必須", + "default": "デフォルト", + "default:": "デフォルト:", + "choices:": "選択してください:", + "aliases:": "エイリアス:", + "generated-value": "生成された値", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:", + "other": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:", + "other": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:" + }, + "Missing argument value: %s": { + "one": "引数の値が見つかりません: %s", + "other": "引数の値が見つかりません: %s" + }, + "Missing required argument: %s": { + "one": "必須の引数が見つかりません: %s", + "other": "必須の引数が見つかりません: %s" + }, + "Unknown argument: %s": { + "one": "未知の引数です: %s", + "other": "未知の引数です: %s" + }, + "Invalid values:": "不正な値です:", + "Argument: %s, Given: %s, Choices: %s": "引数は %s です。与えられた値: %s, 選択してください: %s", + "Argument check failed: %s": "引数のチェックに失敗しました: %s", + "Implications failed:": "オプションの組み合わせで不正が生じました:", + "Not enough arguments following: %s": "次の引数が不足しています。: %s", + "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s", + "Path to JSON config file": "JSONの設定ファイルまでのpath", + "Show help": "ヘルプを表示", + "Show version number": "バージョンを表示", + "Did you mean %s?": "もしかして %s?", + "Arguments %s and %s are mutually exclusive" : "引数 %s と %s は同時に指定できません", + "Positionals:": "位置:", + "command": "コマンド", + "deprecated": "非推奨", + "deprecated: %s": "非推奨: %s" +} diff --git a/node_modules/yargs/locales/ko.json b/node_modules/yargs/locales/ko.json new file mode 100644 index 0000000..746bc89 --- /dev/null +++ b/node_modules/yargs/locales/ko.json @@ -0,0 +1,49 @@ +{ + "Commands:": "명령:", + "Options:": "옵션:", + "Examples:": "예시:", + "boolean": "불리언", + "count": "개수", + "string": "문자열", + "number": "숫자", + "array": "배열", + "required": "필수", + "default": "기본값", + "default:": "기본값:", + "choices:": "선택지:", + "aliases:": "별칭:", + "generated-value": "생성된 값", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "옵션이 아닌 인수가 충분하지 않습니다: %s개 입력받음, 최소 %s개 입력 필요", + "other": "옵션이 아닌 인수가 충분하지 않습니다: %s개 입력받음, 최소 %s개 입력 필요" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "옵션이 아닌 인수가 너무 많습니다: %s개 입력받음, 최대 %s개 입력 가능", + "other": "옵션이 아닌 인수가 너무 많습니다: %s개 입력받음, 최대 %s개 입력 가능" + }, + "Missing argument value: %s": { + "one": "인수가 주어지지 않았습니다: %s", + "other": "인수가 주어지지 않았습니다: %s" + }, + "Missing required argument: %s": { + "one": "필수 인수가 주어지지 않았습니다: %s", + "other": "필수 인수가 주어지지 않았습니다: %s" + }, + "Unknown argument: %s": { + "one": "알 수 없는 인수입니다: %s", + "other": "알 수 없는 인수입니다: %s" + }, + "Invalid values:": "유효하지 않은 값:", + "Argument: %s, Given: %s, Choices: %s": "인수: %s, 주어진 값: %s, 선택지: %s", + "Argument check failed: %s": "인수 체크에 실패했습니다: %s", + "Implications failed:": "주어진 인수에 필요한 추가 인수가 주어지지 않았습니다:", + "Not enough arguments following: %s": "다음 인수가 주어지지 않았습니다: %s", + "Invalid JSON config file: %s": "유효하지 않은 JSON 설정 파일: %s", + "Path to JSON config file": "JSON 설정 파일 경로", + "Show help": "도움말 표시", + "Show version number": "버전 표시", + "Did you mean %s?": "%s을(를) 찾으시나요?", + "Arguments %s and %s are mutually exclusive" : "인수 %s과(와) %s은(는) 동시에 지정할 수 없습니다", + "Positionals:": "위치:", + "command": "명령" +} diff --git a/node_modules/yargs/locales/nb.json b/node_modules/yargs/locales/nb.json new file mode 100644 index 0000000..6f410ed --- /dev/null +++ b/node_modules/yargs/locales/nb.json @@ -0,0 +1,44 @@ +{ + "Commands:": "Kommandoer:", + "Options:": "Alternativer:", + "Examples:": "Eksempler:", + "boolean": "boolsk", + "count": "antall", + "string": "streng", + "number": "nummer", + "array": "matrise", + "required": "obligatorisk", + "default": "standard", + "default:": "standard:", + "choices:": "valg:", + "generated-value": "generert-verdi", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s", + "other": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s", + "other": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s" + }, + "Missing argument value: %s": { + "one": "Mangler argument verdi: %s", + "other": "Mangler argument verdier: %s" + }, + "Missing required argument: %s": { + "one": "Mangler obligatorisk argument: %s", + "other": "Mangler obligatoriske argumenter: %s" + }, + "Unknown argument: %s": { + "one": "Ukjent argument: %s", + "other": "Ukjente argumenter: %s" + }, + "Invalid values:": "Ugyldige verdier:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s", + "Argument check failed: %s": "Argumentsjekk mislyktes: %s", + "Implications failed:": "Konsekvensene mislyktes:", + "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s", + "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", + "Path to JSON config file": "Bane til JSON konfigurasjonsfil", + "Show help": "Vis hjelp", + "Show version number": "Vis versjonsnummer" +} diff --git a/node_modules/yargs/locales/nl.json b/node_modules/yargs/locales/nl.json new file mode 100644 index 0000000..9ff95c5 --- /dev/null +++ b/node_modules/yargs/locales/nl.json @@ -0,0 +1,49 @@ +{ + "Commands:": "Commando's:", + "Options:": "Opties:", + "Examples:": "Voorbeelden:", + "boolean": "booleaans", + "count": "aantal", + "string": "string", + "number": "getal", + "array": "lijst", + "required": "verplicht", + "default": "standaard", + "default:": "standaard:", + "choices:": "keuzes:", + "aliases:": "aliassen:", + "generated-value": "gegenereerde waarde", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig", + "other": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s", + "other": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s" + }, + "Missing argument value: %s": { + "one": "Missende argumentwaarde: %s", + "other": "Missende argumentwaarden: %s" + }, + "Missing required argument: %s": { + "one": "Missend verplicht argument: %s", + "other": "Missende verplichte argumenten: %s" + }, + "Unknown argument: %s": { + "one": "Onbekend argument: %s", + "other": "Onbekende argumenten: %s" + }, + "Invalid values:": "Ongeldige waarden:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s", + "Argument check failed: %s": "Argumentcontrole mislukt: %s", + "Implications failed:": "Ontbrekende afhankelijke argumenten:", + "Not enough arguments following: %s": "Niet genoeg argumenten na: %s", + "Invalid JSON config file: %s": "Ongeldig JSON-config-bestand: %s", + "Path to JSON config file": "Pad naar JSON-config-bestand", + "Show help": "Toon help", + "Show version number": "Toon versienummer", + "Did you mean %s?": "Bedoelde u misschien %s?", + "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s kunnen niet tegelijk gebruikt worden", + "Positionals:": "Positie-afhankelijke argumenten", + "command": "commando" +} diff --git a/node_modules/yargs/locales/nn.json b/node_modules/yargs/locales/nn.json new file mode 100644 index 0000000..24479ac --- /dev/null +++ b/node_modules/yargs/locales/nn.json @@ -0,0 +1,44 @@ +{ + "Commands:": "Kommandoar:", + "Options:": "Alternativ:", + "Examples:": "Døme:", + "boolean": "boolsk", + "count": "mengd", + "string": "streng", + "number": "nummer", + "array": "matrise", + "required": "obligatorisk", + "default": "standard", + "default:": "standard:", + "choices:": "val:", + "generated-value": "generert-verdi", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s", + "other": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "For mange ikkje-alternativ argument: fekk %s, maksimum %s", + "other": "For mange ikkje-alternativ argument: fekk %s, maksimum %s" + }, + "Missing argument value: %s": { + "one": "Manglar argumentverdi: %s", + "other": "Manglar argumentverdiar: %s" + }, + "Missing required argument: %s": { + "one": "Manglar obligatorisk argument: %s", + "other": "Manglar obligatoriske argument: %s" + }, + "Unknown argument: %s": { + "one": "Ukjent argument: %s", + "other": "Ukjende argument: %s" + }, + "Invalid values:": "Ugyldige verdiar:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s", + "Argument check failed: %s": "Argumentsjekk mislukkast: %s", + "Implications failed:": "Konsekvensane mislukkast:", + "Not enough arguments following: %s": "Ikkje nok fylgjande argument: %s", + "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", + "Path to JSON config file": "Bane til JSON konfigurasjonsfil", + "Show help": "Vis hjelp", + "Show version number": "Vis versjonsnummer" +} diff --git a/node_modules/yargs/locales/pirate.json b/node_modules/yargs/locales/pirate.json new file mode 100644 index 0000000..dcb5cb7 --- /dev/null +++ b/node_modules/yargs/locales/pirate.json @@ -0,0 +1,13 @@ +{ + "Commands:": "Choose yer command:", + "Options:": "Options for me hearties!", + "Examples:": "Ex. marks the spot:", + "required": "requi-yar-ed", + "Missing required argument: %s": { + "one": "Ye be havin' to set the followin' argument land lubber: %s", + "other": "Ye be havin' to set the followin' arguments land lubber: %s" + }, + "Show help": "Parlay this here code of conduct", + "Show version number": "'Tis the version ye be askin' fer", + "Arguments %s and %s are mutually exclusive" : "Yon scurvy dogs %s and %s be as bad as rum and a prudish wench" +} diff --git a/node_modules/yargs/locales/pl.json b/node_modules/yargs/locales/pl.json new file mode 100644 index 0000000..a41d4bd --- /dev/null +++ b/node_modules/yargs/locales/pl.json @@ -0,0 +1,49 @@ +{ + "Commands:": "Polecenia:", + "Options:": "Opcje:", + "Examples:": "Przykłady:", + "boolean": "boolean", + "count": "ilość", + "string": "ciąg znaków", + "number": "liczba", + "array": "tablica", + "required": "wymagany", + "default": "domyślny", + "default:": "domyślny:", + "choices:": "dostępne:", + "aliases:": "aliasy:", + "generated-value": "wygenerowana-wartość", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s", + "other": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s", + "other": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s" + }, + "Missing argument value: %s": { + "one": "Brak wartości dla argumentu: %s", + "other": "Brak wartości dla argumentów: %s" + }, + "Missing required argument: %s": { + "one": "Brak wymaganego argumentu: %s", + "other": "Brak wymaganych argumentów: %s" + }, + "Unknown argument: %s": { + "one": "Nieznany argument: %s", + "other": "Nieznane argumenty: %s" + }, + "Invalid values:": "Nieprawidłowe wartości:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s", + "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s", + "Implications failed:": "Założenia nie zostały spełnione:", + "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s", + "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s", + "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON", + "Show help": "Pokaż pomoc", + "Show version number": "Pokaż numer wersji", + "Did you mean %s?": "Czy chodziło Ci o %s?", + "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają", + "Positionals:": "Pozycyjne:", + "command": "polecenie" +} diff --git a/node_modules/yargs/locales/pt.json b/node_modules/yargs/locales/pt.json new file mode 100644 index 0000000..0c8ac99 --- /dev/null +++ b/node_modules/yargs/locales/pt.json @@ -0,0 +1,45 @@ +{ + "Commands:": "Comandos:", + "Options:": "Opções:", + "Examples:": "Exemplos:", + "boolean": "boolean", + "count": "contagem", + "string": "cadeia de caracteres", + "number": "número", + "array": "arranjo", + "required": "requerido", + "default": "padrão", + "default:": "padrão:", + "choices:": "escolhas:", + "generated-value": "valor-gerado", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s", + "other": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Excesso de argumentos não opcionais: recebido %s, máximo de %s", + "other": "Excesso de argumentos não opcionais: recebido %s, máximo de %s" + }, + "Missing argument value: %s": { + "one": "Falta valor de argumento: %s", + "other": "Falta valores de argumento: %s" + }, + "Missing required argument: %s": { + "one": "Falta argumento obrigatório: %s", + "other": "Faltando argumentos obrigatórios: %s" + }, + "Unknown argument: %s": { + "one": "Argumento desconhecido: %s", + "other": "Argumentos desconhecidos: %s" + }, + "Invalid values:": "Valores inválidos:", + "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s", + "Argument check failed: %s": "Verificação de argumento falhou: %s", + "Implications failed:": "Implicações falharam:", + "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s", + "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s", + "Path to JSON config file": "Caminho para o arquivo de configuração em JSON", + "Show help": "Mostra ajuda", + "Show version number": "Mostra número de versão", + "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos" +} diff --git a/node_modules/yargs/locales/pt_BR.json b/node_modules/yargs/locales/pt_BR.json new file mode 100644 index 0000000..eae1ec6 --- /dev/null +++ b/node_modules/yargs/locales/pt_BR.json @@ -0,0 +1,48 @@ +{ + "Commands:": "Comandos:", + "Options:": "Opções:", + "Examples:": "Exemplos:", + "boolean": "booleano", + "count": "contagem", + "string": "string", + "number": "número", + "array": "array", + "required": "obrigatório", + "default:": "padrão:", + "choices:": "opções:", + "aliases:": "sinônimos:", + "generated-value": "valor-gerado", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s", + "other": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Excesso de argumentos: recebido %s, máximo de %s", + "other": "Excesso de argumentos: recebido %s, máximo de %s" + }, + "Missing argument value: %s": { + "one": "Falta valor de argumento: %s", + "other": "Falta valores de argumento: %s" + }, + "Missing required argument: %s": { + "one": "Falta argumento obrigatório: %s", + "other": "Faltando argumentos obrigatórios: %s" + }, + "Unknown argument: %s": { + "one": "Argumento desconhecido: %s", + "other": "Argumentos desconhecidos: %s" + }, + "Invalid values:": "Valores inválidos:", + "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s", + "Argument check failed: %s": "Verificação de argumento falhou: %s", + "Implications failed:": "Implicações falharam:", + "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s", + "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s", + "Path to JSON config file": "Caminho para o arquivo JSON de configuração", + "Show help": "Exibe ajuda", + "Show version number": "Exibe a versão", + "Did you mean %s?": "Você quis dizer %s?", + "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos", + "Positionals:": "Posicionais:", + "command": "comando" +} diff --git a/node_modules/yargs/locales/ru.json b/node_modules/yargs/locales/ru.json new file mode 100644 index 0000000..d5c9e32 --- /dev/null +++ b/node_modules/yargs/locales/ru.json @@ -0,0 +1,51 @@ +{ + "Commands:": "Команды:", + "Options:": "Опции:", + "Examples:": "Примеры:", + "boolean": "булевый тип", + "count": "подсчет", + "string": "строковой тип", + "number": "число", + "array": "массив", + "required": "необходимо", + "default": "по умолчанию", + "default:": "по умолчанию:", + "choices:": "возможности:", + "aliases:": "алиасы:", + "generated-value": "генерированное значение", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s", + "other": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s", + "other": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s" + }, + "Missing argument value: %s": { + "one": "Не хватает значения аргумента: %s", + "other": "Не хватает значений аргументов: %s" + }, + "Missing required argument: %s": { + "one": "Не хватает необходимого аргумента: %s", + "other": "Не хватает необходимых аргументов: %s" + }, + "Unknown argument: %s": { + "one": "Неизвестный аргумент: %s", + "other": "Неизвестные аргументы: %s" + }, + "Invalid values:": "Недействительные значения:", + "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s", + "Argument check failed: %s": "Проверка аргументов не удалась: %s", + "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:", + "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s", + "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s", + "Path to JSON config file": "Путь к файлу конфигурации JSON", + "Show help": "Показать помощь", + "Show version number": "Показать номер версии", + "Did you mean %s?": "Вы имели в виду %s?", + "Arguments %s and %s are mutually exclusive": "Аргументы %s и %s являются взаимоисключающими", + "Positionals:": "Позиционные аргументы:", + "command": "команда", + "deprecated": "устар.", + "deprecated: %s": "устар.: %s" +} diff --git a/node_modules/yargs/locales/th.json b/node_modules/yargs/locales/th.json new file mode 100644 index 0000000..33b048e --- /dev/null +++ b/node_modules/yargs/locales/th.json @@ -0,0 +1,46 @@ +{ + "Commands:": "คอมมาน", + "Options:": "ออฟชั่น", + "Examples:": "ตัวอย่าง", + "boolean": "บูลีน", + "count": "นับ", + "string": "สตริง", + "number": "ตัวเลข", + "array": "อาเรย์", + "required": "จำเป็น", + "default": "ค่าเริ่มต้", + "default:": "ค่าเริ่มต้น", + "choices:": "ตัวเลือก", + "aliases:": "เอเลียส", + "generated-value": "ค่าที่ถูกสร้างขึ้น", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า", + "other": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า", + "other": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า" + }, + "Missing argument value: %s": { + "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s", + "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s" + }, + "Missing required argument: %s": { + "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s", + "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s" + }, + "Unknown argument: %s": { + "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s", + "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s" + }, + "Invalid values:": "ค่าไม่ถูกต้อง:", + "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s", + "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s", + "Implications failed:": "Implications ไม่สำเร็จ:", + "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s", + "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s", + "Path to JSON config file": "พาทไฟล์คอนฟิค JSON", + "Show help": "ขอความช่วยเหลือ", + "Show version number": "แสดงตัวเลขเวอร์ชั่น", + "Did you mean %s?": "คุณหมายถึง %s?" +} diff --git a/node_modules/yargs/locales/tr.json b/node_modules/yargs/locales/tr.json new file mode 100644 index 0000000..0d0d2cc --- /dev/null +++ b/node_modules/yargs/locales/tr.json @@ -0,0 +1,48 @@ +{ + "Commands:": "Komutlar:", + "Options:": "Seçenekler:", + "Examples:": "Örnekler:", + "boolean": "boolean", + "count": "sayı", + "string": "string", + "number": "numara", + "array": "array", + "required": "zorunlu", + "default": "varsayılan", + "default:": "varsayılan:", + "choices:": "seçimler:", + "aliases:": "takma adlar:", + "generated-value": "oluşturulan-değer", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli", + "other": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s", + "other": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s" + }, + "Missing argument value: %s": { + "one": "Eksik argüman değeri: %s", + "other": "Eksik argüman değerleri: %s" + }, + "Missing required argument: %s": { + "one": "Eksik zorunlu argüman: %s", + "other": "Eksik zorunlu argümanlar: %s" + }, + "Unknown argument: %s": { + "one": "Bilinmeyen argüman: %s", + "other": "Bilinmeyen argümanlar: %s" + }, + "Invalid values:": "Geçersiz değerler:", + "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s", + "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s", + "Implications failed:": "Sonuçlar başarısız oldu:", + "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı", + "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s", + "Path to JSON config file": "JSON yapılandırma dosya konumu", + "Show help": "Yardım detaylarını göster", + "Show version number": "Versiyon detaylarını göster", + "Did you mean %s?": "Bunu mu demek istediniz: %s?", + "Positionals:": "Sıralılar:", + "command": "komut" +} diff --git a/node_modules/yargs/locales/uk_UA.json b/node_modules/yargs/locales/uk_UA.json new file mode 100644 index 0000000..0af0e99 --- /dev/null +++ b/node_modules/yargs/locales/uk_UA.json @@ -0,0 +1,51 @@ +{ + "Commands:": "Команди:", + "Options:": "Опції:", + "Examples:": "Приклади:", + "boolean": "boolean", + "count": "кількість", + "string": "строка", + "number": "число", + "array": "масива", + "required": "обов'язково", + "default": "за замовчуванням", + "default:": "за замовчуванням:", + "choices:": "доступні варіанти:", + "aliases:": "псевдоніми:", + "generated-value": "згенероване значення", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Недостатньо аргументів: наразі %s, потрібно %s або більше", + "other": "Недостатньо аргументів: наразі %s, потрібно %s або більше" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Забагато аргументів: наразі %s, максимум %s", + "other": "Too many non-option arguments: наразі %s, максимум of %s" + }, + "Missing argument value: %s": { + "one": "Відсутнє значення для аргументу: %s", + "other": "Відсутні значення для аргументу: %s" + }, + "Missing required argument: %s": { + "one": "Відсутній обов'язковий аргумент: %s", + "other": "Відсутні обов'язкові аргументи: %s" + }, + "Unknown argument: %s": { + "one": "Аргумент %s не підтримується", + "other": "Аргументи %s не підтримуються" + }, + "Invalid values:": "Некоректні значення:", + "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Введено: %s, Доступні варіанти: %s", + "Argument check failed: %s": "Аргумент не пройшов перевірку: %s", + "Implications failed:": "Відсутні залежні аргументи:", + "Not enough arguments following: %s": "Не достатньо аргументів після: %s", + "Invalid JSON config file: %s": "Некоректний JSON-файл конфігурації: %s", + "Path to JSON config file": "Шлях до JSON-файлу конфігурації", + "Show help": "Показати довідку", + "Show version number": "Показати версію", + "Did you mean %s?": "Можливо, ви мали на увазі %s?", + "Arguments %s and %s are mutually exclusive" : "Аргументи %s та %s взаємовиключні", + "Positionals:": "Позиційні:", + "command": "команда", + "deprecated": "застарілий", + "deprecated: %s": "застарілий: %s" +} diff --git a/node_modules/yargs/locales/uz.json b/node_modules/yargs/locales/uz.json new file mode 100644 index 0000000..0d07168 --- /dev/null +++ b/node_modules/yargs/locales/uz.json @@ -0,0 +1,52 @@ +{ + "Commands:": "Buyruqlar:", + "Options:": "Imkoniyatlar:", + "Examples:": "Misollar:", + "boolean": "boolean", + "count": "sanoq", + "string": "satr", + "number": "raqam", + "array": "massiv", + "required": "majburiy", + "default": "boshlang'ich", + "default:": "boshlang'ich:", + "choices:": "tanlovlar:", + "aliases:": "taxalluslar:", + "generated-value": "yaratilgan-qiymat", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "No-imkoniyat argumentlar yetarli emas: berilgan %s, minimum %s", + "other": "No-imkoniyat argumentlar yetarli emas: berilgan %s, minimum %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "No-imkoniyat argumentlar juda ko'p: berilgan %s, maksimum %s", + "other": "No-imkoniyat argumentlar juda ko'p: got %s, maksimum %s" + }, + "Missing argument value: %s": { + "one": "Argument qiymati berilmagan: %s", + "other": "Argument qiymatlari berilmagan: %s" + }, + "Missing required argument: %s": { + "one": "Majburiy argument berilmagan: %s", + "other": "Majburiy argumentlar berilmagan: %s" + }, + "Unknown argument: %s": { + "one": "Noma'lum argument berilmagan: %s", + "other": "Noma'lum argumentlar berilmagan: %s" + }, + "Invalid values:": "Nosoz qiymatlar:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Berilgan: %s, Tanlovlar: %s", + "Argument check failed: %s": "Muvaffaqiyatsiz argument tekshiruvi: %s", + "Implications failed:": "Bog'liq argumentlar berilmagan:", + "Not enough arguments following: %s": "Quyidagi argumentlar yetarli emas: %s", + "Invalid JSON config file: %s": "Nosoz JSON konfiguratsiya fayli: %s", + "Path to JSON config file": "JSON konfiguratsiya fayli joylashuvi", + "Show help": "Yordam ko'rsatish", + "Show version number": "Versiyani ko'rsatish", + "Did you mean %s?": "%s ni nazarda tutyapsizmi?", + "Arguments %s and %s are mutually exclusive" : "%s va %s argumentlari alohida", + "Positionals:": "Positsionallar:", + "command": "buyruq", + "deprecated": "eskirgan", + "deprecated: %s": "eskirgan: %s" + } + \ No newline at end of file diff --git a/node_modules/yargs/locales/zh_CN.json b/node_modules/yargs/locales/zh_CN.json new file mode 100644 index 0000000..257d26b --- /dev/null +++ b/node_modules/yargs/locales/zh_CN.json @@ -0,0 +1,48 @@ +{ + "Commands:": "命令:", + "Options:": "选项:", + "Examples:": "示例:", + "boolean": "布尔", + "count": "计数", + "string": "字符串", + "number": "数字", + "array": "数组", + "required": "必需", + "default": "默认值", + "default:": "默认值:", + "choices:": "可选值:", + "generated-value": "生成的值", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个", + "other": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个", + "other": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个" + }, + "Missing argument value: %s": { + "one": "没有给此选项指定值:%s", + "other": "没有给这些选项指定值:%s" + }, + "Missing required argument: %s": { + "one": "缺少必须的选项:%s", + "other": "缺少这些必须的选项:%s" + }, + "Unknown argument: %s": { + "one": "无法识别的选项:%s", + "other": "无法识别这些选项:%s" + }, + "Invalid values:": "无效的选项值:", + "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s", + "Argument check failed: %s": "选项值验证失败:%s", + "Implications failed:": "缺少依赖的选项:", + "Not enough arguments following: %s": "没有提供足够的值给此选项:%s", + "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s", + "Path to JSON config file": "JSON 配置文件的路径", + "Show help": "显示帮助信息", + "Show version number": "显示版本号", + "Did you mean %s?": "是指 %s?", + "Arguments %s and %s are mutually exclusive" : "选项 %s 和 %s 是互斥的", + "Positionals:": "位置:", + "command": "命令" +} diff --git a/node_modules/yargs/locales/zh_TW.json b/node_modules/yargs/locales/zh_TW.json new file mode 100644 index 0000000..e38495d --- /dev/null +++ b/node_modules/yargs/locales/zh_TW.json @@ -0,0 +1,51 @@ +{ + "Commands:": "命令:", + "Options:": "選項:", + "Examples:": "範例:", + "boolean": "布林", + "count": "次數", + "string": "字串", + "number": "數字", + "array": "陣列", + "required": "必填", + "default": "預設值", + "default:": "預設值:", + "choices:": "可選值:", + "aliases:": "別名:", + "generated-value": "生成的值", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個", + "other": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個", + "other": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個" + }, + "Missing argument value: %s": { + "one": "此引數無指定值:%s", + "other": "這些引數無指定值:%s" + }, + "Missing required argument: %s": { + "one": "缺少必須的引數:%s", + "other": "缺少這些必須的引數:%s" + }, + "Unknown argument: %s": { + "one": "未知的引數:%s", + "other": "未知的引數:%s" + }, + "Invalid values:": "無效的選項值:", + "Argument: %s, Given: %s, Choices: %s": "引數名稱: %s, 傳入的值: %s, 可選的值:%s", + "Argument check failed: %s": "引數驗證失敗:%s", + "Implications failed:": "缺少依賴引數:", + "Not enough arguments following: %s": "沒有提供足夠的值給此引數:%s", + "Invalid JSON config file: %s": "無效的 JSON 設置文件:%s", + "Path to JSON config file": "JSON 設置文件的路徑", + "Show help": "顯示說明", + "Show version number": "顯示版本", + "Did you mean %s?": "您是指 %s 嗎?", + "Arguments %s and %s are mutually exclusive" : "引數 %s 和 %s 互斥", + "Positionals:": "位置:", + "command": "命令", + "deprecated": "已淘汰", + "deprecated: %s": "已淘汰:%s" + } diff --git a/node_modules/yargs/package.json b/node_modules/yargs/package.json new file mode 100644 index 0000000..389cc6b --- /dev/null +++ b/node_modules/yargs/package.json @@ -0,0 +1,123 @@ +{ + "name": "yargs", + "version": "17.7.2", + "description": "yargs the modern, pirate-themed, successor to optimist.", + "main": "./index.cjs", + "exports": { + "./package.json": "./package.json", + ".": [ + { + "import": "./index.mjs", + "require": "./index.cjs" + }, + "./index.cjs" + ], + "./helpers": { + "import": "./helpers/helpers.mjs", + "require": "./helpers/index.js" + }, + "./browser": { + "import": "./browser.mjs", + "types": "./browser.d.ts" + }, + "./yargs": [ + { + "import": "./yargs.mjs", + "require": "./yargs" + }, + "./yargs" + ] + }, + "type": "module", + "module": "./index.mjs", + "contributors": [ + { + "name": "Yargs Contributors", + "url": "https://github.com/yargs/yargs/graphs/contributors" + } + ], + "files": [ + "browser.mjs", + "browser.d.ts", + "index.cjs", + "helpers/*.js", + "helpers/*", + "index.mjs", + "yargs", + "yargs.mjs", + "build", + "locales", + "LICENSE", + "lib/platform-shims/*.mjs", + "!*.d.ts", + "!**/*.d.ts" + ], + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "devDependencies": { + "@types/chai": "^4.2.11", + "@types/mocha": "^9.0.0", + "@types/node": "^18.0.0", + "c8": "^7.7.0", + "chai": "^4.2.0", + "chalk": "^4.0.0", + "coveralls": "^3.0.9", + "cpr": "^3.0.1", + "cross-env": "^7.0.2", + "cross-spawn": "^7.0.0", + "eslint": "^7.23.0", + "gts": "^3.0.0", + "hashish": "0.0.4", + "mocha": "^9.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.23.0", + "rollup-plugin-cleanup": "^3.1.1", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-ts": "^2.0.4", + "typescript": "^4.0.2", + "which": "^2.0.0", + "yargs-test-extends": "^1.0.1" + }, + "scripts": { + "fix": "gts fix && npm run fix:js", + "fix:js": "eslint . --ext cjs --ext mjs --ext js --fix", + "posttest": "npm run check", + "test": "c8 mocha --enable-source-maps ./test/*.cjs --require ./test/before.cjs --timeout=12000 --check-leaks", + "test:esm": "c8 mocha --enable-source-maps ./test/esm/*.mjs --check-leaks", + "coverage": "c8 report --check-coverage", + "prepare": "npm run compile", + "pretest": "npm run compile -- -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "compile": "rimraf build && tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c rollup.config.cjs", + "postbuild:cjs": "rimraf ./build/index.cjs.d.ts", + "check": "gts lint && npm run check:js", + "check:js": "eslint . --ext cjs --ext mjs --ext js", + "clean": "gts clean" + }, + "repository": { + "type": "git", + "url": "https://github.com/yargs/yargs.git" + }, + "homepage": "https://yargs.js.org/", + "keywords": [ + "argument", + "args", + "option", + "parser", + "parsing", + "cli", + "command" + ], + "license": "MIT", + "engines": { + "node": ">=12" + } +} diff --git a/node_modules/yargs/yargs b/node_modules/yargs/yargs new file mode 100644 index 0000000..8460d10 --- /dev/null +++ b/node_modules/yargs/yargs @@ -0,0 +1,9 @@ +// TODO: consolidate on using a helpers file at some point in the future, which +// is the approach currently used to export Parser and applyExtends for ESM: +const {applyExtends, cjsPlatformShim, Parser, Yargs, processArgv} = require('./build/index.cjs') +Yargs.applyExtends = (config, cwd, mergeExtends) => { + return applyExtends(config, cwd, mergeExtends, cjsPlatformShim) +} +Yargs.hideBin = processArgv.hideBin +Yargs.Parser = Parser +module.exports = Yargs diff --git a/node_modules/yargs/yargs.mjs b/node_modules/yargs/yargs.mjs new file mode 100644 index 0000000..6d9f390 --- /dev/null +++ b/node_modules/yargs/yargs.mjs @@ -0,0 +1,10 @@ +// TODO: consolidate on using a helpers file at some point in the future, which +// is the approach currently used to export Parser and applyExtends for ESM: +import pkg from './build/index.cjs'; +const {applyExtends, cjsPlatformShim, Parser, processArgv, Yargs} = pkg; +Yargs.applyExtends = (config, cwd, mergeExtends) => { + return applyExtends(config, cwd, mergeExtends, cjsPlatformShim); +}; +Yargs.hideBin = processArgv.hideBin; +Yargs.Parser = Parser; +export default Yargs; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5250647 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,997 @@ +{ + "name": "tech-doc-hugo", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tech-doc-hugo", + "version": "0.0.1", + "license": "ISC", + "devDependencies": { + "autoprefixer": "^10.4.0", + "postcss": "^8.3.7", + "postcss-cli": "^9.1.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", + "integrity": "sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001489", + "electron-to-chromium": "^1.4.411", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001491", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz", + "integrity": "sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.413", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.413.tgz", + "integrity": "sha512-Gd+/OAhRca06dkVxIQo/W7dr6Nmk9cx6lQdZ19GvFp51k5B/lUAokm6SJfNkdV8kFLsC3Z4sLTyEHWCnB1Efbw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", + "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d3409ef --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "tech-doc-hugo", + "version": "0.0.1", + "description": "Hugo theme for technical documentation.", + "main": "none.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/google/docsy-example.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/google/docsy-example/issues" + }, + "homepage": "https://github.com/google/docsy-example#readme", + "devDependencies": { + "autoprefixer": "^10.4.0", + "postcss": "^8.3.7", + "postcss-cli": "^9.1.0" + } +} diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..cf9ff03 --- /dev/null +++ b/public/404.html @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + +404 Page not found | Federated Docs + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ +
+
+

Not found

+

Oops! This page doesn't exist. Try going back to our home page.

+ +

You can learn how to make a 404 page like this in Custom 404 Pages.

+
+
+ +
+ + + + +
+ + + + + \ No newline at end of file diff --git a/public/_print/about/featured-background.jpg b/public/_print/about/featured-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44c220ec05a9296994462ffb50f01f78a8c88d71 GIT binary patch literal 428203 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

GH}bd#%Pzf_Os;ou7AFN!S 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�MTlcK-lU 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

;{+{-nrs3Uh|Km)+Mz+?q|p^A$sU6V6}wC1H0 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%0AI7k(MvcjC+^2%H3LY*@Fm#nY;k+;ow~FXhJFmtR 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

l>?UZXUVTX~c_Yo)U1x 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 tkHi%8vkzMuQ~JooeP`5eBW_~G#X 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⁢fJeXs7<*VWAEo~PYH1JLRl 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 q~{qRYS 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°_;S$tS< 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 literal 0 HcmV?d00001 diff --git a/public/_print/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg b/public/_print/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a883d00d5e7374befb51b3451fa8df30f320ebd7 GIT binary patch literal 51428 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�FO2i+;-)- z{lw4W`w0W^6Tgnf;or_Z+QR2oBf%&V1u1|{71gIph_O_x+4HU{QNSqZu@1dE2pLsN zr*Fa@QKDO}z>)HBmwi`61n)tt6&`VR2 z6xe+GfjJZNoE#1@gz*PVn`MnlgZB&xZC2CIsS%^I+jn}u7plFg5zSo#_7>Ui_UZGh z-I5m;<%ZpmQfo8+`xg1td&$$pEnov2$z10kj)`zM6ToiCizdm|bg4-aPCgMGO)7U$ z8gz*>M|2p&j>gR!Vn}4q`^r+E!M=ddur(;N3eGxb))8hv<0pwo0K>WpfRFW1fTq15 zQ=WOiU;HQ^7mAY4FcTW6WSFMP4Cb>+)g1@_Z@H$*?Df1ypYOJQFn6PpZkh~*o3hU5 zt8YVY)N5T);0f<>MS_acptR_uT=OHjMDR=(J6<*qGHp*Ge z{j*1x9bK6%)N@aS91T1wg=JXBhzjEo^CtF{&{EA({OPIU0ta3xF-E~xa9{2 z;2-~)d;9M??`aKX&jD>UztndnwgKS}rP-`pLiPC{IN~1)^+kHoW-C_SwtJ z{|*(mkIf=i6sO?#2EQpN9V&i<*X%{i>=|<}=Wd`}Z!w=;`SVp7^s|axp%M@#!C043 z0}1oj66rnn_@5g*H}&N#rrY+{|hh# z&->xUAv{wHf!2Z8lW+o~l3=5)K`p>gd9Hs@)r+x)1C!moC~m_^vgQ7!OBiA~Zsc~V z&_;Tmy-ifMkD=;MdeebxH>s_xS%okwLIneoIQ6QrFC&V$irr8UX`x)Q7XztKeMV|j z*hg@C<#URzjO)P8JBpCFJpvqc;;0E(xZsb%quhOQQ5GGCT0rKZvXL`C%h#HSe9k@1 zG`AIJPKV8xc^@kD`qPTLCUWIhHm#S-g;&s2*{FfQrQKa?M0xGq+?RD3sP|F2nIrQ? zc&2Wo%{zen(VAxJOw$nj(VAvyGe8f`8K!28&!Qma*ECZ$qwMZmDFQma*PYDF{%m>PC!F-{b~lQg-g^G?kGI-1HDQqe#aCbtYa zR#o1dt`1hW$jw0_f;v*MNwj(Pr=Y8Xc2^^NrcG++Xe3v!T||T&isyAJSXo;uP|>21 z=Bp_O2BlfCR<&zrqhiW1MP!B`)@@k3noB>uO0#>`VzJsPV8=M1W|GbCQmoaO9FFxW zvGt?|ip}p*3H|FiSo+h$9MiCk5kI{=OEdsC&kkwfjwk~7o8Fuz zssW8Cb3hmT?|M-;y;9tLXbfnu7rg2`>ZQ2S?lb{+&G(?oRLc=Y<4g-?UwTh7-l>)} zZa=LcF8RDtd9_z@#T$(=7X06OPd2KCBvH8IGzhci(dK*AQp8cX;+Pgpl%8c*$;}x& zQxRj#q%u`}oQg7YObLvXo@GOmNJ+t<3AfXC)J#aG?li!geJ1*gCX*(C6K|t+Ly{=T z%>XNpLrfs%os-1}tua_;4JHjgG>3{}u-(42Z4|krCz=Am#V%=?qcje~^G0es;8Jcl zGyx;HQB-HS2ni>pEb=f1n&q{NsZ63R*i+XOn;KUisA{b{7@$8dLc*)t!;BvF9l9?Z zR+I`dIH)w(u>^P>D*Q=|R1krIS}-WvpGs&RjQuIu$T{YvvXI8W@0w<6M&l--&svhMOBxqo zqp7XCXqE_qsI2P+21X=u2Nk9bbW>JWIV(!;#Jj0?R9U6ZO48>!CTTZQGsPL^m=E1X l>SZQr+(enA-Ao5GW{ZIQ(Ym9}E@%P!sNGTI(V7Cs|Jmif|Kk7v literal 0 HcmV?d00001 diff --git a/public/_print/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg b/public/_print/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad806e4ed0967cfb0d5871223e45cae8e43f0c3f GIT binary patch literal 464110 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�K9gZ!wn`vrT!QP>K;RF@n&mHHl-^uh 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%0Aje@ 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

ZxWf2w#dbBNj&x7eF&?lv;6x| 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 z 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 + + + + + + + + + + + + + + + + + + + + + +About Federated Core | Federated Docs + + + + + + + + + + + + + + + + + + + + + + +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

About Federated Core

+ +
+ + + +

Documentation about using your Federated Core. +

+ + + +
+
+
+
+
+ +
+ + + + + + + +
+
+
+ +

Federated Core is a replacement for all the anti-privacy, expensive, centralized services you need to run your life, business, club, group, etc. This site provides our great Customers with all the information they might need to use Federated Core to its full advantage.

+ + +
+
+
+ + + + + + + + +
+
+
+ + +
+

If you would like to help with Federated Core documentation and earn free services, belt buckles, swag, and even bitcoin, please drop a note with your information and areas of interest to documentation@federated.computer. Thanks.

+
+ + + +
+
+
+ + + + + + + + + +
+
+
+ + + +
+

This documentation is hosted on a Federated Core. Of course.

+
+ + + +
+
+
+ + + + +
+ + + + +
+ + + + + \ No newline at end of file diff --git a/public/about/featured-background.jpg b/public/about/featured-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44c220ec05a9296994462ffb50f01f78a8c88d71 GIT binary patch literal 428203 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

GH}bd#%Pzf_Os;ou7AFN!S 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�MTlcK-lU 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

;{+{-nrs3Uh|Km)+Mz+?q|p^A$sU6V6}wC1H0 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%0AI7k(MvcjC+^2%H3LY*@Fm#nY;k+;ow~FXhJFmtR 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

l>?UZXUVTX~c_Yo)U1x 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 tkHi%8vkzMuQ~JooeP`5eBW_~G#X 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⁢fJeXs7<*VWAEo~PYH1JLRl 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 q~{qRYS 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°_;S$tS< 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 literal 0 HcmV?d00001 diff --git a/public/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg b/public/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a883d00d5e7374befb51b3451fa8df30f320ebd7 GIT binary patch literal 51428 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�FO2i+;-)- z{lw4W`w0W^6Tgnf;or_Z+QR2oBf%&V1u1|{71gIph_O_x+4HU{QNSqZu@1dE2pLsN zr*Fa@QKDO}z>)HBmwi`61n)tt6&`VR2 z6xe+GfjJZNoE#1@gz*PVn`MnlgZB&xZC2CIsS%^I+jn}u7plFg5zSo#_7>Ui_UZGh z-I5m;<%ZpmQfo8+`xg1td&$$pEnov2$z10kj)`zM6ToiCizdm|bg4-aPCgMGO)7U$ z8gz*>M|2p&j>gR!Vn}4q`^r+E!M=ddur(;N3eGxb))8hv<0pwo0K>WpfRFW1fTq15 zQ=WOiU;HQ^7mAY4FcTW6WSFMP4Cb>+)g1@_Z@H$*?Df1ypYOJQFn6PpZkh~*o3hU5 zt8YVY)N5T);0f<>MS_acptR_uT=OHjMDR=(J6<*qGHp*Ge z{j*1x9bK6%)N@aS91T1wg=JXBhzjEo^CtF{&{EA({OPIU0ta3xF-E~xa9{2 z;2-~)d;9M??`aKX&jD>UztndnwgKS}rP-`pLiPC{IN~1)^+kHoW-C_SwtJ z{|*(mkIf=i6sO?#2EQpN9V&i<*X%{i>=|<}=Wd`}Z!w=;`SVp7^s|axp%M@#!C043 z0}1oj66rnn_@5g*H}&N#rrY+{|hh# z&->xUAv{wHf!2Z8lW+o~l3=5)K`p>gd9Hs@)r+x)1C!moC~m_^vgQ7!OBiA~Zsc~V z&_;Tmy-ifMkD=;MdeebxH>s_xS%okwLIneoIQ6QrFC&V$irr8UX`x)Q7XztKeMV|j z*hg@C<#URzjO)P8JBpCFJpvqc;;0E(xZsb%quhOQQ5GGCT0rKZvXL`C%h#HSe9k@1 zG`AIJPKV8xc^@kD`qPTLCUWIhHm#S-g;&s2*{FfQrQKa?M0xGq+?RD3sP|F2nIrQ? zc&2Wo%{zen(VAxJOw$nj(VAvyGe8f`8K!28&!Qma*ECZ$qwMZmDFQma*PYDF{%m>PC!F-{b~lQg-g^G?kGI-1HDQqe#aCbtYa zR#o1dt`1hW$jw0_f;v*MNwj(Pr=Y8Xc2^^NrcG++Xe3v!T||T&isyAJSXo;uP|>21 z=Bp_O2BlfCR<&zrqhiW1MP!B`)@@k3noB>uO0#>`VzJsPV8=M1W|GbCQmoaO9FFxW zvGt?|ip}p*3H|FiSo+h$9MiCk5kI{=OEdsC&kkwfjwk~7o8Fuz zssW8Cb3hmT?|M-;y;9tLXbfnu7rg2`>ZQ2S?lb{+&G(?oRLc=Y<4g-?UwTh7-l>)} zZa=LcF8RDtd9_z@#T$(=7X06OPd2KCBvH8IGzhci(dK*AQp8cX;+Pgpl%8c*$;}x& zQxRj#q%u`}oQg7YObLvXo@GOmNJ+t<3AfXC)J#aG?li!geJ1*gCX*(C6K|t+Ly{=T z%>XNpLrfs%os-1}tua_;4JHjgG>3{}u-(42Z4|krCz=Am#V%=?qcje~^G0es;8Jcl zGyx;HQB-HS2ni>pEb=f1n&q{NsZ63R*i+XOn;KUisA{b{7@$8dLc*)t!;BvF9l9?Z zR+I`dIH)w(u>^P>D*Q=|R1krIS}-WvpGs&RjQuIu$T{YvvXI8W@0w<6M&l--&svhMOBxqo zqp7XCXqE_qsI2P+21X=u2Nk9bbW>JWIV(!;#Jj0?R9U6ZO48>!CTTZQGsPL^m=E1X l>SZQr+(enA-Ao5GW{ZIQ(Ym9}E@%P!sNGTI(V7Cs|Jmif|Kk7v literal 0 HcmV?d00001 diff --git a/public/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg b/public/about/featured-background_hua5435d25fb2527d7e7f8999c2f22a592_428203_1920x1080_fill_q75_catmullrom_bottom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad806e4ed0967cfb0d5871223e45cae8e43f0c3f GIT binary patch literal 464110 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�K9gZ!wn`vrT!QP>K;RF@n&mHHl-^uh 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%0Aje@ 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

ZxWf2w#dbBNj&x7eF&?lv;6x| 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 z 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 + + + + + + + + + + + + + + + + + + + + + +About Federated Core | Federated Docs + + + + + + + + + + + + + + + + + + + + + + +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+

About Federated Core

+ +
+ + + +

Documentation about using your Federated Core. +

+ + + +
+
+
+
+
+ +
+ + + + + + + +
+
+
+ +

Federated Core is a replacement for all the anti-privacy, expensive, centralized services you need to run your life, business, club, group, etc. This site provides our great Customers with all the information they might need to use Federated Core to its full advantage.

+ + +
+
+
+ + + + + + + + +
+
+
+ + +
+

If you would like to help with Federated Core documentation and earn free services, belt buckles, swag, and even bitcoin, please drop a note with your information and areas of interest to documentation@federated.computer. Thanks.

+
+ + + +
+
+
+ + + + + + + + + +
+
+
+ + + +
+

This documentation is hosted on a Federated Core. Of course.

+
+ + + +
+
+
+ + + + +
+ + + + +
+ + + + + \ No newline at end of file diff --git a/public/about/index.xml b/public/about/index.xml new file mode 100644 index 0000000..fe6e105 --- /dev/null +++ b/public/about/index.xml @@ -0,0 +1,17 @@ + + + Federated Docs – About Federated Core + /about/ + Recent content in About Federated Core on Federated Docs + Hugo -- gohugo.io + + + + + + + + + + + diff --git a/public/blog/2018/01/04/another-great-release/index.html b/public/blog/2018/01/04/another-great-release/index.html new file mode 100644 index 0000000..44dd9d6 --- /dev/null +++ b/public/blog/2018/01/04/another-great-release/index.html @@ -0,0 +1,646 @@ + + + + + + + + + + + + + + + + + + + + +Another Great Release | Federated Docs + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + +
+ + + + +
+

Another Great Release

+
A short lead description about this content page. Text here can also be bold or italic and can even be split over multiple paragraphs.
+ + +

Text can be bold, italic, or strikethrough. Links should be blue with no underlines (unless hovered over).

+

There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs.

+

There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs.

+
+

There should be no margin above this first sentence.

+

Blockquotes should be a lighter gray with a border along the left side in the secondary color.

+

There should be no margin below this final sentence.

+
+

First Header

+

This is a normal paragraph following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width.

+

Lorem markdownum tuta hospes stabat; idem saxum facit quaterque repetito +occumbere, oves novem gestit haerebat frena; qui. Respicit recurvam erat: +pignora hinc reppulit nos aut, aptos, ipsa.

+

Meae optatos passa est Epiros utiliter Talibus niveis, hoc lata, edidit. +Dixi ad aestum.

+

Header 2

+
+

This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+
+

Header 3

+
This is a code block following a header.
+

Header 4

+
    +
  • This is an unordered list following a header.
  • +
  • This is an unordered list following a header.
  • +
  • This is an unordered list following a header.
  • +
+
Header 5
+
    +
  1. This is an ordered list following a header.
  2. +
  3. This is an ordered list following a header.
  4. +
  5. This is an ordered list following a header.
  6. +
+
Header 6
+ + + + + + + + + + + + + + + + + + + + + +
WhatFollows
A tableA header
A tableA header
A tableA header
+
+

There’s a horizontal rule above and below this.

+
+

Here is an unordered list:

+
    +
  • Salt-n-Pepa
  • +
  • Bel Biv DeVoe
  • +
  • Kid ‘N Play
  • +
+

And an ordered list:

+
    +
  1. Michael Jackson
  2. +
  3. Michael Bolton
  4. +
  5. Michael Bublé
  6. +
+

And an unordered task list:

+
    +
  • Create a sample markdown document
  • +
  • Add task lists to it
  • +
  • Take a vacation
  • +
+

And a “mixed” task list:

+
    +
  • Steal underpants
  • +
  • ?
  • +
  • Profit!
  • +
+

And a nested list:

+
    +
  • Jackson 5 +
      +
    • Michael
    • +
    • Tito
    • +
    • Jackie
    • +
    • Marlon
    • +
    • Jermaine
    • +
    +
  • +
  • TMNT +
      +
    • Leonardo
    • +
    • Michelangelo
    • +
    • Donatello
    • +
    • Raphael
    • +
    +
  • +
+

Definition lists can be used with Markdown syntax. Definition terms are bold.

+
+
Name
+
Godzilla
+
Born
+
1952
+
Birthplace
+
Japan
+
Color
+
Green
+
+
+

Tables should have bold headings and alternating shaded rows.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ArtistAlbumYear
Michael JacksonThriller1982
PrincePurple Rain1984
Beastie BoysLicense to Ill1986
+

If a table is too wide, it should scroll horizontally.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArtistAlbumYearLabelAwardsSongs
Michael JacksonThriller1982Epic RecordsGrammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-ClassicalWanna Be Startin’ Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life
PrincePurple Rain1984Warner Brothers RecordsGrammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with VocalLet’s Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I’m a Star, Purple Rain
Beastie BoysLicense to Ill1986Mercury RecordsnoawardsbutthistablecelliswideRhymin & Stealin, The New Style, She’s Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill
+
+

Code snippets like var foo = "bar"; can be shown inline.

+

Also, this should vertically align with this and this.

+

Code can also be shown in a block element.

+
foo := "bar";
+bar := "foo";
+

Code can also use syntax highlighting.

+
func main() {
+  input := `var foo = "bar";`
+
+  lexer := lexers.Get("javascript")
+  iterator, _ := lexer.Tokenise(nil, input)
+  style := styles.Get("github")
+  formatter := html.New(html.WithLineNumbers())
+
+  var buff bytes.Buffer
+  formatter.Format(&buff, style, iterator)
+
+  fmt.Println(buff.String())
+}
+
Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.
+

Inline code inside table cells should still be distinguishable.

+ + + + + + + + + + + + + + + + + +
LanguageCode
Javascriptvar foo = "bar";
Rubyfoo = "bar"{
+
+

Small images should be shown at their actual size.

+

+

Large images should always scale down and fit in the content container.

+

+

Components

+

Alerts

+

+ +

+ + + + + + + + + + + + + + + + +

+

Sizing

+

Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

Parameters available

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

Using pixels

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

Using rem

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

Memory

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

RAM to use

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

More is better

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+

Used RAM

+

Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong.

+
This is the final element on the page and there should be no margin below this.
+
+ + + + +
+ + +
+
+
+ + + + +
+ + + + + \ No newline at end of file diff --git a/public/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get.png b/public/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get.png new file mode 100644 index 0000000000000000000000000000000000000000..db3373c0bfb39ce0d6707ac730766cf00c27f2de GIT binary patch literal 387442 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